Skip site navigation (1)Skip section navigation (2)
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>