なかだです。

At Sat, 31 Oct 2009 00:01:52 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:39596]:
> で、いずれにしてもこの無限再帰がSEGVになることの方を先に対処
> すべきだと思います。なかださんによると、これ自体がバグのよう
> だし。

r23720をrevertすればSEGVしなくなります。rb_longjmp()中の
rb_make_backtrace()でGCが起きて、代替スタックから通常のスタック
までsweepしようとして落ちている感じです。

たとえばrb_make_backtrace()からset_backtrace()までGCを禁止するこ
とでも落ちなくなりますが、そもそもmallocの途中でシグナルを受けて
いることもありうるわけで、無条件に復帰可能な例外を投げるのも危険
な気がします。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦