Crash on Wayland session when unmounting/ejecting busy device
Version information
4.20.4
Steps to reproduce
- Connect USB stick.
- Open a terminal there or open a file.
- Unmount/Eject.
Current behavior
Crash.
Expected outcome
Thunar shows that the device is busy by listed application(s).
Backtrace
#0 0x0000000000000000 n/a (n/a + 0x0)
#1 0x00007fcb0e1a0ae9 gdk_x11_atom_to_xatom_for_display (libgdk-3.so.0 + 0x8cae9)
#2 0x00007fcb0e594f32 n/a (libgtk-3.so.0 + 0x394f32)
#3 0x00007fcb0de12c3d n/a (libgio-2.0.so.0 + 0x73c3d)
#4 0x00007fcb0dd72637 n/a (libgobject-2.0.so.0 + 0x32637)
#5 0x00007fcb0dd72a20 g_signal_emit_by_name (libgobject-2.0.so.0 + 0x32a20)
#6 0x00007fcb08364e15 n/a (libgioremote-volume-monitor.so + 0xce15)
#7 0x00007fcb0835ca80 n/a (libgioremote-volume-monitor.so + 0x4a80)
#8 0x00007fcb0dd5183a g_closure_invoke (libgobject-2.0.so.0 + 0x1183a)
#9 0x00007fcb0dd7046b n/a (libgobject-2.0.so.0 + 0x3046b)
#10 0x00007fcb0dd710f3 g_signal_emitv (libgobject-2.0.so.0 + 0x310f3)
#11 0x00007fcb0835e346 n/a (libgioremote-volume-monitor.so + 0x6346)
#12 0x00007fcb0dd5183a g_closure_invoke (libgobject-2.0.so.0 + 0x1183a)
#13 0x00007fcb0dd70973 n/a (libgobject-2.0.so.0 + 0x30973)
#14 0x00007fcb0dd724cf n/a (libgobject-2.0.so.0 + 0x324cf)
#15 0x00007fcb0dd72749 g_signal_emit_valist (libgobject-2.0.so.0 + 0x32749)
#16 0x00007fcb0dd72804 g_signal_emit (libgobject-2.0.so.0 + 0x32804)
#17 0x00007fcb0debe01a n/a (libgio-2.0.so.0 + 0x11f01a)
#18 0x00007fcb0dea4969 n/a (libgio-2.0.so.0 + 0x105969)
#19 0x00007fcb0dc48880 n/a (libglib-2.0.so.0 + 0x5e880)
#20 0x00007fcb0dc49cd7 n/a (libglib-2.0.so.0 + 0x5fcd7)
#21 0x00007fcb0dc49ee5 g_main_context_iteration (libglib-2.0.so.0 + 0x5fee5)
#22 0x00007fcb0de815a6 g_application_run (libgio-2.0.so.0 + 0xe25a6)
#23 0x00005601aed6e12d n/a (/usr/bin/thunar + 0x1d12d)
#24 0x00007fcb0d827675 n/a (libc.so.6 + 0x27675)
#25 0x00007fcb0d827729 __libc_start_main (libc.so.6 + 0x27729)
#26 0x00005601aed6e1d5 n/a (/usr/bin/thunar + 0x1d1d5)
Looks like GTK uses the X11 code path. Compiling Thunar in debug doesn't show anything more (it just points to g_application_run (G_APPLICATION (application), argc, argv);
and the rest is in other libraries.