gdbus-peer test is sometimes timing out
As seen in CI, but reproducable locally with meson test --repeat 100 --suite glib:gio gdbus-peer
, with or without --num-processes 1
. This looks to be some kind of deadlock race:
(gdb) t a a bt
Thread 12 (Thread 0x7ffff70c4700 (LWP 21557)):
#0 0x00007ffff7ac36d9 in __GI___poll (fds=0x7fffe8012240, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7efa0b5 in g_poll (fds=0x7fffe8012240, nfds=2, timeout=-1) at ../../../../dev/gnome/glib/glib/gpoll.c:125
#2 0x00007ffff7ee6fe8 in g_main_context_poll (context=0x7fffe8010170, timeout=-1, priority=2147483647, fds=0x7fffe8012240, n_fds=2) at ../../../../dev/gnome/glib/glib/gmain.c:4228
#3 0x00007ffff7ee6967 in g_main_context_iterate (context=0x7fffe8010170, block=1, dispatch=1, self=0x7fffe00084f0) at ../../../../dev/gnome/glib/glib/gmain.c:3922
#4 0x00007ffff7ee6dcc in g_main_loop_run (loop=0x7fffe8012b40) at ../../../../dev/gnome/glib/glib/gmain.c:4123
#5 0x0000555555558757 in run_service_loop (service_context=0x7fffe8010170) at ../../../../dev/gnome/glib/gio/tests/gdbus-peer.c:365
#6 0x000055555555bc73 in codegen_service_thread_func (user_data=0x0) at ../../../../dev/gnome/glib/gio/tests/gdbus-peer.c:1585
#7 0x00007ffff7f19479 in g_thread_proxy (data=0x7fffe00084f0) at ../../../../dev/gnome/glib/glib/gthread.c:805
#8 0x00007ffff7ba9164 in start_thread (arg=<optimized out>) at pthread_create.c:486
#9 0x00007ffff7acfdef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7ffff60c2700 (LWP 21550)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007ffff7f468b4 in g_mutex_lock_slowpath (mutex=0x5555555916a0) at ../../../../dev/gnome/glib/glib/gthread-posix.c:1331
#2 0x00007ffff7f46957 in g_mutex_lock (mutex=0x5555555916a0) at ../../../../dev/gnome/glib/glib/gthread-posix.c:1355
#3 0x00007ffff7d6931c in schedule_pending_close (worker=0x555555591600) at ../../../../dev/gnome/glib/gio/gdbusprivate.c:1599
#4 0x00007ffff7d67b6c in _g_dbus_worker_do_read_cb (input_stream=0x555555592130, res=0x7fffe0003b90, user_data=0x555555591600) at ../../../../dev/gnome/glib/gio/gdbusprivate.c:816
#5 0x00007ffff7cda8d2 in g_task_return_now (task=0x7fffe0003b90) at ../../../../dev/gnome/glib/gio/gtask.c:1202
#6 0x00007ffff7cda938 in complete_in_idle_cb (task=0x7fffe0003b90) at ../../../../dev/gnome/glib/gio/gtask.c:1216
#7 0x00007ffff7ee856c in g_idle_dispatch (source=0x7fffe0008120, callback=0x7ffff7cda920 <complete_in_idle_cb>, user_data=0x7fffe0003b90) at ../../../../dev/gnome/glib/glib/gmain.c:5627
#8 0x00007ffff7ee583b in g_main_dispatch (context=0x55555558a390) at ../../../../dev/gnome/glib/glib/gmain.c:3189
#9 0x00007ffff7ee679f in g_main_context_dispatch (context=0x55555558a390) at ../../../../dev/gnome/glib/glib/gmain.c:3854
#10 0x00007ffff7ee6992 in g_main_context_iterate (context=0x55555558a390, block=1, dispatch=1, self=0x555555575cf0) at ../../../../dev/gnome/glib/glib/gmain.c:3927
#11 0x00007ffff7ee6dcc in g_main_loop_run (loop=0x55555558a480) at ../../../../dev/gnome/glib/glib/gmain.c:4123
#12 0x00007ffff7d66cbe in gdbus_shared_thread_func (user_data=0x55555558a360) at ../../../../dev/gnome/glib/gio/gdbusprivate.c:275
#13 0x00007ffff7f19479 in g_thread_proxy (data=0x555555575cf0) at ../../../../dev/gnome/glib/glib/gthread.c:805
#14 0x00007ffff7ba9164 in start_thread (arg=<optimized out>) at pthread_create.c:486
#15 0x00007ffff7acfdef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7ffff68c3700 (LWP 21549)):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007ffff7f46c20 in g_cond_wait_until (cond=0x555555569158, mutex=0x555555569150, end_time=5341445354599) at ../../../../dev/gnome/glib/glib/gthread-posix.c:1460
#2 0x00007ffff7eabbcd in g_async_queue_pop_intern_unlocked (queue=0x555555569150, wait=1, end_time=5341445354599) at ../../../../dev/gnome/glib/glib/gasyncqueue.c:422
#3 0x00007ffff7eabe32 in g_async_queue_timeout_pop (queue=0x555555569150, timeout=15000000) at ../../../../dev/gnome/glib/glib/gasyncqueue.c:545
#4 0x00007ffff7f19827 in g_thread_pool_wait_for_new_pool () at ../../../../dev/gnome/glib/glib/gthreadpool.c:168
#5 0x00007ffff7f19ae4 in g_thread_pool_thread_proxy (data=0x7fffe80047a0) at ../../../../dev/gnome/glib/glib/gthreadpool.c:365
#6 0x00007ffff7f19479 in g_thread_proxy (data=0x555555576680) at ../../../../dev/gnome/glib/glib/gthread.c:805
#7 0x00007ffff7ba9164 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8 0x00007ffff7acfdef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7ffff78c5700 (LWP 21547)):
#0 0x00007ffff7ac36d9 in __GI___poll (fds=0x555555573d30, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7efa0b5 in g_poll (fds=0x555555573d30, nfds=1, timeout=-1) at ../../../../dev/gnome/glib/glib/gpoll.c:125
#2 0x00007ffff7ee6fe8 in g_main_context_poll (context=0x5555555759d0, timeout=-1, priority=2147483647, fds=0x555555573d30, n_fds=1) at ../../../../dev/gnome/glib/glib/gmain.c:4228
#3 0x00007ffff7ee6967 in g_main_context_iterate (context=0x5555555759d0, block=1, dispatch=1, self=0x555555575c00) at ../../../../dev/gnome/glib/glib/gmain.c:3922
#4 0x00007ffff7ee6a6a in g_main_context_iteration (context=0x5555555759d0, may_block=1) at ../../../../dev/gnome/glib/glib/gmain.c:3988
#5 0x00007ffff7ee884d in glib_worker_main (data=0x0) at ../../../../dev/gnome/glib/glib/gmain.c:5868
#6 0x00007ffff7f19479 in g_thread_proxy (data=0x555555575c00) at ../../../../dev/gnome/glib/glib/gthread.c:805
#7 0x00007ffff7ba9164 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8 0x00007ffff7acfdef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7ffff78c6c40 (LWP 21543)):
#0 0x00007ffff7ac36d9 in __GI___poll (fds=0x5555555970a0, nfds=1, timeout=25000) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7efa0b5 in g_poll (fds=0x5555555970a0, nfds=1, timeout=25000) at ../../../../dev/gnome/glib/glib/gpoll.c:125
#2 0x00007ffff7ee6fe8 in g_main_context_poll (context=0x555555596c80, timeout=25000, priority=2147483647, fds=0x5555555970a0, n_fds=1) at ../../../../dev/gnome/glib/glib/gmain.c:4228
#3 0x00007ffff7ee6967 in g_main_context_iterate (context=0x555555596c80, block=1, dispatch=1, self=0x555555573320) at ../../../../dev/gnome/glib/glib/gmain.c:3922
#4 0x00007ffff7ee6dcc in g_main_loop_run (loop=0x555555596d70) at ../../../../dev/gnome/glib/glib/gmain.c:4123
#5 0x00007ffff7d644a0 in initable_init (initable=0x7fffe0003ed0, cancellable=0x0, error=0x7fffffffd0e0) at ../../../../dev/gnome/glib/gio/gdbusproxy.c:1956
#6 0x00007ffff7c98723 in g_initable_init (initable=0x7fffe0003ed0, cancellable=0x0, error=0x7fffffffd0e0) at ../../../../dev/gnome/glib/gio/ginitable.c:128
#7 0x00007ffff7c9896c in g_initable_new_valist (object_type=93824992496528, first_property_name=0x7ffff7c09328 "g-flags", var_args=0x7fffffffcf70, cancellable=0x0, error=0x7fffffffd0e0) at ../../../../dev/gnome/glib/gio/ginitable.c:248
#8 0x00007ffff7c987eb in g_initable_new (object_type=93824992496528, cancellable=0x0, error=0x7fffffffd0e0, first_property_name=0x7ffff7c09328 "g-flags") at ../../../../dev/gnome/glib/gio/ginitable.c:162
#9 0x00007ffff7c043cc in example_animal_proxy_new_sync (connection=0x555555582660, flags=G_DBUS_PROXY_FLAGS_NONE, name=0x0, object_path=0x55555555de46 "/Example/Animals/000", cancellable=0x0, error=0x7fffffffd0e0) at gio/tests/gdbus-object-manager-example/objectmanager-gen.c:1139
#10 0x000055555555be3a in codegen_test_peer () at ../../../../dev/gnome/glib/gio/tests/gdbus-peer.c:1635
#11 0x00007ffff7f15d89 in test_case_run (tc=0x555555572af0) at ../../../../dev/gnome/glib/glib/gtestutils.c:2597
#12 0x00007ffff7f16168 in g_test_run_suite_internal (suite=0x555555570ce0, path=0x0) at ../../../../dev/gnome/glib/glib/gtestutils.c:2685
#13 0x00007ffff7f16211 in g_test_run_suite_internal (suite=0x555555570d40, path=0x0) at ../../../../dev/gnome/glib/glib/gtestutils.c:2697
#14 0x00007ffff7f16428 in g_test_run_suite (suite=0x555555570d40) at ../../../../dev/gnome/glib/glib/gtestutils.c:2772
#15 0x00007ffff7f14fb4 in g_test_run () at ../../../../dev/gnome/glib/glib/gtestutils.c:2007
#16 0x000055555555c75b in main (argc=1, argv=0x7fffffffd428) at ../../../../dev/gnome/glib/gio/tests/gdbus-peer.c:1767
(gdb)