From: Yusuke ENDOH Date: 2011-06-30T21:17:29+09:00 Subject: [ruby-core:37688] Re: [Ruby 1.9 - Bug #3781] FIBER_USE_NATIVE が有効だと落ちるスクリプトがある 遠藤です。 2011年6月30日21:11 Narihiro Nakamura : > もし、64KBのスタック領域でGCするのであれば、その情報を > th->machine_stack_maxsize に設定しなければならないはずで、 > その辺りがうまくいってないのではないでしょうか。 私もその辺りを疑って puts デバッグしてみたんですが、stack_check() は ちゃんと真になってるみたいです。ふしぎ。 diff --git a/gc.c b/gc.c index d5b8dfd..577131c 100644 --- a/gc.c +++ b/gc.c @@ -1619,6 +1619,7 @@ gc_mark(rb_objspace_t *objspace, VALUE ptr, int lev) if (mark_stack_ptr - mark_stack < MARK_STACK_MAX) { *mark_stack_ptr = ptr; mark_stack_ptr++; + puts("push"); } else { mark_stack_overflow = 1; $ ./ruby reduct.rb push push push *snip* push push push reduct.rb:114: [BUG] object allocation during garbage collection phase ruby 1.9.3dev (2011-06-30 trunk 32300) [i686-linux] -- Yusuke Endoh