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