[#44566] [Ruby 1.9 - Bug #5386][Open] FiberオブジェクトのGC時にSEGV — Kazuki Tsujimoto <kazuki@...>
[#44581] [Ruby 1.9 - Bug #5419][Open] FileUtils.cp_rの:preserveの動作 — Masatoshi Seki <seki@...>
[#44589] [Ruby 1.9 - Bug #5429][Open] 64ビットなFreeBSDのioctlでビット31が1なリクエストの時の不具合 — Makoto Kishimoto <redmine@...>
2011年11月14日11:25 Tomoyuki Chikanaga <nagachika00@gmail.com>:
[#44604] Ruby 2.0 release plan — "NARUSE, Yui" <naruse@...>
ささださんが既にいくつか 2.0 関連のメールを投げていらっしゃいますが、
sora_h です.
On 10/18/2011 03:49 PM, Shota Fukumori (sora_h) wrote:
RUBY_VERSION の存在をすっかり忘れていました.なるほど.
まつもと ゆきひろです
(2011/10/18 16:15), Yukihiro Matsumoto wrote:
まつもと ゆきひろです
On 10/18/2011 10:16 PM, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
たとえば2.0の次のバージョン番号はどうしますか?
2011年10月20日3:31 Urabe Shyouhei <shyouhei@ruby-lang.org>:
In message <CAK6Hhsqwv0wh8OVBb3Z5BQrh3-7dLHhL-pXvW+CBv8U1rayYZg@mail.gmail.com>
なかだです。
まつもと ゆきひろです
On 10/20/2011 01:45 PM, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
(2011/10/20 13:36), Yukihiro Matsumoto wrote:
まつもと ゆきひろです
(2011/10/20 23:36), Yukihiro Matsumoto wrote:
遠藤です。
2011年10月18日17:41 Yusuke Endoh <mame@tsg.ne.jp>:
遠藤です。
2011年10月18日17:43 Yusuke Endoh <mame@tsg.ne.jp>:
遠藤です。
まつもとさん
まつもと ゆきひろです
遠藤です。
[#44680] [Ruby 2.0 - Feature #5454] keyword arguments — Yusuke Endoh <mame@...>
[#44688] [ruby-trunk - Bug #5475][Open] r33507以降SolarisでPTYが使えない — Naohisa Goto <ngotogenome@...>
MjAxMRskQkcvGyhCMTAbJEI3bhsoQjI0GyRCRnwbKEIxNjo1NiBOYW9oaXNhIEdvdG8gPG5nb3Rv
On Mon, 24 Oct 2011 18:43:39 +0900
[#44702] Re: [ruby-cvs:40712] nobu:r33534 (trunk): * configure.in (RUBY_FUNC_ATTRIBUTE): unset temporary variable. — Tanaka Akira <akr@...>
2011/10/27 <nobu@ruby-lang.org>:
boronのお守りをしている西田です.
2011年10月27日19:54 Yuya.Nishida. <yuya@j96.org>:
[#44707] [ruby-trunk - Feature #5512][Open] Integer#/ の改訂 — tadayoshi funaba <redmine@...>
まつもと ゆきひろです
遠藤です。
[#44713] Re: [ruby-changes:21512] akr:r33561 (trunk): * configure.in: check dup3. — KOSAKI Motohiro <kosaki.motohiro@...>
(ruby-devへ河岸をうつします)
[#44719] [ruby-trunk - Feature #5520][Open] Numeric#exact?、Numeric#inexact? の追加 — tadayoshi funaba <redmine@...>
[#44720] [ruby-trunk - Feature #5521][Open] Numeric#rational?、Numeric#complex?、Numeric#float? の追加 — tadayoshi funaba <redmine@...>
まつもと ゆきひろです
むらたです。
[#44734] IO.select timeout — Tanaka Akira <akr@...>
気がついたのですが、IO.select で、timeout を使ったとき、
> 気がついたのですが、IO.select で、timeout を使ったとき、
[#44735] [ruby-trunk - Feature #2968] 数値の正負を返すメソッド — Kenta Murata <muraken@...>
[ruby-dev:44579] [Ruby 1.9 - Bug #5386] FiberオブジェクトのGC時にSEGV
Issue #5386 has been updated by Tomoyuki Chikanaga.
確認いただきありがとうございます。コミットしておきます。
ただ作業できるのが夜になってからなので、先にどなたかコミットして頂いてもわたしはかまいません。
----------------------------------------
Bug #5386: FiberオブジェクトのGC時にSEGV
http://redmine.ruby-lang.org/issues/5386
Author: Kazuki Tsujimoto
Status: Assigned
Priority: Normal
Assignee: Kazuki Tsujimoto
Category: core
Target version:
ruby -v: ruby 1.9.4dev (2011-10-01 trunk 33368) [x86_64-linux]
=begin
辻本です。
ポータブルな再現コードが作れていないのですが、
Ubuntu 10.04 x86_64にて以下のコードを実行すると
FiberオブジェクトをGCする処理の中でSEGVします。
require 'fiber'
1.times {
Fiber.new{}
}
2.times.map {|i|
Thread.new {
Fiber.new{}.resume
}.join
}.each {|t|
t.join
}
GC.start
GC.stress = true
1.times {
Fiber.new{}
}
バックトレースを添付します。
調べてみたところ、GC.stress設定後の1回目のマークフェーズで
Breakpoint 2, fiber_mark (ptr=0xad7130) at cont.c:265
(gdb) rp ((rb_fiber_t*)ptr)->cont->saved_thread.self
T_DATA(VM/thread): $1 = (struct RTypedData *) 0xaaf528
となっているFiberオブジェクトが、2回目のマークフェーズでは
Breakpoint 2, fiber_mark (ptr=0xad7130) at cont.c:265
(gdb) rp ((rb_fiber_t*)ptr)->cont->saved_thread.self
T_NONE: $2 = (struct RBasic *) 0xaaf528
となっており、saved_thread.selfのマーク漏れのようです。
以下の修正で直りました。
diff --git a/vm.c b/vm.c
index 665351b..2ab2b92 100644
--- a/vm.c
+++ b/vm.c
@@ -1735,6 +1735,7 @@ rb_thread_mark(void *ptr)
RUBY_MARK_UNLESS_NULL(th->first_proc);
if (th->first_proc) RUBY_MARK_UNLESS_NULL(th->first_args);
+ RUBY_MARK_UNLESS_NULL(th->self);
RUBY_MARK_UNLESS_NULL(th->thgroup);
RUBY_MARK_UNLESS_NULL(th->value);
RUBY_MARK_UNLESS_NULL(th->errinfo);
=end
--
http://redmine.ruby-lang.org