[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67194: Stuck in wait-condition-variable
From: |
Christopher Baines |
Subject: |
bug#67194: Stuck in wait-condition-variable |
Date: |
Wed, 15 Nov 2023 11:44:34 +0000 |
User-agent: |
mu4e 1.10.7; emacs 29.1 |
I seem to have got Guile stuck in wait-condition-variable.
This is Guile 3.0.9 (specifically
/gnu/store/x4m56h5qkim0pnvx6vgvp541mrdwdrah-guile-3.0.9/bin/guile).
Here's some strace output.
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f52a1eb6480, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f52a1eb6480, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
futex(0x7f52a1eb6480, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1eb6480, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f5295cf7bc0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f52a1495af4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0,
{tv_sec=1700032632, tv_nsec=0}, FUTEX_BITSET_MATCH_ANY) = -1 ETIMEDOUT
(Connection timed out)
I think a key thing here is that all the calls to
wait-condition-variable are done with a timeout that is (current-time)
plus a few seconds, and 1700032632 is hours behind the current time of
(1700048795), so I think that's an indication that the program is stuck
inside wait-condition-variable.
Here's a backtrace from GDB:
(gdb) bt
#0 0x00007f52a188416a in __futex_abstimed_wait_common () from
/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/libc.so.6
#1 0x00007f52a1886abc in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/libc.so.6
#2 0x00007f52a1e315a5 in scm_pthread_cond_timedwait (cond=<optimized out>,
mutex=<optimized out>, wt=<optimized out>)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:1618
#3 0x00007f52a1e34eb3 in block_self (queue=((#<smob thread 7f52a1411020>)
#<smob thread 7f52a1411020>), mutex=mutex@entry=0x7f5295cf7bc0,
waittime=waittime@entry=0x7f5249ffa690) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:315
#4 0x00007f52a1e37707 in timed_wait (waittime=0x7f5249ffa690,
current_thread=0x7f52a1495900, c=0x7f5295d2ed50, m=0x7f5295cf7bc0,
kind=SCM_MUTEX_STANDARD)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:1371
#5 scm_timed_wait_condition_variable (cond=#<smob condition-variable
7f5295d2f380>, mutex=#<smob mutex 7f5295d2f3a0>, timeout=<optimized out>)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:1429
#6 0x00007f52a1e3d390 in vm_regular_engine (thread=0x7f52a1495900) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#7 0x00007f52a1e4adb5 in scm_call_n (proc=<optimized out>, argv=<optimized
out>, nargs=0) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#8 0x00007f52a1db1b3e in scm_call_with_unblocked_asyncs (proc=#<program
7f52a1487fe0>) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/async.c:406
#9 0x00007f52a1e3d390 in vm_regular_engine (thread=0x7f52a1495900) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#10 0x00007f52a1e4adb5 in scm_call_n (proc=<optimized out>, argv=<optimized
out>, nargs=0) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#11 0x00007f52a1e370f3 in really_launch (d=0x7f52a1486f60) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:782
#12 0x00007f52a1db3e1a in c_body (d=0x7f5249ffad80) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:430
#13 0x00007f52a1e3d390 in vm_regular_engine (thread=0x7f52a1495900) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#14 0x00007f52a1e4adb5 in scm_call_n (proc=<optimized out>, argv=<optimized
out>, nargs=2) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#15 0x00007f52a1db55ca in scm_call_2 (proc=<optimized out>, arg1=<optimized
out>, arg2=<optimized out>)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/eval.c:503
#16 0x00007f52a1e5c092 in scm_c_with_exception_handler.constprop.0 (type=#t,
handler_data=handler_data@entry=0x7f5249ffad10,
thunk_data=thunk_data@entry=0x7f5249ffad10, thunk=<optimized out>,
handler=<optimized out>)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/exceptions.c:170
#17 0x00007f52a1e37e1f in scm_c_catch (tag=<optimized out>, body=<optimized
out>, body_data=<optimized out>, handler=<optimized out>,
handler_data=<optimized out>, pre_unwind_handler=<optimized out>,
pre_unwind_handler_data=0x7f52a132b500)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/throw.c:168
#18 0x00007f52a1db6396 in scm_i_with_continuation_barrier
(pre_unwind_handler=0x7f52a1db60b0 <pre_unwind_handler>,
pre_unwind_handler_data=0x7f52a132b500,
handler_data=0x7f5249ffad80, handler=0x7f52a1dbcba0 <c_handler>,
body_data=0x7f5249ffad80, body=0x7f52a1db3e10 <c_body>)
at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:368
#19 scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized
out>) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:464
#20 0x00007f52a1e37049 in with_guile (base=0x7f5249ffae08, data=0x7f5249ffae30)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:649
#21 0x00007f52a1d177fa in GC_call_with_stack_base () from
/gnu/store/k1ha4n9v8d7myiiszvl2ic7xnb56l219-libgc-8.2.2/lib/libgc.so.1
#22 0x00007f52a1e30c5d in scm_i_with_guile (dynamic_state=<optimized out>,
data=0x7f52a1486f60, func=0x7f52a1e37080 <really_launch>)
at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:692
#23 launch_thread (d=0x7f52a1486f60) at
/tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:791
#24 0x00007f52a18873aa in start_thread () from
/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/libc.so.6
#25 0x00007f52a1907f7c in clone3 () from
/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/libc.so.6
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#67194: Stuck in wait-condition-variable,
Christopher Baines <=