土岐です。 スレッドを生成している最中に GC が発生すると、 Ruby インタープリタがコアダンプするみたいです。 環境は $ ruby -v ruby 1.4.3 (1999-12-08) [i386-freebsd] で次のスクリプトを走らせました。 GC::disable s = "a" 100000.times do s = s.succ end s = nil GC::enable print "start thread.\n" while true Thread::new{} end すると $ ruby test_thread_start.rb start thread. test_thread_start.rb:13: [BUG] Segmentation fault Abort trap (core dumped) こういうメッセージを出してコアダンプしてしまいました。 ちなみに、たまたま手元に残っていた ruby 1.4.2 で 試してみると、こちらはコアダンプしませんでした。 最後にバックトレースを付けておきます。 #0 0x281273d0 in kill () from /usr/lib/libc.so.3 #1 0x2815b728 in abort () from /usr/lib/libc.so.3 #2 0x80a32d6 in rb_bug (fmt=0x80b658e "Segmentation fault") at error.c:167 #3 0x808e16b in sigsegv (sig=11) at signal.c:381 #4 0xbfbfdfdc in ?? () #5 0x805bb4c in thread_mark (th=0x83d1e00) at eval.c:6143 #6 0x806104b in rb_gc_mark (ptr=0x82c88ec) at gc.c:587 #7 0x8060bc0 in mark_locations_array (x=0xbfbfc3e0, n=918) at gc.c:332 #8 0x8060c04 in rb_gc_mark_locations (start=0xbfbfd234, end=0xbfbfc3e0) at gc.c:351 #9 0x8061644 in rb_gc () at gc.c:928 #10 0x8060848 in xmalloc (size=3472) at gc.c:68 #11 0x80608d3 in xrealloc (ptr=0x0, size=3472) at gc.c:104 #12 0x805be13 in rb_thread_save_context (th=0x83d1e00) at eval.c:6222 #13 0x805d3f4 in rb_thread_create_0 (fn=0x805d58c <rb_thread_yield>, arg=0x0, klass=135231656) at eval.c:7095 #14 0x805d5f2 in rb_thread_start (klass=135231656) at eval.c:7159 #15 0x8056f66 in call_cfunc (func=0x805d5bc <rb_thread_start>, recv=135231656, len=0, argc=0, argv=0x0) at eval.c:3728 #16 0x8057431 in rb_call0 (klass=135231636, recv=135231656, id=3113, argc=0, argv=0x0, body=0x80f7880, nosuper=1) at eval.c:3864 #17 0x8057b67 in rb_call (klass=135231636, recv=135231656, mid=3113, argc=0, argv=0x0, scope=0) at eval.c:4060 #18 0x80536bc in rb_eval (self=135245516, node=0x80ef630) at eval.c:2234 #19 0x80528e3 in rb_eval (self=135245516, node=0x80ef61c) at eval.c:1978 #20 0x80525c2 in rb_eval (self=135245516, node=0x80ef5e0) at eval.c:1911 #21 0x8050b85 in eval_node (self=135245516) at eval.c:1012 #22 0x8050c6f in ruby_run () at eval.c:1048 #23 0x804f8d6 in main (argc=2, argv=0xbfbfd314, envp=0xbfbfd320) at main.c:39 -------------------------------------------------- 土岐 仁謙 神戸大学物理高エネ研 M2 http://www.freedom.ne.jp/toki/