After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 769036 - gdm's gnome-shell crashes on systemctl stop gdm
gdm's gnome-shell crashes on systemctl stop gdm
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
3.21.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2016-07-21 14:14 UTC by Hussam Al-Tayeb
Modified: 2016-07-23 13:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
coredump from user 120 (gdm) (816.12 KB, application/x-xz)
2016-07-21 14:14 UTC, Hussam Al-Tayeb
  Details
Gracefully exit with failure if backend creation failed (3.73 KB, patch)
2016-07-23 02:28 UTC, Jonas Ådahl
committed Details | Review

Description Hussam Al-Tayeb 2016-07-21 14:14:18 UTC
Created attachment 331878 [details]
coredump from user 120 (gdm)

Starting 3.21.4, gdm's gnome-shell instance crashes on systemctl stop gdm.

I'm back on gnome-3-20 branch for now so cannot get a good backtrace but I have attached the coredump.
Comment 1 Jonas Ådahl 2016-07-22 03:11:04 UTC
(In reply to Hussam Al-Tayeb from comment #0)
> Created attachment 331878 [details]
> coredump from user 120 (gdm)
> 
> Starting 3.21.4, gdm's gnome-shell instance crashes on systemctl stop gdm.
> 
> I'm back on gnome-3-20 branch for now so cannot get a good backtrace but I
> have attached the coredump.

Would need the debug symbols for gnome-shell, libmutter.so, libmutter-clutter.so and libmutter-cogl.so for that build to analyze that core dump.
Comment 2 Hussam Al-Tayeb 2016-07-22 12:19:31 UTC
Hello. I will get do a trunk build tonight with debug symbols the moment I finish working.
Thank you for investigating.
Comment 3 Hussam Al-Tayeb 2016-07-22 14:34:19 UTC
 coredumpctl gdb 6846
           PID: 6846 (gnome-shell)
           UID: 120 (gdm)
           GID: 120 (gdm)
        Signal: 11 (SEGV)
     Timestamp: Fri 2016-07-22 17:30:30 EEST (1min 45s ago)
  Command Line: /usr/bin/gnome-shell
    Executable: /usr/bin/gnome-shell
 Control Group: /user.slice/user-120.slice/session-c16.scope
          Unit: session-c16.scope
         Slice: user-120.slice
       Session: c16
     Owner UID: 120 (gdm)
       Boot ID: 140e278f6328472fa047ad0b82af5eec
    Machine ID: efb490e643e2436d9d1138df1745a008
      Hostname: hades
      Coredump: /var/lib/systemd/coredump/core.gnome-shell.120.140e278f6328472fa047ad0b82af5eec.6846.1469197830000000000000.lz4
       Message: Process 6846 (gnome-shell) of user 120 dumped core.
                
                Stack trace of thread 6846:
                #0  0x00007f12e69df8a0 meta_renderer_create_cogl_renderer (libmutter.so.0)
                #1  0x00007f12e5db8cd9 clutter_backend_do_real_create_context (libmutter-clutter-1.0.so)
                #2  0x00007f12e5dd1733 _clutter_feature_init (libmutter-clutter-1.0.so)
                #3  0x00007f12e5de2d59 clutter_init_real (libmutter-clutter-1.0.so)
                #4  0x00007f12e5de2ef0 post_parse_hook (libmutter-clutter-1.0.so)
                #5  0x00007f12e5296d37 g_option_context_parse (libglib-2.0.so.0)
                #6  0x00007f12e5de3c88 clutter_parse_args (libmutter-clutter-1.0.so)
                #7  0x00007f12e69d47b6 meta_clutter_init (libmutter.so.0)
                #8  0x00007f12e6a08e26 meta_init (libmutter.so.0)
                #9  0x0000000000401fa2 main (gnome-shell)
                #10 0x00007f12e4ca5741 __libc_start_main (libc.so.6)
                #11 0x0000000000402389 _start (gnome-shell)
                
                Stack trace of thread 6848:
                #0  0x00007f12e4d6330d poll (libc.so.6)
                #1  0x00007f12e528c196 n/a (libglib-2.0.so.0)
                #2  0x00007f12e528c2ac g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007f12e528c2f1 n/a (libglib-2.0.so.0)
                #4  0x00007f12e52b2715 n/a (libglib-2.0.so.0)
                #5  0x00007f12e502c434 start_thread (libpthread.so.0)
                #6  0x00007f12e4d6c30d __clone (libc.so.6)
                
                Stack trace of thread 6849:
                #0  0x00007f12e4d6330d poll (libc.so.6)
                #1  0x00007f12e528c196 n/a (libglib-2.0.so.0)
                #2  0x00007f12e528c522 g_main_loop_run (libglib-2.0.so.0)
                #3  0x00007f12e5877886 n/a (libgio-2.0.so.0)
                #4  0x00007f12e52b2715 n/a (libglib-2.0.so.0)
                #5  0x00007f12e502c434 start_thread (libpthread.so.0)
                #6  0x00007f12e4d6c30d __clone (libc.so.6)
                
                Stack trace of thread 6850:
                #0  0x00007f12e4d67e99 syscall (libc.so.6)
                #1  0x00007f12e52d06da g_cond_wait_until (libglib-2.0.so.0)
                #2  0x00007f12e5260ac9 n/a (libglib-2.0.so.0)
                #3  0x00007f12e52b30e6 n/a (libglib-2.0.so.0)
                #4  0x00007f12e52b2715 n/a (libglib-2.0.so.0)
                #5  0x00007f12e502c434 start_thread (libpthread.so.0)
                #6  0x00007f12e4d6c30d __clone (libc.so.6)

GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/gnome-shell...done.
[New LWP 6846]
[New LWP 6848]
[New LWP 6849]
[New LWP 6850]

warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
  • #0 meta_renderer_create_cogl_renderer
    at backends/meta-renderer.c line 42
  • #0 meta_renderer_create_cogl_renderer
    at backends/meta-renderer.c line 42
  • #1 clutter_backend_do_real_create_context
    at clutter-backend.c line 240
  • #2 clutter_backend_real_create_context
    at clutter-backend.c line 382
  • #3 _clutter_feature_init
    at clutter-feature.c line 107
  • #4 clutter_init_real
  • #5 post_parse_hook
    at clutter-main.c line 1546
  • #6 g_option_context_parse
    from /usr/lib/libglib-2.0.so.0
  • #7 clutter_parse_args
    at clutter-main.c line 1765
  • #8 clutter_init
    at clutter-main.c line 1827
  • #9 meta_clutter_init
    at backends/meta-backend.c line 732
  • #10 meta_init
    at core/main.c line 470
  • #11 main
    at main.c line 437
(gdb) 

Note: I have autologin enabled. When I logout, gdm starts its gnome-shell instance.
Comment 4 Jonas Ådahl 2016-07-23 02:28:29 UTC
Created attachment 332019 [details] [review]
Gracefully exit with failure if backend creation failed

Instead of continuing eventually crashing with a segmentation fault due
to a missing renderer, make MetaBackend an GInitable, and gracefully
handle the failure to fully create the backend with an EXIT_FAILURE.
Comment 5 Florian Müllner 2016-07-23 08:26:08 UTC
Review of attachment 332019 [details] [review]:

LGTM
Comment 6 Jonas Ådahl 2016-07-23 13:33:39 UTC
Attachment 332019 [details] pushed as 820a6ab - Gracefully exit with failure if backend creation failed