Bug#838521: gnome-shell: [Wayland] Segfault during VT switching
Simon McVittie
smcv at debian.org
Wed Sep 21 20:37:26 UTC 2016
Package: gnome-shell
Version: 3.22.0-1
Severity: important
Steps to reproduce:
* Have the gdm login screen on tty1
* Have a Wayland session on tty2
* Have an X11 session on tty3
* Switch to the X11 session with Ctrl+Alt+F3
* Switch back to the Wayland session with Ctrl+Alt+F2
Expected result: VT-switching works without crashes
Actual result: the Wayland session segfaults:
Core was generated by `/usr/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007faf54e99db9 in wl_resource_post_event (resource=resource at entry=0xffffffffffffffe0,
opcode=opcode at entry=2) at ../src/wayland-server.c:158
158 ../src/wayland-server.c: No such file or directory.
[Current thread is 1 (Thread 0x7faf621d6a80 (LWP 7944))]
(gdb) bt
#0 0x00007faf54e99db9 in wl_resource_post_event (resource=resource at entry=0xffffffffffffffe0, opcode=opcode at entry=2) at ../src/wayland-server.c:158
#1 0x00007faf60a8a667 in meta_wayland_pointer_send_motion (surface_y=<optimized out>, surface_x=<optimized out>, time=55634554, resource_=0xffffffffffffffe0)
at /usr/include/wayland-server-protocol.h:2921
#2 0x00007faf60a8a667 in meta_wayland_pointer_send_motion (pointer=0x291a9b0 [MetaWaylandPointer], event=0x49d6030) at wayland/meta-wayland-pointer.c:339
#3 0x00007faf60a8ae5a in meta_wayland_pointer_handle_event (event=0x49d6030, pointer=0x291a9b0 [MetaWaylandPointer]) at wayland/meta-wayland-pointer.c:557
#4 0x00007faf60a8ae5a in meta_wayland_pointer_handle_event (event=0x49d6030, pointer=0x291a9b0 [MetaWaylandPointer]) at wayland/meta-wayland-pointer.c:564
#5 0x00007faf60a8ae5a in meta_wayland_pointer_handle_event (pointer=0x291a9b0 [MetaWaylandPointer], event=event at entry=0x49d6030) at wayland/meta-wayland-pointer.c:710
#6 0x00007faf60a8e6aa in meta_wayland_seat_handle_event (seat=<optimized out>, event=event at entry=0x49d6030) at wayland/meta-wayland-seat.c:360
#7 0x00007faf60a81dca in meta_wayland_compositor_handle_event (compositor=compositor at entry=0x7faf60d04320 <_meta_wayland_compositor>, event=event at entry=0x49d6030) at wayland/meta-wayland.c:208
#8 0x00007faf60a4d20f in event_callback (event=0x49d6030, display=0x2af0930 [MetaDisplay])
at core/events.c:386
#9 0x00007faf60a4d20f in event_callback (event=0x49d6030, data=0x2af0930) at core/events.c:401
#10 0x00007faf5fde42dd in _clutter_event_process_filters (event=event at entry=0x49d6030)
at clutter-event.c:1913
#11 0x00007faf5fdf6bb3 in _clutter_process_event (device=0x2984070 [ClutterInputDeviceEvdev], event=0x49d6030) at clutter-main.c:2011
#12 0x00007faf5fdf6bb3 in _clutter_process_event (context=0x2871750, event=0x49d6030, stage=<optimized out>) at clutter-main.c:2372
#13 0x00007faf5fdf6bb3 in _clutter_process_event (event=event at entry=0x49d6030)
at clutter-main.c:2548
#14 0x00007faf5fe0d039 in _clutter_stage_process_queued_events (stage=0x2981040 [MetaStage])
at clutter-stage.c:1026
#15 0x00007faf5fdf8d39 in clutter_clock_dispatch (master_clock=0x299f300 [ClutterMasterClockDefault], stages=<optimized out>) at clutter-master-clock-default.c:364
#16 0x00007faf5fdf8d39 in clutter_clock_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at clutter-master-clock-default.c:561
#17 0x00007faf5f2a57d7 in g_main_context_dispatch (context=0x25d2b20) at ././glib/gmain.c:3201
#18 0x00007faf5f2a57d7 in g_main_context_dispatch (context=context at entry=0x25d2b20)
at ././glib/gmain.c:3854
#19 0x00007faf5f2a5a40 in g_main_context_iterate (context=0x25d2b20, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ././glib/gmain.c:3927
#20 0x00007faf5f2a5d62 in g_main_loop_run (loop=0x29a8a60) at ././glib/gmain.c:4123
#21 0x00007faf60a540dc in meta_run () at core/main.c:572
#22 0x00000000004021a7 in main ()
This appears to be an invalid @resource found in @pointer_resources here:
wl_resource_for_each (resource, &pointer->focus_client->pointer_resources)
{
wl_pointer_send_motion (resource, time, // <--- here
wl_fixed_from_double (sx),
wl_fixed_from_double (sy));
}
I don't really understand the Wayland client library, but this looks
as though it ought to be iterating through an empty list and so should
not call wl_resource_post_event() at all?
(gdb) frame 2
#2 meta_wayland_pointer_send_motion (pointer=0x291a9b0 [MetaWaylandPointer], event=0x49d6030)
at wayland/meta-wayland-pointer.c:339
339 in wayland/meta-wayland-pointer.c
(gdb) p *pointer
$2 = {parent = {parent_instance = {g_type_instance = {g_class = 0x29a79d0}, ref_count = 1,
qdata = 0x0}}, focus_client = 0x4b986c0, pointer_clients = 0x6120e40,
focus_surface = 0x47ea5e0 [MetaWaylandSurface], focus_surface_listener = {link = {
prev = 0x25ea190, next = 0x5537a00},
notify = 0x7faf60a8b700 <pointer_handle_focus_surface_destroy>}, focus_serial = 1784,
click_serial = 0, cursor_surface = 0x0, cursor_surface_destroy_id = 64859, grab = 0x291aa18,
default_grab = {interface = 0x7faf60cf6ea0 <default_pointer_grab_interface>,
pointer = 0x291a9b0 [MetaWaylandPointer]}, grab_button = 2, grab_serial = 1809,
grab_time = 55550580, grab_x = 237.728607, grab_y = 744.693298,
device = 0x2984070 [ClutterInputDeviceEvdev], current = 0x47ea5e0 [MetaWaylandSurface],
button_count = 0}
(gdb) p *pointer->focus_client
$3 = {pointer_resources = {prev = 0x0, next = 0x0}, swipe_gesture_resources = {
prev = 0xffffffff, next = 0x0}, pinch_gesture_resources = {prev = 0xffffffff, next = 0x2},
relative_pointer_resources = {prev = 0x0, next = 0x0}}
(This is probably really a libmutter0i bug, but I'm initially reporting it
against gnome-shell to get more complete package details.)
Regards,
S
-- System Information:
Debian Release: stretch/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.7.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages gnome-shell depends on:
ii dconf-gsettings-backend [gsettings-backend] 0.26.0-2
ii evolution-data-server 3.20.5-1
ii gir1.2-accountsservice-1.0 0.6.40-3
ii gir1.2-atspi-2.0 2.20.2-2
ii gir1.2-caribou-1.0 0.4.21-1
ii gir1.2-freedesktop 1.49.2-1
ii gir1.2-gcr-3 3.20.0-2
ii gir1.2-gdesktopenums-3.0 3.22.0-1
ii gir1.2-gdm-1.0 3.22.0-1
ii gir1.2-glib-2.0 1.49.2-1
ii gir1.2-gnomebluetooth-1.0 3.20.0-1
ii gir1.2-gnomedesktop-3.0 3.22.0-1
ii gir1.2-gtk-3.0 3.22.0-1
ii gir1.2-gweather-3.0 3.20.3-1
ii gir1.2-ibus-1.0 1.5.11-1
ii gir1.2-mutter-3.0 3.22.0-1
ii gir1.2-networkmanager-1.0 1.4.0-3
ii gir1.2-nmgtk-1.0 1.4.0-2
ii gir1.2-pango-1.0 1.40.2-1
ii gir1.2-polkit-1.0 0.105-16
ii gir1.2-soup-2.4 2.56.0-1
ii gir1.2-telepathyglib-0.12 0.24.1-1.1
ii gir1.2-telepathylogger-0.2 0.8.2-1
ii gir1.2-upowerglib-1.0 0.99.4-4
ii gjs 1.46.0-1
ii gnome-backgrounds 3.22.0-2
ii gnome-settings-daemon 3.22.0-1
ii gnome-shell-common 3.22.0-1
ii gsettings-desktop-schemas 3.22.0-1
ii libatk-bridge2.0-0 2.20.1-4
ii libatk1.0-0 2.22.0-1
ii libc6 2.24-3
ii libcairo2 1.14.6-1+b1
ii libcanberra-gtk3-0 0.30-3
ii libcanberra0 0.30-3
ii libcroco3 0.6.11-2
ii libdbus-glib-1-2 0.108-1
ii libecal-1.2-19 3.20.5-1
ii libedataserver-1.2-21 3.20.5-1
ii libgcr-base-3-1 3.20.0-2
ii libgdk-pixbuf2.0-0 2.36.0-1
ii libgirepository-1.0-1 1.49.2-1
ii libgjs0e [libgjs0-libmozjs-24-0] 1.46.0-1
ii libglib2.0-0 2.50.0-1
ii libglib2.0-bin 2.50.0-1
ii libgstreamer1.0-0 1.8.3-1
ii libgtk-3-0 3.22.0-1
ii libical2 2.0.0-0.5+b1
ii libicu57 57.1-4
ii libjson-glib-1.0-0 1.2.2-1
ii libmozjs-24-0 24.2.0-3.1
ii libmutter0i 3.22.0-1
ii libnm-glib4 1.4.0-3
ii libnm-util2 1.4.0-3
ii libpango-1.0-0 1.40.2-1
ii libpangocairo-1.0-0 1.40.2-1
ii libpolkit-agent-1-0 0.105-16
ii libpolkit-gobject-1-0 0.105-16
ii libpulse-mainloop-glib0 9.0-3
ii libpulse0 9.0-3
ii libsecret-1-0 0.18.5-2
ii libstartup-notification0 0.12-4
ii libsystemd0 231-7
ii libtelepathy-glib0 0.24.1-1.1
ii libwayland-client0 1.11.0-2
ii libx11-6 2:1.6.3-1
ii libxfixes3 1:5.0.2-1
ii mutter 3.22.0-1
ii python3 3.5.1-4
ii telepathy-mission-control-5 1:5.16.3-2
Versions of packages gnome-shell recommends:
ii gdm3 3.22.0-1
ii gkbd-capplet 3.22.0.1-1
ii gnome-contacts 3.20.0-2
ii gnome-control-center 1:3.22.0-1
ii gnome-themes-standard-data 3.20.2-3
ii gnome-user-guide 3.22.0-1
ii iio-sensor-proxy 1.3-1
ii unzip 6.0-20
gnome-shell suggests no packages.
-- no debconf information
More information about the pkg-gnome-maintainers
mailing list