cagney <andrew.cag...@gmail.com> added the comment:

Here's a possible stack taken during the fork():

Thread 1 "python3" hit Breakpoint 1, 0x00007ffff7124734 in fork () from 
/lib64/libc.so.6

Thread 1814 (Thread 0x7fffe69d5700 (LWP 23574)):
#0  0x00007ffff7bc24e5 in __pthread_mutex_unlock_usercnt () from 
/lib64/libpthread.so.0
#1  0x00007ffff71928e3 in dl_iterate_phdr () from /lib64/libc.so.6
#2  0x00007fffe5fcfe55 in _Unwind_Find_FDE () from /lib64/libgcc_s.so.1
#3  0x00007fffe5fcc403 in uw_frame_state_for () from /lib64/libgcc_s.so.1
#4  0x00007fffe5fcd90f in _Unwind_ForcedUnwind_Phase2 () from 
/lib64/libgcc_s.so.1
#5  0x00007fffe5fcdf30 in _Unwind_ForcedUnwind () from /lib64/libgcc_s.so.1
#6  0x00007ffff7bc7712 in __pthread_unwind () from /lib64/libpthread.so.0
#7  0x00007ffff7bbf7e7 in pthread_exit () from /lib64/libpthread.so.0
#8  0x000000000051b2fc in PyThread_exit_thread () at Python/thread_pthread.h:238
#9  0x000000000055ed16 in t_bootstrap (boot_raw=0x7fffe8da0e40) at 
./Modules/_threadmodule.c:1021
#10 0x00007ffff7bbe594 in start_thread () from /lib64/libpthread.so.0
#11 0x00007ffff7157e5f in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffff7fca080 (LWP 20524)):
#0  0x00007ffff7124734 in fork () from /lib64/libc.so.6
#1  0x0000000000532c8a in os_fork_impl (module=<optimized out>) at 
./Modules/posixmodule.c:5423
#2  os_fork (module=<optimized out>, _unused_ignored=<optimized out>) at 
./Modules/clinic/posixmodule.c.h:1913

where, in my source code, dl_iterate_phdr() starts with something like:

  /* Make sure nobody modifies the list of loaded objects.  */
  __rtld_lock_lock_recursive (GL(dl_load_write_lock));

i.e., when the fork occures, the non-fork thread has acquired 
dl_load_write_lock - the same lock that the child will later try to acquire 
(and hang)

no clue as to what that thread is doing though; other than it looks like it is 
trying to generate a backtrace?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue35866>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to