From: Eric Wong <normalperson@...>
Date: 2011-12-03T10:37:14+09:00
Subject: [ruby-core:41456] [ruby-trunk - Bug #5700][Open] fork {} segfaults during VM cleanup when run inside Fiber


Issue #5700 has been reported by Eric Wong.

----------------------------------------
Bug #5700: fork {} segfaults during VM cleanup when run inside Fiber
http://redmine.ruby-lang.org/issues/5700

Author: Eric Wong
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2011-12-03 trunk 33934) [x86_64-linux]


The issue is very easy to reproduce:

	Fiber.new do
	  p Process.waitpid2(fork {})
	end.resume

Parent process successfully exits, child process segfaults while
it is exiting.

Backtrace is attached (gdb_bt.txt)

MALLOC_CHECK_=3 with GNU libc malloc() implementation detects an
attempt to free invalid pointer (attachment: malloc_check_3.txt)

I can also reproduce this with 1.9.2-p290 and 1.9.3-p0 as well as
latest trunk, so it has been around a while and a fix needs to be
backported.



-- 
http://redmine.ruby-lang.org