Issue #6341 has been updated by naruse (Yui NARUSE).


naruse (Yui NARUSE) wrote:
> as I said above, it works with NetBSD 5.1.
> So this is a bug added after 5.1.

I tried it on i386-netbsdelf6.99.4 (2012-04-13), and it works.
It maybe x86_64 issue, or fixed in current, or something.
----------------------------------------
Bug #6341: SIGSEGV: Thread.new { fork { GC.start } }.join
https://bugs.ruby-lang.org/issues/6341#change-26139

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/