Date: Tue, 04 Mar 2014 00:42:04 +1300 (NZDT) From: Andrew Childs <lorne@cons.org.nz> To: FreeBSD-gnats-submit@freebsd.org Subject: ports/187220: lang/ruby20, lang/ruby21: deadlock with fork, new thread and raise in at_exit Message-ID: <20140303114204.1470074@northind.cons.org.nz> Resent-Message-ID: <201403031150.s23Bo02n023863@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 187220 >Category: ports >Synopsis: lang/ruby20, lang/ruby21: deadlock with fork, new thread and raise in at_exit >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Mar 03 11:50:00 UTC 2014 >Closed-Date: >Last-Modified: >Originator: Andrew Childs >Release: FreeBSD 10.0-RELEASE amd64 >Organization: >Environment: System: FreeBSD northind.cons.org.nz 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 >Description: The following test case sometimes causes a deadlock in the parent process in lang/ruby20 and lang/ruby21. Ruby on other platforms and lang/ruby19 seem to be unaffected. This test case was inspired by sysutils/puppet, which executes similar code displays similar symptoms. at_exit { raise } if pid = fork Thread.new {} exit(0) end Tested, OK: ruby19 -v: ruby 1.9.3p484 (2013-11-22 revision 43786) [amd64-freebsd10] Tested, deadlocks: ruby20 -v: ruby 2.0.0p353 (2013-11-22 revision 43784) [amd64-freebsd10] ruby21 -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [amd64-freebsd10] >How-To-Repeat: In order to see a deadlock it may have to be run multiple times, for example: for i in `jot 100`; do ruby test-case.rb; done >Fix: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140303114204.1470074>