From: "kosaki (Motohiro KOSAKI)" Date: 2012-04-24T02:54:20+09:00 Subject: [ruby-core:44564] [ruby-trunk - Bug #6341] SIGSEGV: Thread.new { fork { GC.start } }.join Issue #6341 has been updated by kosaki (Motohiro KOSAKI). Hello, I think this is a kind of documentation issue. If you use C, you can't use both thread and fork. It's obvious. And almost people think ruby naturally has the same limitation because ruby is written by C. But rudolf implicitly pointed out some people don't think so. So, if anyone send me a documentation patch, i'll merge it. ---------------------------------------- Bug #6341: SIGSEGV: Thread.new { fork { GC.start } }.join https://bugs.ruby-lang.org/issues/6341#change-26123 Author: rudolf (r stu3) Status: Feedback Priority: Low Assignee: Category: core Target version: ruby -v: ruby 1.9.3p196 (2012-04-21) [x86_64-netbsd6.0.] When running ruby (ruby-lang.org) test suite, I am able to provoke a segfault using a test from bootstraptest/test_thread.rb: begin Thread.new { fork { GC.start } }.join pid, status = Process.wait2 $result = status.success? ? :ok : :ng rescue NotImplementedError $result = :ok end It is easy to provoke the problem with this command launched in shell (1-20 times until the problem shows): $ ruby -e "Thread.new { fork { GC.start } }.join" Environment: - NetBSD-6.0_BETA amd64, from 2012/04/21 - ruby_1_9_3 branch, revision 35416 (I've also tried trunk and it has similar problem) - 8 GB RAM, a lot of free memory, dual-core CPU - gcc version 4.5.3 (NetBSD nb2 20110806) Backtrace and "bt full" is available in the attached gdb_session.txt file. -- http://bugs.ruby-lang.org/