なかだです。

At Tue, 1 Jul 2003 15:37:45 +0900,
yamamoto madoka wrote:
> ./foo.rb:26: [BUG] Segmentation fault
> ruby 1.8.0 (2003-06-30) [i686-linux]
> 
> 該当部分のコードは以下のようなものです。
> 
> if Array != val.class
> 
> osはredhat8です。
> 
> 発生するスクリプトまたもスレッド、ソケット、さらにevalを使ったものです。
> (一連のバグはすべて同じスクリプトで発見してます)

すいません、これだけだとちょっと手がかりが少ないのですが、再現
できるスクリプトなどはないでしょうか。

> 出るタイミングはまたしても、たまに出る、という感じです。
> 場所も、GC.startなどを挟むと変わります。

おそらくGC絡みだと思いますが、SEGVしたときにはもう肝心の部分が
壊れてしまってるので。

> Program received signal SIGSEGV, Segmentation fault.
> 0x08056c27 in rb_eval (self=1075325136, n=0x6c6f6f74) at ruby.h:630
> 630         if (SYMBOL_P(obj)) return rb_cSymbol;

実際にはその次の
    return RBASIC(obj)->klass;
で、既に開放されているobjをアクセスしてるんでしょう。

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