Author barry
Recipients barry, davin, kapilt, ned.deily, pitrou, ronaldoussoren
Date 2018-11-14.01:14:27
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1542158068.25.0.788709270274.issue33725@psf.upfronthosting.co.za>
In-reply-to
Content
Hoo boy.  I'm not sure I have the full picture, but things are starting to come into focus.  After much debugging, I've narrowed down at least one crash to urllib.request.getproxies().  On macOS (darwin), this ends up calling _scproxy.get_proxies() which calls into the SystemConfiguration framework.  I'll bet dollars to donuts that that calls into the ObjC runtime.  Thus it is unsafe to call between fork and exec.  This certainly seems to be the case even if the environment variable is set.

The problem is that I think requests.post() probably also ends up in here somehow (still untraced), because by removing our call to urllib.requests.getproxies(), we just crash later on when requests.post() is called.

I don't know what, if anything can be done in Python, except perhaps to document that anything that calls into the ObjC runtime between fork and exec can potentially crash the subprocess.
History
Date User Action Args
2018-11-14 01:14:28barrysetrecipients: + barry, ronaldoussoren, pitrou, ned.deily, davin, kapilt
2018-11-14 01:14:28barrysetmessageid: <1542158068.25.0.788709270274.issue33725@psf.upfronthosting.co.za>
2018-11-14 01:14:28barrylinkissue33725 messages
2018-11-14 01:14:27barrycreate