#346
The spawnmt2 test deadlocked one time
Here are the stacks of the innermost process:
Thread 4 (LWP 2866006 "spawnmt2"):
#0 futex_wait (private=0, expected=2, futex_word=0x7e7444d2b730 <pizlonatedDO_lock+16>) at ../sysdeps/nptl/futex-internal.h:126
#1 yolo_futex_wait (addr=addr@entry=0x7e7444d2b730 <pizlonatedDO_lock+16>, val=val@entry=2, priv=priv@entry=1) at futex-internal.c:223
#2 0x00007e7443ad7cb2 in filc_native_zsys_futex_wait (my_thread=0x7e7434282040, addr_ptr=..., val=2, priv=1) at src/libpas/filc_runtime.c:11662
#3 0x00007e7443aa3c4c in native_thunk_zsys_futex_wait (my_thread=0x7e7444d2b730 <pizlonatedDO_lock+16>, callee_lower=<optimized out>, argument_size=<optimized out>) at src/libpas/filc_native_forwarders.c:13168
#4 0x00007e74444f71d3 in futex_wait (futex_word=<optimized out>, expected=<optimized out>, private=<optimized out>) at ../sysdeps/nptl/futex-internal.h:126
#5 __lll_lock_wait_private (futex=<optimized out>) at lowlevellock.c:34
#6 0x00007e744432809c in __random () at random.c:298
#7 0x00007e7444327441 in rand () at rand.c:27
#8 0x00005f24ceec698c in churn_rand (state=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:724
#9 0x00005f24ceed3d07 in fork_child_thread_main (arg=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:1374
#10 0x00007e744450b868 in start_thread (arg=<optimized out>) at pthread_create.c:362
#11 0x00007e74442b4f9a in pizlonated2ET1073 () from /proc/2865909/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#12 0x00007e7443a8facf in filc_call_user_thread_main (my_thread=my_thread@entry=0x7e7434282040, target=..., arg0=...) at src/libpas/filc_native_forwarders.c:24231
#13 0x00007e7443ae2b59 in start_thread (arg=0x7e7434282040) at src/libpas/filc_runtime.c:15065
#14 0x00007e7442c8a003 in start_thread (arg=<optimized out>) at pthread_create.c:454
#15 0x00007e7442d03ffc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Thread 3 (LWP 2865953 "spawnmt2"):
#0 futex_wait (private=0, expected=2, futex_word=0x7e7444d2b730 <pizlonatedDO_lock+16>) at ../sysdeps/nptl/futex-internal.h:126
#1 yolo_futex_wait (addr=addr@entry=0x7e7444d2b730 <pizlonatedDO_lock+16>, val=val@entry=2, priv=priv@entry=1) at futex-internal.c:223
#2 0x00007e7443ad7cb2 in filc_native_zsys_futex_wait (my_thread=0x7e743428b040, addr_ptr=..., val=2, priv=1) at src/libpas/filc_runtime.c:11662
#3 0x00007e7443aa3c4c in native_thunk_zsys_futex_wait (my_thread=0x7e7444d2b730 <pizlonatedDO_lock+16>, callee_lower=<optimized out>, argument_size=<optimized out>) at src/libpas/filc_native_forwarders.c:13168
#4 0x00007e74444f71d3 in futex_wait (futex_word=<optimized out>, expected=<optimized out>, private=<optimized out>) at ../sysdeps/nptl/futex-internal.h:126
#5 __lll_lock_wait_private (futex=<optimized out>) at lowlevellock.c:34
#6 0x00007e744432809c in __random () at random.c:298
#7 0x00007e7444327441 in rand () at rand.c:27
#8 0x00005f24ceec698c in churn_rand (state=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:724
#9 0x00005f24ceed3d07 in fork_child_thread_main (arg=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:1374
#10 0x00007e744450b868 in start_thread (arg=<optimized out>) at pthread_create.c:362
#11 0x00007e74442b4f9a in pizlonated2ET1073 () from /proc/2865909/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#12 0x00007e7443a8facf in filc_call_user_thread_main (my_thread=my_thread@entry=0x7e743428b040, target=..., arg0=...) at src/libpas/filc_native_forwarders.c:24231
#13 0x00007e7443ae2b59 in start_thread (arg=0x7e743428b040) at src/libpas/filc_runtime.c:15065
#14 0x00007e7442c8a003 in start_thread (arg=<optimized out>) at pthread_create.c:454
#15 0x00007e7442d03ffc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Thread 2 (LWP 2865918 "spawnmt2"):
#0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1 0x00007e7442c86cac in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2 0x00007e7442c86f9c in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=<optimized out>, expected=<optimized out>, futex_word=0x7e7443bfb340 <collector_thread_state_cond+32>) at futex-internal.c:58
#3 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7e7443bfb340 <collector_thread_state_cond+32>, expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:88
#4 0x00007e7442c86fef in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7e7443bfb340 <collector_thread_state_cond+32>, expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:140
#5 0x00007e7442c8965c in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7e7443bfb2f8 <collector_thread_state_lock>, cond=0x7e7443bfb320 <collector_thread_state_cond>) at pthread_cond_wait.c:421
#6 ___pthread_cond_wait (cond=0x7e7443bfb320 <collector_thread_state_cond>, mutex=0x7e7443bfb2f8 <collector_thread_state_lock>) at pthread_cond_wait.c:453
#7 0x00007e7443ae987f in wait_and_start_marking () at src/libpas/fugc.c:594
#8 collector_thread (arg=<optimized out>) at src/libpas/fugc.c:1463
#9 0x00007e7442c8a003 in start_thread (arg=<optimized out>) at pthread_create.c:454
#10 0x00007e7442d03ffc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Thread 1 (LWP 2865909 "spawnmt2"):
#0 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7e74344064f0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=<optimized out>, private=private@entry=0, cancel=cancel@entry=false) at futex-internal.c:104
#1 0x00007e7442c8712f in __GI___futex_abstimed_wait64 (private=0, abstime=<optimized out>, clockid=0, expected=0, futex_word=0x7e74344064f0) at futex-internal.c:129
#2 yolo_futex_timedwait (addr=addr@entry=0x7e74344064f0, val=val@entry=0, clock_id=clock_id@entry=0, timeout=timeout@entry=0x0, priv=priv@entry=1) at futex-internal.c:236
#3 0x00007e7443ad7d60 in filc_native_zsys_futex_timedwait (my_thread=my_thread@entry=0x7e7434286840, addr_ptr=..., val=0, clock_id=0, timeout_ptr=..., priv=1) at src/libpas/filc_runtime.c:11676
#4 0x00007e7443aa3df1 in native_thunk_zsys_futex_timedwait (my_thread=0x7e7434286840, callee_lower=<optimized out>, argument_size=<optimized out>) at src/libpas/filc_native_forwarders.c:13228
#5 0x00007e74444f6587 in pizlonatedFI3382059_zsys_futex_timedwait () from /proc/2865909/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#6 0x00007e74444f5e2d in __futex_abstimed_wait64 (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>) at futex-internal.c:30
#7 __futex_abstimed_wait_cancelable64 (futex_word=<optimized out>, expected=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, private=<optimized out>) at futex-internal.c:41
#8 0x00007e7444511886 in __pthread_clockjoin_ex (threadid=<optimized out>, thread_return=<optimized out>, clockid=<optimized out>, abstime=<optimized out>, cancel=<optimized out>) at pthread_join_common.c:107
#9 0x00007e74445112c2 in ___pthread_join (threadid=<optimized out>, thread_return=<optimized out>) at pthread_join.c:24
#10 0x00005f24ceed3584 in fork_child_work () at filc/tests/spawnmt2/spawnmt2.c:1422
#11 0x00005f24ceed1e6d in fork_one () at filc/tests/spawnmt2/spawnmt2.c:342
#12 0x00005f24ceebfc7f in do_one_op () at filc/tests/spawnmt2/spawnmt2.c:360
#13 0x00005f24ceebdce7 in worker_main (arg=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:1308
#14 0x00007e744450b868 in start_thread (arg=<optimized out>) at pthread_create.c:362
#15 0x00007e74442b4f9a in pizlonated2ET1073 () from /proc/2865909/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#16 0x00007e7443a8facf in filc_call_user_thread_main (my_thread=my_thread@entry=0x7e7434286840, target=..., arg0=...) at src/libpas/filc_native_forwarders.c:24231
#17 0x00007e7443ae2b59 in start_thread (arg=0x7e7434286840) at src/libpas/filc_runtime.c:15065
#18 0x00007e7442c8a003 in start_thread (arg=<optimized out>) at pthread_create.c:454
#19 0x00007e7442d03ffc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78Here are the stacks of the process that's waiting for this process:
Thread 2 (LWP 2865913 "spawnmt2"):
#0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1 0x00007e7442c86cac in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2 0x00007e7442c86f9c in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=<optimized out>, expected=<optimized out>, futex_word=0x7e7443bfb340 <collector_thread_state_cond+32>) at futex-internal.c:58
#3 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7e7443bfb340 <collector_thread_state_cond+32>, expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:88
#4 0x00007e7442c86fef in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7e7443bfb340 <collector_thread_state_cond+32>, expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:140
#5 0x00007e7442c8965c in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7e7443bfb2f8 <collector_thread_state_lock>, cond=0x7e7443bfb320 <collector_thread_state_cond>) at pthread_cond_wait.c:421
#6 ___pthread_cond_wait (cond=0x7e7443bfb320 <collector_thread_state_cond>, mutex=0x7e7443bfb2f8 <collector_thread_state_lock>) at pthread_cond_wait.c:453
#7 0x00007e7443ae987f in wait_and_start_marking () at src/libpas/fugc.c:594
#8 collector_thread (arg=<optimized out>) at src/libpas/fugc.c:1463
#9 0x00007e7442c8a003 in start_thread (arg=<optimized out>) at pthread_create.c:454
#10 0x00007e7442d03ffc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Thread 1 (LWP 2865651 "spawnmt2"):
#0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1 0x00007e7442c86cac in __internal_syscall_cancel (a1=a1@entry=-1, a2=a2@entry=139037556901008, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=0, nr=61) at cancellation.c:49
#2 0x00007e7442c86cf1 in __syscall_cancel (a1=a1@entry=-1, a2=a2@entry=139037556901008, a3=a3@entry=0, a4=a4@entry=0, a5=a5@entry=0, a6=a6@entry=0, nr=61) at cancellation.c:75
#3 0x00007e7442cec56b in __GI___wait4 (pid=pid@entry=-1, stat_loc=stat_loc@entry=0x7e7434308490, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30
#4 0x00007e7443ad947f in filc_native_zsys_wait4 (my_thread=my_thread@entry=0x7e7434282040, pid=-1, status_ptr=..., options=0, ru_ptr=...) at src/libpas/filc_runtime.c:12036
#5 0x00007e7443aa56ad in native_thunk_zsys_wait4 (my_thread=0x7e7434282040, callee_lower=<optimized out>, argument_size=<optimized out>) at src/libpas/filc_native_forwarders.c:14180
#6 0x00007e74446f7546 in pizlonatedFI1444116_zsys_wait4 () from /proc/2865651/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#7 0x00007e74446f73ca in __wait4 (pid=<optimized out>, stat_loc=<optimized out>, options=<optimized out>, usage=<optimized out>) at ../sysdeps/unix/sysv/linux/wait4.c:29
#8 0x00007e74446f7829 in __waitpid (pid=<optimized out>, stat_loc=<optimized out>, options=<optimized out>) at waitpid.c:38
#9 0x00005f24ceed21a6 in reap_one (block=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:229
#10 0x00005f24ceebd26a in reap_all () at filc/tests/spawnmt2/spawnmt2.c:255
#11 stress_main () at filc/tests/spawnmt2/spawnmt2.c:1508
#12 0x00005f24ceeb9a0e in main (argc=<optimized out>, argv=<optimized out>) at filc/tests/spawnmt2/spawnmt2.c:1519
#13 0x00005f24ceeb9a81 in pizlonated2ET11839 ()
#14 0x00007e744426c9ff in pizlonated1ET140583 () from /proc/2865651/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#15 0x00007e7444265ee2 in __libc_start_call_main (main=<optimized out>, argc=<optimized out>, argv=<optimized out>) at ../sysdeps/nptl/libc_start_call_main.h:59
#16 0x00007e7444264dc2 in __libc_start_main (main=<optimized out>, argc=<optimized out>, argv=<optimized out>, ev=<optimized out>, auxvec=<optimized out>) at ../csu/libc-start.c:159
#17 0x00007e744426563a in pizlonated2ET17125481 () from /proc/2865651/root/fil-c/build/bin/../../pizfix/lib/libc.so.6666
#18 0x00007e7443a8fc85 in filc_call_user_libc_start_main (my_thread=my_thread@entry=0x7e7434282040, target=..., arg0=..., arg1=arg1@entry=3, arg2=..., arg3=..., arg4=...) at src/libpas/filc_native_forwarders.c:24275
#19 0x00007e7443ae8664 in really_start_program (stack_limit=..., argc=argc@entry=3, argv=argv@entry=0x7ffeab054138, pizlonated___libc_start_main=pizlonated___libc_start_main@entry=0x7e7444261300 <pizlonated___libc_start_main>, pizlonated_main=pizlonated_main@entry=0x5f24ceeb9420 <pizlonated_main>) at src/libpas/filc_start_program.c:150
#20 0x00007e7443ae7f55 in filc_start_program (argc=3, argv=0x7ffeab054138, pizlonated___libc_start_main=0x7e7444261300 <pizlonated___libc_start_main>, pizlonated_main=0x5f24ceeb9420 <pizlonated_main>) at src/libpas/filc_start_program.c:213
#21 0x00005f24ceeb6d14 in main (argc=-1, argv=0x7e7434308490) at ../filc/main/main.c:52All of the other parent processes have the pattern where they're wait(2)ing.
This seems like it's most likely either a bug in the test, or some glibc thing involving rand and fork. It does not look like a Fil-C runtime deadlock, which is what the test case was engineered to catch.
Activity
0No activity yet.