From: Nobuyoshi Nakada Date: 2009-11-02T10:15:30+09:00 Subject: [ruby-dev:39599] Re: infinite recursive call to C function なかだです。 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はできる。 中田 伸悦