Attaching an image to an email using Evolution causes gnome-shell 3.30.2 to core dump
Overview
On Fedora 29, gnome-shell 3.30.2 core dumps when attempting to attach an image to an Evolution email while running on Wayland. When the crash happens, the user is brought back to GDM.
Steps to reproduce
- Fresh install Fedora 29 and apply all updates
- Login and make sure Wayland is used
- Compose a new email message using Evolution and use HTML format
- Attach an image by clicking Insert > Image
- Choose any image by double-clicking on it or by selecting it and click Open
Expected results
The image gets attached to the email message in Evolution and gnome-shell does not crash/core dump.
Actual results
gnome-shell core dumps, the user session is aborted and the email message is lost.
Additional information
I am able to reproduce the issue at will on Fedora 29 using my laptop (Dell XPS 13 9370) and also within a KVM virtual machine.
The same core dump does not occur when Xorg is used.
Backtrace is:
Thread 15 (Thread 0x7f12a07f5700 (LWP 1936)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 14 (Thread 0x7f1234cae700 (LWP 7868)):
#0 0x00007f12b9d7defd in syscall () at /lib64/libc.so.6
#1 0x00007f12bab1250e in g_cond_wait_until () at /lib64/libglib-2.0.so.0
#2 0x00007f12baa9bfa1 in () at /lib64/libglib-2.0.so.0
#3 0x00007f12baa9c595 in g_async_queue_timeout_pop () at /lib64/libglib-2.0.so.0
#4 0x00007f12baaf3d51 in () at /lib64/libglib-2.0.so.0
#5 0x00007f12baaf32aa in () at /lib64/libglib-2.0.so.0
#6 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#7 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 13 (Thread 0x7f127bbfd700 (LWP 1941)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 12 (Thread 0x7f127bdfe700 (LWP 1940)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 11 (Thread 0x7f12a09f6700 (LWP 1935)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 10 (Thread 0x7f127bfff700 (LWP 1939)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 9 (Thread 0x7f12a05f4700 (LWP 1937)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 8 (Thread 0x7f12b49ca700 (LWP 1842)):
#0 0x00007f12b9d78421 in poll () at /lib64/libc.so.6
#1 0x00007f12baaca3a6 in () at /lib64/libglib-2.0.so.0
#2 0x00007f12baaca4d0 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3 0x00007f12b49d5c7d in () at /usr/lib64/gio/modules/libdconfsettings.so
#4 0x00007f12baaf32aa in () at /lib64/libglib-2.0.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 7 (Thread 0x7f12a03f3700 (LWP 1938)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 6 (Thread 0x7f12a11f7700 (LWP 1934)):
#0 0x00007f12b9d78421 in poll () at /lib64/libc.so.6
#1 0x00007f12a143c675 in poll_func () at /lib64/libpulse.so.0
#2 0x00007f12a142dc58 in pa_mainloop_poll () at /lib64/libpulse.so.0
#3 0x00007f12a142e2a2 in pa_mainloop_iterate () at /lib64/libpulse.so.0
#4 0x00007f12a142e350 in pa_mainloop_run () at /lib64/libpulse.so.0
#5 0x00007f12a143c5bd in thread () at /lib64/libpulse.so.0
#6 0x00007f12a13d906c in internal_thread_func () at /usr/lib64/pulseaudio/libpulsecommon-12.2.so
#7 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#8 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 5 (Thread 0x7f127b9fc700 (LWP 1942)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12b7d381e3 in mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::MutexImpl&) () at /lib64/libmozjs-60.so.0
#2 0x00007f12b7d383f5 in mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) () at /lib64/libmozjs-60.so.0
#3 0x00007f12b7ab4c44 in () at /lib64/libmozjs-60.so.0
#4 0x00007f12b7aafe06 in () at /lib64/libmozjs-60.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 4 (Thread 0x7f12b5a0a700 (LWP 1840)):
#0 0x00007f12b9d78421 in poll () at /lib64/libc.so.6
#1 0x00007f12baaca3a6 in () at /lib64/libglib-2.0.so.0
#2 0x00007f12baaca762 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3 0x00007f12bacc810a in () at /lib64/libgio-2.0.so.0
#4 0x00007f12baaf32aa in () at /lib64/libglib-2.0.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 3 (Thread 0x7f12b6229700 (LWP 1839)):
#0 0x00007f12b9d78421 in poll () at /lib64/libc.so.6
#1 0x00007f12baaca3a6 in () at /lib64/libglib-2.0.so.0
#2 0x00007f12baaca4d0 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3 0x00007f12baaca521 in () at /lib64/libglib-2.0.so.0
#4 0x00007f12baaf32aa in () at /lib64/libglib-2.0.so.0
#5 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#6 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 2 (Thread 0x7f12a1cdf700 (LWP 1843)):
#0 0x00007f12b9e5a73c in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1 0x00007f12a29424e3 in () at /usr/lib64/dri/i965_dri.so
#2 0x00007f12a294223b in () at /usr/lib64/dri/i965_dri.so
#3 0x00007f12b9e5458e in start_thread () at /lib64/libpthread.so.0
#4 0x00007f12b9d836a3 in clone () at /lib64/libc.so.6
Thread 1 (Thread 0x7f12b622cd00 (LWP 1837)):
#0 0x00007f12badde467 in shell_app_dispose (object=0x555fc2778980) at ../src/shell-app.c:1485
app = 0x555fc2778980
__func__ = "shell_app_dispose"
#1 0x00007f12babb18c8 in g_object_unref () at /lib64/libgobject-2.0.so.0
#2 0x00007f12baab7505 in () at /lib64/libglib-2.0.so.0
#3 0x00007f12baab7e3e in () at /lib64/libglib-2.0.so.0
#4 0x00007f12baddf6cf in _shell_app_system_notify_app_state_changed (self=0x555fbfd82aa0, app=0x555fc2778980) at ../src/shell-app-system.c:375
state = <optimized out>
__func__ = "_shell_app_system_notify_app_state_changed"
#5 0x00007f12baddd008 in shell_app_state_transition (app=0x555fc2778980, state=<optimized out>) at ../src/shell-app.c:901
__func__ = "shell_app_state_transition"
#6 0x00007f12badde29f in _shell_app_remove_window (window=0x555fc20adb70, app=0x555fc2778980) at ../src/shell-app.c:1110
__func__ = "_shell_app_remove_window"
__func__ = "_shell_app_remove_window"
#7 0x00007f12badde29f in _shell_app_remove_window (app=0x555fc2778980, window=0x555fc20adb70) at ../src/shell-app.c:1094
__func__ = "_shell_app_remove_window"
#8 0x00007f12babac3dd in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#9 0x00007f12babbf983 in () at /lib64/libgobject-2.0.so.0
#10 0x00007f12babc8aaa in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#11 0x00007f12babc90a3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#12 0x00007f12b9f410ed in meta_window_unmanage () at /lib64/libmutter-3.so.0
#13 0x00007f12b9f81237 in meta_wayland_surface_destroy_window () at /lib64/libmutter-3.so.0
#14 0x00007f12b9f89f9d in () at /lib64/libmutter-3.so.0
#15 0x00007f12b7253856 in () at /lib64/libwayland-server.so.0
#16 0x00007f12b72538c2 in wl_resource_destroy () at /lib64/libwayland-server.so.0
#17 0x00007f12b9270ace in ffi_call_unix64 () at /lib64/libffi.so.6
#18 0x00007f12b927048f in ffi_call () at /lib64/libffi.so.6
#19 0x00007f12b725731d in () at /lib64/libwayland-server.so.0
#20 0x00007f12b7253c69 in () at /lib64/libwayland-server.so.0
#21 0x00007f12b72552e2 in wl_event_loop_dispatch () at /lib64/libwayland-server.so.0
#22 0x00007f12b9f6b1db in () at /lib64/libmutter-3.so.0
#23 0x00007f12baaca06d in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#24 0x00007f12baaca438 in () at /lib64/libglib-2.0.so.0
#25 0x00007f12baaca762 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#26 0x00007f12b9f31870 in meta_run () at /lib64/libmutter-3.so.0
#27 0x0000555fbea1cb96 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:501
ctx = <optimized out>
error = 0x0
ecode = <optimized out>