I have a unittest which spawns several processes repeatedly. One of these subprocesses uses botocore, which itself uses the above two methods through the calls proxy_bypass and getproxies. It seems after re-spawning the methods a few times the titled calls eventually repeatedly cause python to crash on 10.12. I have a core file if that would help, zip'd it's ~242MB. I've attached a file that shows the lldb callstack and python callstack.
interestingly I haven't been able to get this to crash in a separate test app. There must be either timing related to some interaction with another module. let me know how you guys would like to proceed. I can definitely reproduce it consistently in our application.
ya I did a monkey patch which resolved it. if sys.platform == 'darwin': import botocore.vendored.requests.utils, urllib.request botocore.vendored.requests.utils.proxy_bypass = urllib.request.proxy_bypass_environment botocore.vendored.requests.utils.getproxies = urllib.request.getproxies_environment urllib.request.proxy_bypass = urllib.request.proxy_bypass_environment urllib.request.getproxies = urllib.request.getproxies_environment
Glad you have it working. Did you try the suggested workaround of setting environment variable "no_proxy" to "*"? I believe that should have had the same net effect as the monkey patching.
I'm sure it would work, I just wanted a solution that didn't changes to our build infrastructure. btw if we're marking this as a duplicate of the other bug, can we update the other bug to say it affects python3.x as well? Thanks!