easyeffects icon indicating copy to clipboard operation
easyeffects copied to clipboard

Reproducible application hang after `pipewire` restart

Open nagisa opened this issue 2 years ago • 1 comments

EasyEffects Version

6.2.3

What package are you using?

NixOS

Distribution

NixOS

Describe the bug

Easyeffects hangs (deadlocks?) in

Thread 1 (Thread 0x7f71ac36c340 (LWP 4174699) ".easyeffects-wr"):
#0  0x00007f71afb14cf5 in __futex_abstimed_wait_common64 () from /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libpthread.so.0
#1  0x00007f71afb0ec22 in pthread_cond_wait@@GLIBC_2.3.2 () from /nix/store/4s21k8k7p1mfik0b33r2spq5hq7774k1-glibc-2.33-108/lib/libpthread.so.0
#2  0x00007f71b1218698 in pw_thread_loop_wait () from /nix/store/wkpq57kzfkz1c3rfyv1kr3dhik91a5ww-pipewire-0.3.48-lib/lib/libpipewire-0.3.so.0
#3  0x000000000058109c in PipeManager::sync_wait_unlock() const ()
#4  0x00000000005f4b8e in TestSignals::~TestSignals() ()
#5  0x00000000005f4c39 in TestSignals::~TestSignals() ()
#6  0x0000000000592e78 in ui::pipe_manager_box::finalize(_GObject*) ()
#7  0x00007f71b0461762 in g_object_unref () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgobject-2.0.so.0
#8  0x00007f71b0383398 in stack_remove () from /nix/store/wa5jfadni87z8hpdwy5g80y4kih25q4k-libadwaita-1.0.2/lib/libadwaita-1.so.0
#9  0x00007f71b038381d in adw_view_stack_dispose () from /nix/store/wa5jfadni87z8hpdwy5g80y4kih25q4k-libadwaita-1.0.2/lib/libadwaita-1.so.0
#10 0x00007f71b04616e3 in g_object_unref () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgobject-2.0.so.0
#11 0x00007f71b1086e92 in g_hash_table_remove_all_nodes.part () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#12 0x00007f71b108898b in g_hash_table_remove_all () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#13 0x00007f71b10889ce in g_hash_table_destroy () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#14 0x00007f71b1086e92 in g_hash_table_remove_all_nodes.part () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#15 0x00007f71b108898b in g_hash_table_remove_all () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#16 0x00007f71b10889ce in g_hash_table_destroy () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#17 0x00007f71b107a34e in g_data_set_internal () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#18 0x00007f71b0b0b80f in gtk_widget_dispose () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#19 0x00007f71b08ff800 in gtk_application_window_dispose () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#20 0x00007f71b04616e3 in g_object_unref () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgobject-2.0.so.0
#21 0x00007f71b09f9b16 in gtk_main_do_event () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#22 0x00007f71b0b1d19c in surface_event () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#23 0x00007f71b0c03839 in _gdk_marshal_BOOLEAN__POINTERv () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#24 0x00007f71b0c2c37d in gdk_surface_event_marshallerv () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#25 0x00007f71b045c879 in _g_closure_invoke_va () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgobject-2.0.so.0
#26 0x00007f71b0474184 in g_signal_emit_valist () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgobject-2.0.so.0
#27 0x00007f71b0474fbf in g_signal_emit () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgobject-2.0.so.0
#28 0x00007f71b0c2faa6 in gdk_surface_handle_event () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#29 0x00007f71b0c4f60a in gdk_event_source_dispatch () from /nix/store/n9v7sviqj7fm0yhr6dig8n0lfpgpnww9-gtk4-4.6.1/lib/libgtk-4.so.1
#30 0x00007f71b109ab0b in g_main_context_dispatch () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#31 0x00007f71b109adb8 in g_main_context_iterate.constprop () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#32 0x00007f71b109ae6f in g_main_context_iteration () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libglib-2.0.so.0
#33 0x00007f71b0582485 in g_application_run () from /nix/store/sxzai36pf2sk7dxwpk9hn1gqn94k4646-glib-2.70.2/lib/libgio-2.0.so.0
#34 0x0000000000428f3f in main ()

after systemctl --user restart pipewire and trying to exit easyeffects afterwards.

Expected Behavior

EasyEffects should detect this sort of situation and terminate gracefully.

Debug Log

No response

Additional Information

No response

nagisa avatar Mar 26 '22 17:03 nagisa

It is a known problem that also happened to PulseEffects #708. Honestly I do not know if it will ever be solved. Audio players only have to reinitialize their stream when the server dies. But in our case there are many more things that have to be redone in this situation and handling all of them on demand it is not easy.

wwmm avatar Mar 27 '22 02:03 wwmm