遠藤です。

2009年10月16日21:05 wanabe <s.wanabe / gmail.com>:
> だとすると、もしかして例えば以下のようにすると落ちなくなったりしないでしょうか。

確かに落ちなくなることを確認しました。

unpack 中の st_table を st_foreach した場合、内容物の列挙漏れが発生
する、というバグってことですね。
内容物は一時的にスタックに載っているので、今までは conservative GC
によって mark 漏れは防がれていましたが、r24128 でメソッドテーブルの
内容物が (GC 管理対象である) NODE から (GC 管理対象外の) rb_method_
entry_t に変わったため mark 漏れが発症するようになった、と理解しま
した。
裏づけとして、この問題は r24128 から発症するようになっています。

そういうわけで、このパッチに賛成です。

-- 
Yusuke ENDOH <mame / tsg.ne.jp>