Elad Lahav <[email protected]> added the comment:
As sure as I can be given my limited experience debugging Python... Luckily I
do know my way around the QNX kernel ;-)
The stack trace for the child shows it stuck on a semaphore with a count value
of 0. A print in the logging module shows that the child gets to the
_acquireLock() call on line 245 of logging/__init__.py but a print after that
line is never displayed. I am basing my analysis on the combination of the two
observations.
I'll try to come up with a change to distutils.spawn, as well as a change to
subprocess to use posix_spawn().
Stack trace:
#0 SyncSemWait () at
/builds/workspace/710-SDP/build_x86_64/lib/c/kercalls/x86_64/SyncSemWait.S:37
#1 0x000000267938bac6 in PyThread_acquire_lock_timed
(lock=lock@entry=0x3bcde5a430, microseconds=microseconds@entry=-1000000,
intr_flag=intr_flag@entry=1) at Python/thread_pthread.h:459
#2 0x00000026793de7bd in acquire_timed (lock=0x3bcde5a430,
timeout=-1000000000) at ./Modules/_threadmodule.c:63
#3 0x00000026793de8e7 in rlock_acquire (self=0x3bce057c90, args=<optimized
out>, kwds=<optimized out>) at ./Modules/_threadmodule.c:308
#4 0x000000267941b631 in method_vectorcall_VARARGS_KEYWORDS
(func=0x3bcdee2ef0, args=0x3bce1ad4d0, nargsf=<optimized out>,
kwnames=<optimized out>)
at Objects/descrobject.c:332
#5 0x0000002679285ff6 in _PyObject_Vectorcall (kwnames=<optimized out>,
nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>)
at ./Include/cpython/abstract.h:123
#6 call_function (kwnames=0x0, oparg=1, pp_stack=<synthetic pointer>,
tstate=0x3bcdea9040) at Python/ceval.c:4987
#7 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at
Python/ceval.c:3486
#8 0x000000267928395b in function_code_fastcall (co=<optimized out>,
args=<optimized out>, nargs=0, globals=<optimized out>) at Objects/call.c:283
#9 0x0000002679285d29 in _PyObject_Vectorcall (kwnames=<optimized out>,
nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>)
at ./Include/cpython/abstract.h:127
#10 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, tstate=0x3bcdea9040) at Python/ceval.c:4987
#11 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at
Python/ceval.c:3500
#12 0x000000267928395b in function_code_fastcall (co=<optimized out>,
args=<optimized out>, nargs=1, globals=<optimized out>) at Objects/call.c:283
#13 0x0000002679285d29 in _PyObject_Vectorcall (kwnames=<optimized out>,
nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>)
at ./Include/cpython/abstract.h:127
#14 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, tstate=0x3bcdea9040) at Python/ceval.c:4987
#15 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at
Python/ceval.c:3500
#16 0x000000267928395b in function_code_fastcall (co=<optimized out>,
args=<optimized out>, nargs=1, globals=<optimized out>) at Objects/call.c:283
#17 0x0000002679285ff6 in _PyObject_Vectorcall (kwnames=<optimized out>,
nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>)
at ./Include/cpython/abstract.h:123
#18 call_function (kwnames=0x0, oparg=1, pp_stack=<synthetic pointer>,
tstate=0x3bcdea9040) at Python/ceval.c:4987
#19 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at
Python/ceval.c:3486
#20 0x000000267928395b in function_code_fastcall (co=<optimized out>,
args=<optimized out>, nargs=0, globals=<optimized out>) at Objects/call.c:283
#21 0x000000267929d26a in _PyObject_FastCallDict (callable=0x3bce1bd160,
args=<optimized out>, nargsf=<optimized out>, kwargs=<optimized out>)
at Objects/call.c:96
#22 0x00000026793a0584 in run_at_forkers (lst=<optimized out>,
reverse=<optimized out>) at ./Modules/posixmodule.c:435
#23 0x00000026793abbfb in run_at_forkers (reverse=0, lst=<optimized out>) at
./Modules/posixmodule.c:420
#24 PyOS_AfterFork_Child () at ./Modules/posixmodule.c:474
#25 0x00000026793abd08 in os_fork_impl (module=<optimized out>) at
./Modules/posixmodule.c:6082
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue39763>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com