Author gregory.p.smith
Recipients Connor.Wolf, Giovanni.Bajo, bobbyi, dan.oreilly, emptysquare, forest_atq, gregory.p.smith, ionelmc, jcea, lesha, neologix, nirai, nirs, pitrou, sbt, sdaoden, tshepang, vinay.sajip, vstinner
Date 2016-07-09.04:21:51
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1468038111.63.0.36464952447.issue6721@psf.upfronthosting.co.za>
In-reply-to
Content
My intent is not to block anything.  I'm Just explaining why I'm not motivated to spend much time on this issue myself.  Others are welcome to.

subprocess is not related to this issue, it has been fixed for use with threads (in 3.2 and higher) with an extremely widely used drop in replacement back-port for 2.7 https://pypi.python.org/pypi/subprocess32.  But even 2.7's poor subprocess implementation never triggered this specific issue in the first place (unless someone logged from a pre_exec_fn which would be a laughable thing to do anyways).

multiprocessing: It has spawn (as of 3.4) and forkserver methods both of which can help avoid this issue.  Caveats: spawn understandably has negative performance implications and forkserver requires the forkserver to be forked before threads potentially holding locks have been started.

As for the gross hacky monkey patching workaround: That was the approach I took in https://github.com/google/python-atfork/blob/master/atfork/stdlib_fixer.py#L51

Definitely a hack, but one that does work on existing interpreters.

Conner & lesha: Which Python version(s) are you using?
History
Date User Action Args
2016-07-09 04:21:51gregory.p.smithsetrecipients: + gregory.p.smith, vinay.sajip, jcea, nirs, pitrou, vstinner, nirai, forest_atq, ionelmc, bobbyi, neologix, Giovanni.Bajo, sdaoden, tshepang, sbt, lesha, emptysquare, dan.oreilly, Connor.Wolf
2016-07-09 04:21:51gregory.p.smithsetmessageid: <1468038111.63.0.36464952447.issue6721@psf.upfronthosting.co.za>
2016-07-09 04:21:51gregory.p.smithlinkissue6721 messages
2016-07-09 04:21:51gregory.p.smithcreate