[pypy-issue] [issue737] Crash on OS X, maybe in RPyThreadAfterFork

Jean-Paul Calderone tracker at bugs.pypy.org
Fri Jun 3 15:22:09 CEST 2011


New submission from Jean-Paul Calderone <exarkun at twistedmatrix.com>:

I tried to deploy a BuildBot slave on PyPy, but found the processes it was trying to 
run would crash seemingly at random.  I managed to reproduce the behavior with this 
short Twisted-using example:


from twisted.python.log import err
from twisted.internet import reactor
from twisted.internet.utils import getProcessValue
from twisted.internet.task import LoopingCall

def main():
    def launch():
        print 'Launching'
        d = getProcessValue("/bin/bash", ["-c", "echo $((1+2))"])
        def report(result):
            assert result == 0
        return d.addCallback(report)
    call = LoopingCall(launch)
    call.start(0.01).addErrback(err)
    reactor.resolve("www.google.com")
    reactor.run()

if __name__ == '__main__':
    main()

The expected correct behavior is for it to run forever launching short-lived bash 
children.  The observed behavior is that after 5 or 10 seconds the assertion fails, 
indicating that the child process exited with either a non-zero exit status or due to a 
signal.  OS X generates a crash report at the same time indicating that the child 
process crashed before it had exec'd bash due to either SIGSEGV or SIGBUS (sometimes 
one, sometimes the other).

----------
messages: 2593
nosy: calderone, pypy-issue
priority: bug
release: 1.5
status: unread
title: Crash on OS X, maybe in RPyThreadAfterFork

________________________________________
PyPy bug tracker <tracker at bugs.pypy.org>
<https://bugs.pypy.org/issue737>
________________________________________


More information about the pypy-issue mailing list