Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
pipewire
pipewire
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 225
    • Issues 225
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 5
    • Merge Requests 5
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PipeWire
  • pipewirepipewire
  • Issues
  • #286

Closed
Open
Created Sep 11, 2020 by Philip Withnall@pwithnall

Crash when calling gst_pipewire_device_provider_stop()

This is reproducible using the Debian packaging of pipewire 0.3.10 on Endless OS by switching the language in gnome-initial-setup. Internally in g-i-s that causes a libcheese webcam widget to be destroyed (so it can be recreated with the locale changed), which causes various things inside GStreamer to be shutdown/stopped and causes a double-free inside gstpipewiredeviceprovider.c.

I can reproduce it by booting an Endless OS image with the kernel arguments: systemd.debug_shell systemd.setenv=MALLOC_CHECK_=3 systemd.setenv=PIPEWIRE_DEBUG=5. The first is needed so I can debug the problem, the second is needed to cause the double-free to immediately abort, and the third is for debug.

Here’s a journal of the pipewire debug output showing the problem: journal

The crash happens at free(): invalid pointer and involves a double-free of proxy object 0x5620b61f2920, which is a struct pw_registry.

Here’s the output of a gdb session:

Thread 1 "gnome-initial-s" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) t a a bt

Thread 13 (Thread 0x7f39cc8a4700 (LWP 1778)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f39e59a3edf in g_cond_wait_until (cond=cond@entry=0x5620b3f722a8, mutex=mutex@entry=0x5620b3f722a0, end_time=end_time@entry=304864240) at ../../../glib/gthread-posix.c:1588
#2  0x00007f39e5928591 in g_async_queue_pop_intern_unlocked (queue=0x5620b3f722a0, wait=wait@entry=1, end_time=304864240) at ../../../glib/gasyncqueue.c:422
#3  0x00007f39e5928bcd in g_async_queue_timeout_pop_unlocked (queue=<optimized out>, timeout=timeout@entry=500000) at ../../../glib/gasyncqueue.c:574
#4  0x00007f39e59814a2 in g_thread_pool_wait_for_new_task (pool=<optimized out>) at ../../../glib/gthreadpool.c:278
#5  g_thread_pool_thread_proxy (data=<optimized out>) at ../../../glib/gthreadpool.c:343
#6  0x00007f39e5980afd in g_thread_proxy (data=0x5620b577f0c0) at ../../../glib/gthread.c:807
#7  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7f397e29c700 (LWP 1162)):
#0  0x00007f39e15967ef in epoll_wait (epfd=34, events=0x7f397e29b520, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x00007f39805a0f40 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#2  0x00007f398059ed29 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#3  0x00007f397efd07d5 in do_loop (user_data=0x5620b610ddc0) at ../src/pipewire/thread-loop.c:240
#4  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7f397ee93700 (LWP 1161)):
#0  0x00007f39e15967ef in epoll_wait (epfd=38, events=0x7f397ee924b0, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x00007f39805a0f40 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#2  0x00007f398059ed29 in ?? () from /usr/lib/x86_64-linux-gnu/spa-0.2/support/libspa-support.so
#3  0x00007f397ef9a158 in do_loop (user_data=0x5620b610f450) at ../src/pipewire/data-loop.c:77
#4  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7f397fd0f700 (LWP 1159)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f39e59a3dbf in g_cond_wait (cond=0x7f39e4e2c260, mutex=0x7f39e4e2c250) at ../../../glib/gthread-posix.c:1540
#2  0x00007f39e4df0f53 in ?? () from /lib/x86_64-linux-gnu/libevview3.so.3
#3  0x00007f39e5980afd in g_thread_proxy (data=0x5620b3f8ab00) at ../../../glib/gthread.c:807
#4  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#5  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f39816fd700 (LWP 1153)):
#0  0x00007f39e158b819 in __GI___poll (fds=0x5620b45b2000, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f39e59578d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x5620b45b2000, timeout=<optimized out>, context=0x5620b45b4ba0) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=0x5620b45b4ba0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007f39e5957c2a in g_main_loop_run (loop=0x5620b45b5800) at ../../../glib/gmain.c:4241
#4  0x00007f39df6691b0 in WTF::RunLoop::run() () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#5  0x00007f39df61a37b in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#6  0x00007f39df66a699 in ?? () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#7  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f3981efe700 (LWP 1152)):
#0  0x00007f39e158b819 in __GI___poll (fds=0x5620b44a5530, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f39e59578d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x5620b44a5530, timeout=<optimized out>, context=0x5620b45b34a0) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=0x5620b45b34a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007f39e5957c2a in g_main_loop_run (loop=0x5620b44a51b0) at ../../../glib/gmain.c:4241
#4  0x00007f39df6691b0 in WTF::RunLoop::run() () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#5  0x00007f39df61a37b in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#6  0x00007f39df66a699 in ?? () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#7  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
--Type <RET> for more, q to quit, c to continue without paging--
#8  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f39826ff700 (LWP 1151)):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x7f39826fe5d0, expected=0, futex_word=0x7f39c2fe5060) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  __pthread_cond_wait_common (abstime=0x7f39826fe5d0, mutex=0x7f39c2fe5010, cond=0x7f39c2fe5038) at pthread_cond_wait.c:539
#2  __pthread_cond_timedwait (cond=0x7f39c2fe5038, mutex=0x7f39c2fe5010, abstime=0x7f39826fe5d0) at pthread_cond_wait.c:667
#3  0x00007f39df66ae1a in WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime) () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#4  0x00007f39df6162cb in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) ()
   from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#5  0x00007f39df61972a in WTF::sleep(WTF::Seconds) () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#6  0x00007f39e2202ab5 in ?? () from /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
#7  0x00007f39df61a37b in WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#8  0x00007f39df66a699 in ?? () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#9  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#10 0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f39c382a700 (LWP 1150)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x7f39df9aa7c8 <bmalloc::StaticPerProcessStorageTraits<bmalloc::Scavenger>::Storage::s_memory+72>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5620b45b0db0, cond=0x7f39df9aa7a0 <bmalloc::StaticPerProcessStorageTraits<bmalloc::Scavenger>::Storage::s_memory+32>) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x7f39df9aa7a0 <bmalloc::StaticPerProcessStorageTraits<bmalloc::Scavenger>::Storage::s_memory+32>, mutex=0x5620b45b0db0) at pthread_cond_wait.c:655
#3  0x00007f39dbd503bc in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007f39df67ab72 in bmalloc::Scavenger::threadRunLoop() () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#5  0x00007f39df67ae39 in bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) () from /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
#6  0x00007f39dbd55b2f in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#8  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f39cb7d2700 (LWP 1144)):
#0  0x00007f39e158b819 in __GI___poll (fds=0x5620b3f9bf70, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f39e59578d6 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x5620b3f9bf70, timeout=<optimized out>, context=0x5620b3f80480) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x5620b3f80480, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007f39e59579fc in g_main_context_iteration (context=0x5620b3f80480, may_block=1) at ../../../glib/gmain.c:4108
#4  0x00007f39e5db0dcd in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#5  0x00007f39e5980afd in g_thread_proxy (data=0x5620b3f9d0c0) at ../../../glib/gthread.c:807
#6  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#7  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f39cbfd3700 (LWP 1143)):
#0  0x00007f39e158b819 in __GI___poll (fds=0x5620b4ff9120, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f39e59578d6 in g_main_context_poll (priority=<optimized out>, n_fds=4, fds=0x5620b4ff9120, timeout=<optimized out>, context=0x5620b3f928f0) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=0x5620b3f928f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007f39e5957c2a in g_main_loop_run (loop=0x5620b3f95040) at ../../../glib/gmain.c:4241
#4  0x00007f39e5ba0d96 in gdbus_shared_thread_func (user_data=0x5620b3f93fb0) at ../../../gio/gdbusprivate.c:279
#5  0x00007f39e5980afd in g_thread_proxy (data=0x5620b3f8aaa0) at ../../../glib/gthread.c:807
#6  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#7  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f39cd0a5700 (LWP 1141)):
#0  0x00007f39e158b819 in __GI___poll (fds=0x5620b3f49730, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f39e59578d6 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x5620b3f49730, timeout=<optimized out>, context=0x5620b3f72460) at ../../../glib/gmain.c:4346
#2  g_main_context_iterate (context=context@entry=0x5620b3f72460, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4042
#3  0x00007f39e59579fc in g_main_context_iteration (context=0x5620b3f72460, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#4  0x00007f39e5957a41 in glib_worker_main (data=<optimized out>) at ../../../glib/gmain.c:5996
#5  0x00007f39e5980afd in g_thread_proxy (data=0x5620b3f5f1e0) at ../../../glib/gthread.c:807
#6  0x00007f39e1667fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#7  0x00007f39e15964cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
--Type <RET> for more, q to quit, c to continue without paging--

Thread 1 (Thread 0x7f39da360d00 (LWP 1130)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f39e14bf535 in __GI_abort () at abort.c:79
#2  0x00007f39e1516508 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f39e162128d "%s\n") at ../sysdeps/posix/libc_fatal.c:181
#3  0x00007f39e151cc1a in malloc_printerr (str=str@entry=0x7f39e161f43b "free(): invalid pointer") at malloc.c:5341
#4  0x00007f39e1520b3e in free_check (mem=<optimized out>, caller=<optimized out>) at hooks.c:254
#5  0x00007f397efc2500 in pw_proxy_destroy (proxy=0x5620b61f2920) at ../src/pipewire/proxy.c:259
#6  0x00007f397f03407f in gst_pipewire_device_provider_stop (provider=<optimized out>) at ../src/gst/gstpipewiredeviceprovider.c:664
#7  0x00007f39dfd3ecee in gst_device_provider_stop (provider=0x5620b3f7ac70) at gstdeviceprovider.c:491
#8  0x00007f39dfd3d55a in gst_device_monitor_stop (monitor=0x5620b4ffc860) at gstdevicemonitor.c:571
#9  0x00007f39e1742e0b in ?? () from /lib/x86_64-linux-gnu/libcheese.so.8
#10 0x00007f39e5a460bd in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3499
#11 g_object_unref (_object=0x5620b45ad930) at ../../../gobject/gobject.c:3391
#12 0x00005620b1e19d61 in um_photo_dialog_dispose (object=0x5620b6100220) at ../gnome-initial-setup/pages/account/um-photo-dialog.c:443
#13 0x00007f39e5a46043 in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3461
#14 g_object_unref (_object=0x5620b6100220) at ../../../gobject/gobject.c:3391
#15 0x00007f39e5943b9f in g_hash_table_remove_all_nodes (hash_table=hash_table@entry=0x5620b61062a0, notify=notify@entry=1, destruction=destruction@entry=1) at ../../../glib/ghash.c:703
#16 0x00007f39e5944f7f in g_hash_table_remove_all_nodes (destruction=1, notify=1, hash_table=0x5620b61062a0) at ../../../glib/ghash.c:1461
#17 g_hash_table_unref (hash_table=0x5620b61062a0) at ../../../glib/ghash.c:1461
#18 0x00007f39e59380bf in g_datalist_clear (datalist=<optimized out>) at ../../../glib/gdataset.c:273
#19 0x00007f39e5a460bd in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3499
#20 g_object_unref (_object=0x5620b4fcfce0) at ../../../gobject/gobject.c:3391
#21 0x00007f39e5943bb2 in g_hash_table_remove_all_nodes (hash_table=hash_table@entry=0x5620b60f59e0, notify=notify@entry=1, destruction=destruction@entry=0) at ../../../glib/ghash.c:706
#22 0x00007f39e59457f8 in g_hash_table_remove_all_nodes (destruction=0, notify=1, hash_table=0x5620b60f59e0) at ../../../glib/ghash.c:1883
#23 g_hash_table_remove_all (hash_table=0x5620b60f59e0) at ../../../glib/ghash.c:1883
#24 0x00007f39e594583e in g_hash_table_destroy (hash_table=0x5620b60f59e0) at ../../../glib/ghash.c:1486
#25 0x00007f39e5943bb2 in g_hash_table_remove_all_nodes (hash_table=hash_table@entry=0x5620b60f5980, notify=notify@entry=1, destruction=destruction@entry=0) at ../../../glib/ghash.c:706
#26 0x00007f39e59457f8 in g_hash_table_remove_all_nodes (destruction=0, notify=1, hash_table=0x5620b60f5980) at ../../../glib/ghash.c:1883
#27 g_hash_table_remove_all (hash_table=0x5620b60f5980) at ../../../glib/ghash.c:1883
#28 0x00007f39e594583e in g_hash_table_destroy (hash_table=0x5620b60f5980) at ../../../glib/ghash.c:1486
#29 0x00007f39e5494145 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#30 0x00007f39e5a40ec1 in g_closure_invoke (closure=0x5620b3fcc530, return_value=0x0, n_param_values=1, param_values=0x7ffd1d762eb0, invocation_hint=0x7ffd1d762e30) at ../../../gobject/gclosure.c:810
#31 0x00007f39e5a54c47 in signal_emit_unlocked_R (node=node@entry=0x5620b3fcc070, detail=detail@entry=0, instance=instance@entry=0x5620b3f6a5d0, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7ffd1d762eb0) at ../../../gobject/gsignal.c:3858
#32 0x00007f39e5a5ec73 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd1d763060) at ../../../gobject/gsignal.c:3498
#33 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#34 0x00007f39e549c20c in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007f39e5a47898 in g_object_run_dispose (object=0x5620b3f6a5d0) at ../../../gobject/gobject.c:1226
#36 0x00007f39e53f33b0 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x00007f39e52868a6 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007f39e5a40ec1 in g_closure_invoke (closure=0x5620b3fcc530, return_value=0x0, n_param_values=1, param_values=0x7ffd1d763370, invocation_hint=0x7ffd1d7632f0) at ../../../gobject/gclosure.c:810
#39 0x00007f39e5a54c47 in signal_emit_unlocked_R (node=node@entry=0x5620b3fcc070, detail=detail@entry=0, instance=instance@entry=0x5620b3f5df20, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7ffd1d763370) at ../../../gobject/gsignal.c:3858
#40 0x00007f39e5a5ec73 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd1d763520) at ../../../gobject/gsignal.c:3498
#41 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#42 0x00007f39e549c20c in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007f39e5a47898 in g_object_run_dispose (object=0x5620b3f5df20) at ../../../gobject/gobject.c:1226
#44 0x00007f39e523b8f0 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007f39e52868a6 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#46 0x00007f39e5a40ec1 in g_closure_invoke (closure=0x5620b3fcc530, return_value=0x0, n_param_values=1, param_values=0x7ffd1d763840, invocation_hint=0x7ffd1d7637c0) at ../../../gobject/gclosure.c:810
#47 0x00007f39e5a54c47 in signal_emit_unlocked_R (node=node@entry=0x5620b3fcc070, detail=detail@entry=0, instance=instance@entry=0x5620b609ccd0, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7ffd1d763840) at ../../../gobject/gsignal.c:3858
#48 0x00007f39e5a5ec73 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd1d7639f0) at ../../../gobject/gsignal.c:3498
#49 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#50 0x00007f39e549c20c in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#51 0x00007f39e5a47898 in g_object_run_dispose (object=0x5620b609ccd0) at ../../../gobject/gobject.c:1226
#52 0x00007f39e52868a6 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#53 0x00007f39e5a40fad in g_closure_invoke (closure=0x5620b3fcc530, return_value=0x0, n_param_values=1, param_values=0x7ffd1d763ce0, invocation_hint=0x7ffd1d763c60) at ../../../gobject/gclosure.c:810
#54 0x00007f39e5a54c47 in signal_emit_unlocked_R (node=node@entry=0x5620b3fcc070, detail=detail@entry=0, instance=instance@entry=0x5620b4fcfb10, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7ffd1d763ce0) at ../../../gobject/gsignal.c:3858
#55 0x00007f39e5a5ec73 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd1d763e90) at ../../../gobject/gsignal.c:3498
#56 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#57 0x00007f39e549c20c in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#58 0x00007f39e5a47898 in g_object_run_dispose (object=0x5620b4fcfb10) at ../../../gobject/gobject.c:1226
#59 0x00005620b1e33c4a in destroy_pages_after (page=0x5620b3f5d790, assistant=<optimized out>) at ../gnome-initial-setup/gnome-initial-setup.c:187
#60 rebuild_pages_cb (driver=0x5620b3f5d200) at ../gnome-initial-setup/gnome-initial-setup.c:209
#61 0x00007f39e5a411e6 in _g_closure_invoke_va (closure=0x5620b45ae9e0, return_value=0x0, instance=0x5620b3f5d200, args=0x7ffd1d764220, n_params=0, param_types=0x0) at ../../../gobject/gclosure.c:873
#62 0x00007f39e5a5f0f0 in g_signal_emit_valist (instance=0x5620b3f5d200, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd1d764220) at ../../../gobject/gsignal.c:3407
#63 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3554
#64 0x00005620b1e374a0 in rebuild_pages (driver=driver@entry=0x5620b3f5d200) at ../gnome-initial-setup/gis-driver.c:323
#65 0x00005620b1e374c7 in gis_driver_real_locale_changed (driver=0x5620b3f5d200) at ../gnome-initial-setup/gis-driver.c:342
#66 0x00007f39e5a411e6 in _g_closure_invoke_va (closure=0x5620b3f5a360, return_value=0x0, instance=0x5620b3f5d200, args=0x7ffd1d764540, n_params=0, param_types=0x0) at ../../../gobject/gclosure.c:873
#67 0x00007f39e5a5f0f0 in g_signal_emit_valist (instance=0x5620b3f5d200, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd1d764540) at ../../../gobject/gsignal.c:3407
#68 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3554
#69 0x00005620b1e381d2 in gis_driver_locale_changed (driver=0x5620b3f5d200) at ../gnome-initial-setup/gis-driver.c:377
#70 gis_driver_set_user_language (driver=driver@entry=0x5620b3f5d200, lang_id=<optimized out>, update_locale=update_locale@entry=1) at ../gnome-initial-setup/gis-driver.c:377
#71 0x00005620b1e20f6f in language_changed (chooser=<optimized out>, pspec=<optimized out>, page=0x5620b3f5d790) at ../gnome-initial-setup/pages/language/gis-language-page.c:203
#72 0x00007f39e5a40fad in g_closure_invoke (closure=0x5620b46a3780, return_value=0x0, n_param_values=2, param_values=0x7ffd1d764800, invocation_hint=0x7ffd1d764780) at ../../../gobject/gclosure.c:810
#73 0x00007f39e5a54935 in signal_emit_unlocked_R (node=node@entry=0x5620b3f55600, detail=detail@entry=3294, instance=instance@entry=0x5620b4bd51d0, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7ffd1d764800) at ../../../gobject/gsignal.c:3742
#74 0x00007f39e5a5ec73 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd1d7649d0) at ../../../gobject/gsignal.c:3498
#75 0x00007f39e5a5f6cf in g_signal_emit (instance=instance@entry=0x5620b4bd51d0, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#76 0x00007f39e5a45644 in g_object_dispatch_properties_changed (object=0x5620b4bd51d0, n_pspecs=<optimized out>, pspecs=<optimized out>) at ../../../gobject/gobject.c:1206
#77 0x00007f39e5a47bc1 in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x5620b4bd51d0) at ../../../gobject/gobject.c:1299
#78 g_object_notify_by_pspec (object=0x5620b4bd51d0, pspec=<optimized out>) at ../../../gobject/gobject.c:1409
#79 0x00007f39e5a4431f in g_cclosure_marshal_VOID__OBJECTv (closure=0x5620b4c42120, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, 
    param_types=0x5620b4bd4880) at ../../../gobject/gmarshal.c:1910
#80 0x00007f39e5a411e6 in _g_closure_invoke_va (closure=0x5620b4c42120, return_value=0x0, instance=0x5620b4c203a0, args=0x7ffd1d764d80, n_params=1, param_types=0x5620b4bd4880) at ../../../gobject/gclosure.c:873
#81 0x00007f39e5a5f0f0 in g_signal_emit_valist (instance=0x5620b4c203a0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd1d764d80) at ../../../gobject/gsignal.c:3407
#82 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#83 0x00007f39e534d9b0 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#84 0x00007f39e54ecd8d in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#85 0x00007f39e5a411e6 in _g_closure_invoke_va (closure=0x5620b4c22d40, return_value=0x0, instance=0x5620b45e8d30, args=0x7ffd1d7650f0, n_params=3, param_types=0x5620b45d40f0) at ../../../gobject/gclosure.c:873
#86 0x00007f39e5a5f0f0 in g_signal_emit_valist (instance=0x5620b45e8d30, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd1d7650f0) at ../../../gobject/gsignal.c:3407
#87 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#88 0x00007f39e530c494 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#89 0x00007f39e5a44022 in g_cclosure_marshal_VOID__BOXEDv (closure=0x5620b45d2d80, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, 
    param_types=0x5620b45d2db0) at ../../../gobject/gmarshal.c:1686
#90 0x00007f39e5a411e6 in _g_closure_invoke_va (closure=0x5620b45d2d80, return_value=0x0, instance=0x5620b45e8d30, args=0x7ffd1d7654a0, n_params=1, param_types=0x5620b45d2db0) at ../../../gobject/gclosure.c:873
#91 0x00007f39e5a5f0f0 in g_signal_emit_valist (instance=0x5620b45e8d30, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd1d7654a0) at ../../../gobject/gsignal.c:3407
#92 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#93 0x00007f39e53095b2 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#94 0x00007f39e530abbb in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#95 0x00007f39e530da66 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#96 0x00007f39e52d5e6c in gtk_event_controller_handle_event () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#97 0x00007f39e5490f0b in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#98 0x00007f39e54e6b14 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#99 0x00007f39e5a411e6 in _g_closure_invoke_va (closure=0x5620b3fd4dc0, return_value=0x7ffd1d765840, instance=0x5620b4c203a0, args=0x7ffd1d765910, n_params=1, param_types=0x5620b3fd4f30) at ../../../gobject/gclosure.c:873
#100 0x00007f39e5a5e473 in g_signal_emit_valist (instance=0x5620b4c203a0, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd1d765910) at ../../../gobject/gsignal.c:3407
#101 0x00007f39e5a5f6cf in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3554
#102 0x00007f39e54925a4 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#103 0x00007f39e53530a6 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#104 0x00007f39e53551cb in gtk_main_do_event () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#105 0x00007f39e5051715 in ?? () from /lib/x86_64-linux-gnu/libgdk-3.so.0
#106 0x00007f39e50ae822 in ?? () from /lib/x86_64-linux-gnu/libgdk-3.so.0
#107 0x00007f39e59576cd in g_main_dispatch (context=0x5620b3f74020) at ../../../glib/gmain.c:3309
#108 g_main_context_dispatch (context=context@entry=0x5620b3f74020) at ../../../glib/gmain.c:3974
#109 0x00007f39e5957968 in g_main_context_iterate (context=context@entry=0x5620b3f74020, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047
#110 0x00007f39e59579fc in g_main_context_iteration (context=context@entry=0x5620b3f74020, may_block=may_block@entry=1) at ../../../glib/gmain.c:4108
#111 0x00007f39e5b6641d in g_application_run (application=0x5620b3f5d200, argc=<optimized out>, argv=0x7ffd1d765e28) at ../../../gio/gapplication.c:2559
#112 0x00005620b1e022ff in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-initial-setup/gnome-initial-setup.c:361
(gdb) 
(gdb) frame 6
#6  0x00007f397f03407f in gst_pipewire_device_provider_stop (provider=<optimized out>) at ../src/gst/gstpipewiredeviceprovider.c:664
664	../src/gst/gstpipewiredeviceprovider.c: No such file or directory.
(gdb) print self->registry
$1 = (struct pw_registry *) 0x5620b61f2920
(gdb) print *$1
$2 = <incomplete type>
(gdb) print *self
$3 = {parent = {parent = {object = {g_type_instance = {g_class = 0x5620b612db00}, ref_count = 3, qdata = 0x0}, lock = {p = 0x0, i = {0, 0}}, name = 0x5620b6149ca0 "pipewiredeviceprovider0", parent = 0x0, flags = 0, 
      control_bindings = 0x0, control_rate = 100000000, last_sync = 18446744073709551615, _gst_reserved = 0x0}, devices = 0x5620b41eb8c0, priv = 0x5620b3f7ac50, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, 
  client_name = 0x5620b612df10 "pool-gnome-init", loop = 0x5620b610ddc0, context = 0x5620b610e870, core = 0x5620b61df860, pending = {next = 0x5620b3f7ad18, prev = 0x5620b3f7ad18}, seq = 1073741837, registry = 0x5620b61f2920, error = 0, 
  end = 1, list_only = 0, devices = 0x0}
(gdb) print self->core
$4 = (struct pw_core *) 0x5620b61df860
(gdb) print *$4
$5 = {proxy = {impl = {type = 0x7f397e67f922 "PipeWire:Interface:Core", version = 3, cb = {funcs = 0x7f397e68a9c0, data = 0x5620b61df860}}, core = 0x5620b61df860, id = 0, type = 0x7f397e67f922 "PipeWire:Interface:Core", version = 3, 
    bound_id = 4294967295, refcount = 1, zombie = 0, removed = 0, destroyed = 0, in_map = 1, listener_list = {list = {next = 0x5620b61df938, prev = 0x5620b61df938}}, object_listener_list = {list = {next = 0x5620b61df908, 
        prev = 0x5620b610eb88}}, marshal = 0x7f397e68a820, user_data = 0x0}, context = 0x5620b610e870, link = {next = 0x5620b610e8f8, prev = 0x5620b610e8f8}, properties = 0x5620b61df9f0, pool = 0x5620b61e0200, core = 0x5620b61df860, 
  core_listener = {link = {next = 0x5620b610eb88, prev = 0x5620b61df8b8}, cb = {funcs = 0x7f397eff1f20 <core_events>, data = 0x5620b61df860}, removed = 0x0, priv = 0x0}, proxy_core_listener = {link = {next = 0x5620b61df8a8, 
      prev = 0x5620b61df8a8}, cb = {funcs = 0x7f397eff1ee0 <proxy_core_events>, data = 0x5620b61df860}, removed = 0x0, priv = 0x0}, objects = {items = {data = 0x5620b61e0490, size = 56, alloc = 512, extend = 32}, free_list = 5}, 
  client = 0x5620b61f2890, stream_list = {next = 0x5620b61df998, prev = 0x5620b61df998}, filter_list = {next = 0x5620b61df9a8, prev = 0x5620b61df9a8}, conn = 0x5620b61e06a0, recv_seq = 56, send_seq = 1073741838, removed = 0, 
  destroyed = 0, user_data = 0x0}
(gdb) frame 5
#5  0x00007f397efc2500 in pw_proxy_destroy (proxy=0x5620b61f2920) at ../src/pipewire/proxy.c:259
259	../src/pipewire/proxy.c: No such file or directory.
(gdb) print *proxy
$6 = {impl = {type = 0x5620b61f97f0 "\017", version = 3781528736, cb = {funcs = 0x7f397e68a800, data = 0x5620b61f2920}}, core = 0x5620b61df860, id = 2, type = 0x7f397e67f855 "PipeWire:Interface:Registry", version = 3, 
  bound_id = 4294967295, refcount = 0, zombie = 1, removed = 1, destroyed = 1, in_map = 0, listener_list = {list = {next = 0x5620b61f2968, prev = 0x5620b61f2968}}, object_listener_list = {list = {next = 0x5620b610ebc0, 
      prev = 0x5620b610ebc0}}, marshal = 0x7f397e68a740, user_data = 0x0}
(gdb) print proxy->core
$7 = (struct pw_core *) 0x5620b61df860
(gdb) print *$7
$8 = {proxy = {impl = {type = 0x7f397e67f922 "PipeWire:Interface:Core", version = 3, cb = {funcs = 0x7f397e68a9c0, data = 0x5620b61df860}}, core = 0x5620b61df860, id = 0, type = 0x7f397e67f922 "PipeWire:Interface:Core", version = 3, 
    bound_id = 4294967295, refcount = 1, zombie = 0, removed = 0, destroyed = 0, in_map = 1, listener_list = {list = {next = 0x5620b61df938, prev = 0x5620b61df938}}, object_listener_list = {list = {next = 0x5620b61df908, 
        prev = 0x5620b610eb88}}, marshal = 0x7f397e68a820, user_data = 0x0}, context = 0x5620b610e870, link = {next = 0x5620b610e8f8, prev = 0x5620b610e8f8}, properties = 0x5620b61df9f0, pool = 0x5620b61e0200, core = 0x5620b61df860, 
  core_listener = {link = {next = 0x5620b610eb88, prev = 0x5620b61df8b8}, cb = {funcs = 0x7f397eff1f20 <core_events>, data = 0x5620b61df860}, removed = 0x0, priv = 0x0}, proxy_core_listener = {link = {next = 0x5620b61df8a8, 
      prev = 0x5620b61df8a8}, cb = {funcs = 0x7f397eff1ee0 <proxy_core_events>, data = 0x5620b61df860}, removed = 0x0, priv = 0x0}, objects = {items = {data = 0x5620b61e0490, size = 56, alloc = 512, extend = 32}, free_list = 5}, 
  client = 0x5620b61f2890, stream_list = {next = 0x5620b61df998, prev = 0x5620b61df998}, filter_list = {next = 0x5620b61df9a8, prev = 0x5620b61df9a8}, conn = 0x5620b61e06a0, recv_seq = 56, send_seq = 1073741838, removed = 0, 
  destroyed = 0, user_data = 0x0}
(gdb) print proxy->core->removed
$9 = 0
(gdb) print proxy->core->objects
$10 = {items = {data = 0x5620b61e0490, size = 56, alloc = 512, extend = 32}, free_list = 5}

I can’t easily upgrade to 0.3.11, but none of the commits 0.3.10..0.3.11 look like they’d fix it, to the best of my understanding (which is minimal). I can reproduce this reliably, but setting up the VM to get debug data out is quite time consuming, so please ask all your questions at once if you can!

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None