From: "rudolf (r stu3)" Date: 2012-04-24T00:16:52+09:00 Subject: [ruby-core:44558] [ruby-trunk - Bug #6341] SIGSEGV: Thread.new { fork { GC.start } }.join Issue #6341 has been updated by rudolf (r stu3). Thanks for the comment. I am sorry, but I don't understand the sentence "NetBSD is not supported". I can see NetBSD-related statements in configure.in, so that means, that the build infrastructure has support for NetBSD (and indeed, it builds on NetBSD). Can you please explain, what you mean with that? For the problem at hand: if I understand correctly, the mentioned test (from bootstraptest/test_thread.rb) should not be run under POSIX systems? I have found some related notes (https://www.opengroup.org/austin/docs/austin_446.txt) about posix_spawn() supposedly being async-signal-safe. Maybe Kernel#fork should use posix_spawn() on systems which implement this function? ---------------------------------------- Bug #6341: SIGSEGV: Thread.new { fork { GC.start } }.join https://bugs.ruby-lang.org/issues/6341#change-26115 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/