Skip to content

ruby-dev/core ななめ読む 3/20

2014/3/21 10:44:06

朝と言ったのにもう昼近いが、まあ正午より前なのだから朝なのだということにしておく。(2014 3/22 ご指摘に伴い一部修正)

チケット無し


[ruby-core:61604]
by SASADA Koichi

[ruby-core:61519]への返信。API では Ruby スレッドだけ考えればすむ API には rb_ プレフィクスをつける決まりだよ、前同じ提案をしたら却下されたんだけどそのとき xmalloc の x は安全な NULL チェックをする、という意味だと聞いたよ、とのこと。
なんにせよ [FATAL] が出てしまうのはバグだよ、malloc() が 0 を返した時以外は GC を呼んじゃ駄目だよ、とのこと。


[ruby-core:61605]
by SASADA Koichi

[ruby-core:61568]への返信。知ってるかもだけど、#9262にグローバル(メソッド)キャッシュをクラス毎にするパッチがあったね、とのこと。


[ruby-core:61606]
by Eric Wong

[ruby-core:61605] への返信。うん、でもあれはキャッシュの肥大抑制のためだから今はもう不要だよね、長い目で見るとインラインキャッシュだけにしたいんだよ、順序不定ハッシュ(#9614)とハッシュベースの ID(シンボル GC が入るまでおあずけ)は高速化はするだろうけど、主目的はメモリ節約で高速化はおまけだよ、とのこと。
jemalloc から頂戴した赤黒木とか *BSD のスプレー木をメソッドや定数テーブルに試してみるつもりだよ、ID テーブルは二分探索木にはちょっと大きすぎるよ、とのこと。


[ruby-core:61608]
by SASADA Koichi

[ruby-core:61519]への返信。(xmalloc のネイティブスレッド対応について)ネイティブかつ GVL を持つときには ATOMIC 演算子を使わず、それ以外のスレッドでは ATOMIC を使うけど increase するだけ(チェックも GC もしない)というのはどうかな、でもネイティブスレッドかどうかの判定が重いかもね、あと前者のスレッドの処理に rb_xmalloc とか別名つけて切り分けるのはどうかな、とのこと。


[ruby-core:61609]
by SASADA Koichi

[ruby-core:61608] への追記。そっか目的はミューテータとスイーパの並列化だっけ、じゃあこのコードは適さないね、とのこと。


#8405

csv.rb 中の特殊文字エスケープを処理する正規表現がおかしい


[ruby-core:61612]
by James Gray

クローズコミット。


#9475

include したモジュールのメソッドを super で呼ぶメソッドに alias をつけた時の挙動が 1.9.x と 2.x で違う


[ruby-core:61601]
by Nobuyoshi Nakada

クローズコミット。


[ruby-core:61602]
by Nobuyoshi Nakada

チケット操作。バックポート対象をすべてのバージョンに。

あれ? 1.9.3 が復活している、先日なかったのは見間違いだったのでしょうか。


[ruby-core:61603]
by Nobuyoshi Nakada

チケット操作。バックポート対象から 1.9.3 を削除。


#9599

Fiddle がメモリリーク


[ruby-dev:48061]
by Tomoyuki Chikanaga

r40930 と r45298 を 2.0.0 に取り込んでこの問題はなくなったよr40930 と r45298 だけはとりあえず 2.0.0 に入れたよ、r45291, r45299, r45301, r45314, r45315, r45325 も取り込みたいけどテストがコケるよ、他にもリークしてるところがあるっぽいよ、とのこと。

強調部はご指摘をもらったので修正した部分です


#9645

定数再定義時のメモリリーク修正パッチ


[ruby-core:61610]
by Tomoyuki Chikanaga

r45350 は 2.0.0 に取り込んだよ、とのこと。


#9651

__dir__ returns nil in instance_eval/module_eval


[ruby-dev:48057]
by Shota Fukumori

チケット更新。Markdown の云々。


#9653
(新規)
gc_sweep() で unknown data type 0x0 が出る


[ruby-core:61597]
by Hongbin Lu

題の通り。ruby 1.9.3p125 だよ、いつもじゃなく 5% くらいの確率で出るよ、ログ添付するけど足りない情報があったら言ってね、とのこと。


[ruby-core:61598]
by Eric Wong

1.9.3-p545 か、できれば 2.1.1 で試してみて、1.9.3 初期には lazy sweep のバグで nokogiri に影響があったんだ、他の拡張ライブラリでもそうかも、とのこと。


[ruby-core:61599]
by Eric Wong

[ruby-core:61598] の重複。


[ruby-core:61600]
by Hongbin Lu

助言どうもね、1.9.3-p545 で試して返信するよ、とのこと。


#9654
(新規)
C のバックトレース表示中に SEGV


[ruby-dev:48058]
by Rei Odaira

SEGV が起きると C のバックトレースが表示されるけど、trunk on ppc64 だと表示処理自体でまた SEGV するよ、CI を見るとここからみたいだよ、addr2line.c がやらかしてるっぽいけど自身はないよ、とのこと。
line->sname が変なところを指してるらしいよ、rb_dump_backtrace_with_lines() でいったん正しい値が書かれるんだけど、ばかでかいシンボルテーブルが上書きしてるみたいだよ、とのこと。


[ruby-dev:48059]
by Nobuyoshi Nakada

チケット操作。カテゴリをコアに、担当者を成瀬さんに、ターゲットを 2.2.0 に、バックポートを全て不要に。


#9655
(新規)
Arch linux でビルドできない


[ruby-core:61607]
by Hiroshi SHIBATA

ruby-build への報告を見てね、とのこと。

2.1.0 ではコンパイラが SEGV、 2.0.0-p353 では tool/mkconfig.rb 実行中が syntax error で中断。

前者は ruby の問題というよりコンパイラの問題な気がしますが、何が起きているのか。


#9656
(新規)
ext/dl/extconf.rb に -fno-defer-pop オプションのチェックを追加


[ruby-dev:48060]
by Tomoyuki Chikanaga

Clang 5.1 は -fno-defer-pop をサポートしなくなったよ、r45365 でコミット済みだけどバックポート用にチケット作ったよ、とのこと。


#9657
(新規)
bigdecimal/util.rb の Float#to_d で SEGV


[ruby-core:61611]
by Dieter Komendera

ActiveRecord 使ってたら travis ci で見つけたよ、再現はできてないけど情報共有のために報告するよ、とのこと。2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux] で、Kernel.#BigDecimal で落ちているみたいです。


[ruby-core:61613]
by Jeremy Lecour

同じ現象が起きたよ、.crash ファイルと画面出力を添付するよ、とのこと。


#9658
(新規)
configure –with-opt-dir=dir と clang の組合せでビルドに失敗する(原文ママ)


[ruby-dev:48062]
by Akinori MUSHA

ruby 2.1 以降で –with-opt-dir= つけると clang が警告を吐いて long long の printf フォーマット検出が失敗するよ、そのせいで num2int でビルド失敗するよ、パッチを添付するよ、とのこと。


#9659
(新規)
FIPS モードで digest を動かすと初期化に失敗してクラッシュ


[ruby-core:61614]
by Jared Jennings

#4944 っぽいけど openssl じゃなく digest の話だよ、米国政府標準の FIPS 140-2 用に設定したマシンでは MD5 計算が初期化段階で却下される作りなんだけど、無理やり計算しようとして ruby がおちるよ、とのこと。
rb_digest_base_{alloc, reset, finish が初期化失敗を無視しているよ、OpenSSL があるときにはそっちを使うので問題ないよ、レッドハットパッチ入りの 1.8.7 で試したよ、trunk は手元でのビルドが難しく試してないけど r43668 を見るとやっぱりチェックせず使っているみたいだよ、とのこと.


[ruby-core:61615]
by Jared Jennings

rb_digest_hash_init_func_t が void 関数へのポインタになっているのは問題だよ、OpenSSL に倣って 1・0 で成功か失敗かを返す関数に変更すべきだよ、とのこと。

Sort by ML-id:
[ruby-core:61597] by Hongbin Lu:#9653
[ruby-core:61598] by Eric Wong :#9653
[ruby-core:61599] by Eric Wong:#9653
[ruby-core:61600] by Hongbin Lu:#9653
[ruby-core:61601] by Nobuyoshi Nakada:#9475
[ruby-core:61602] by Nobuyoshi Nakada:#9475
[ruby-core:61603] by Nobuyoshi Nakada:#9475
[ruby-core:61604] by SASADA Koichi
[ruby-core:61605] by SASADA Koichi
[ruby-core:61606] by Eric Wong
[ruby-core:61607] by Hiroshi SHIBATA:#9655
[ruby-core:61608] by SASADA Koichi
[ruby-core:61609] by SASADA Koichi
[ruby-core:61610] by Tomoyuki Chikanaga:#9645
[ruby-core:61611] by Dieter Komendera:#9657
[ruby-core:61612] by James Gray:#8405
[ruby-core:61613] by J辿r辿my Lecour:#9657
[ruby-core:61614] by Jared Jennings:#9659
[ruby-core:61615] by Jared Jennings:#9659
[ruby-dev:48057] by Shota Fukumori:#9651
[ruby-dev:48058] by Rei Odaira:#9654
[ruby-dev:48059] by Nobuyoshi Nakada:#9654
[ruby-dev:48060] by Tomoyuki Chikanaga:#9656
[ruby-dev:48061] by Tomoyuki Chikanaga:#9599
[ruby-dev:48062] by Akinori MUSHA:#9658

広告
No comments yet

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中

%d人のブロガーが「いいね」をつけました。