Assert hit in bluez5-dbus.c:interface_added
It appears the assert in bluez5-dbus.c:interface_added,
2827 else if (strcmp(interface_name, BLUEZ_DEVICE_INTERFACE) == 0) {
2828 struct spa_bt_device *d;
2829
2830 spa_assert(spa_bt_device_find(monitor, object_path) == NULL);
can be triggered under some circumstances. This happened for me just after bluetoothd crashed. (The object_path
in question corresponded to a device that had not been powered on today, so it was not in use.)
(gdb) thread apply all bt
Thread 2 (Thread 0x7f88784ff640 (LWP 41962)):
#0 0x00007f887c2a6e9e in epoll_wait () from /lib64/libc.so.6
#1 0x00007f8878f913ea in impl_pollfd_wait (object=<optimized out>, pfd=10, ev=0x7f88784fe9d0, n_ev=32, timeout=-1) at ../spa/plugins/support/system.c:154
#2 0x00007f8878f6f92e in loop_iterate (object=0x62d00000a428, timeout=-1) at ../spa/plugins/support/loop.c:291
#3 0x00007f887c5a7644 in do_loop (user_data=<optimized out>) at ../src/pipewire/data-loop.c:79
#4 0x00007f887c3793f9 in start_thread () from /lib64/libpthread.so.0
#5 0x00007f887c2a6b53 in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f887bb2ad80 (LWP 41950)):
#0 0x00007f887c1e29d5 in raise () from /lib64/libc.so.6
#1 0x00007f887c1cb8a4 in abort () from /lib64/libc.so.6
#2 0x00007f8877a1cc17 in interface_added (monitor=monitor@entry=0x6120000208e8, conn=<optimized out>, object_path=0x6240000e2e84 "/org/bluez/hci0/dev_88_BD_45_C4_81_35", interface_name=0x6240000e2ee4 "org.bluez.Device1", props_iter=props_iter@entry=0x7ffe33b2ed30) at ../spa/plugins/bluez5/bluez5-dbus.c:2830
#3 0x00007f8877a1cf5e in interfaces_added (monitor=monitor@entry=0x6120000208e8, arg_iter=arg_iter@entry=0x7ffe33b2eee0) at ../spa/plugins/bluez5/bluez5-dbus.c:2883
#4 0x00007f8877a1fb5d in get_managed_objects_reply (pending=<optimized out>, user_data=0x6120000208e8) at ../spa/plugins/bluez5/bluez5-dbus.c:2960
#5 0x00007f887c4a3bc6 in complete_pending_call_and_unlock.lto_priv () from /lib64/libdbus-1.so.3
#6 0x00007f887c4a8078 in dbus_connection_dispatch () from /lib64/libdbus-1.so.3
#7 0x00007f8878f51df1 in dispatch_cb (userdata=0x60600000ec00) at ../spa/plugins/support/dbus.c:67
#8 0x00007f8878f6bf85 in source_idle_func (source=<optimized out>) at ../spa/plugins/support/loop.c:389
#9 0x00007f8878f6fb04 in loop_iterate (object=0x62d000000428, timeout=<optimized out>) at ../spa/plugins/support/loop.c:308
#10 0x00007f887c5f5c8e in pw_main_loop_run (loop=0x604000000110) at ../src/pipewire/main-loop.c:158
#11 0x0000560ace4b0a5b in main (argc=<optimized out>, argv=<optimized out>) at ../src/examples/media-session/media-session.c:2486
(I can have a look at this later.)