New submission from Zhipeng Xie <775350...@qq.com>:
Hi, we had a child process deadlock on _disabling_gc_lock in subprocess.Popen. It seems that after https://github.com/python/cpython/commit/5e8e371364ee58dadb9a4e4e51c7e9cf6bedbfae, subprocess.Popen no longer support to be called in preexec_fn. Steps to reproduce: [root@localhost ~]# python2 --version Python 2.7.15 [root@localhost ~]# python2 mtfork.py wait for a while and the child process deadlock Here is the gdb stack: (gdb) py-bt Traceback (most recent call first): Waiting for the GIL File "/usr/local/lib/python2.7/subprocess.py", line 931, in _execute_child with self._disabling_gc_lock: File "/usr/local/lib/python2.7/subprocess.py", line 394, in __init__ errread, errwrite) File "mtfork.py", line 36, in run_cmd stderr=subprocess.PIPE) File "/usr/local/lib/python2.7/subprocess.py", line 989, in _execute_child preexec_fn() File "/usr/local/lib/python2.7/subprocess.py", line 394, in __init__ errread, errwrite) File "mtfork.py", line 15, in run_command stdout=arg_stdout, stderr=arg_stderr, shell=True) File "mtfork.py", line 51, in _readerthread3 status = run_command("/root/exe",preexec_fn=preexec_fn_no_args) File "/usr/local/lib/python2.7/threading.py", line 754, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/usr/local/lib/python2.7/threading.py", line 774, in __bootstrap self.__bootstrap_inner() (gdb) py-list 926 # The first char specifies the exception type: 0 means 927 # OSError, 1 means some other error. 928 errpipe_read, errpipe_write = self.pipe_cloexec() 929 try: 930 try: >931 with self._disabling_gc_lock: 932 gc_was_enabled = gc.isenabled() 933 # Disable gc to avoid bug where gc -> file_dealloc -> 934 # write to stderr -> hang. 935 # https://bugs.python.org/issue1336 936 gc.disable() ---------- components: Library (Lib) files: mtfork.py messages: 355290 nosy: Zhipeng Xie priority: normal severity: normal status: open title: Child process deadlock in subprocess.Popen type: behavior versions: Python 2.7 Added file: https://bugs.python.org/file48675/mtfork.py _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38575> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com