Gnome Shell crashes when resuming from suspend
Affected version
- gnome-shell 40.0+39+gd9e953e93-1
- mutter 40.0+55+gf4f82bcb-1
- wayland session
- i915 w/ atomic KMS
- night light enabled
Bug summary
When going out of suspend laptop greeted me with the GDM login prompt because my active session has crashed. This is not the first crash with similar symptoms, that's why I had debug built mutter around this time.
To be clear I suspect this is night-light-related, because it seems the only thing that may push racy gamma KMS updates under these circumstances. Though I anticipate I may be wrong here.
Steps to reproduce
- Enable Night Light
- Suspend laptop just before midnight
- Resume laptop next day at midday
What happened
Crash was unexpected.
What did you expect to happen
Laptop resumes cleanly.
Relevant logs, screenshots, screencasts etc.
Relevant stacktrace:
Core was generated by `/usr/bin/gnome-shell'.
Program terminated with signal SIGABRT, Aborted.
#0 0x00007fe6bde33ef5 in raise () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7fe6b810acc0 (LWP 169901))]
(gdb) bt
#0 0x00007fe6bde33ef5 in raise () at /usr/lib/libc.so.6
#1 0x00005591615a1a39 in ()
#2 0x00007fe6bde33f80 in <signal handler called> () at /usr/lib/libc.so.6
#3 0x00007fe6bde33ef5 in raise () at /usr/lib/libc.so.6
#4 0x00007fe6bde1d862 in abort () at /usr/lib/libc.so.6
#5 0x00007fe6becd9084 in () at /usr/lib/libglib-2.0.so.0
#6 0x00007fe6bed3485d in g_assertion_message_expr () at /usr/lib/libglib-2.0.so.0
#7 0x00007fe6be14033e in meta_kms_update_set_power_save (update=0x5591642cb1f0) at ../mutter/src/backends/native/meta-kms-update.c:340
#8 meta_monitor_manager_native_set_power_save_mode (manager=<optimized out>, mode=<optimized out>) at ../mutter/src/backends/native/meta-monitor-manager-native.c:177
#9 0x00007fe6be033301 in power_save_mode_changed (manager=0x559162bf8350, pspec=<optimized out>, user_data=<optimized out>)
at ../mutter/src/backends/meta-monitor-manager.c:390
#10 0x00007fe6bee03ddf in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007fe6bee2cfbd in () at /usr/lib/libgobject-2.0.so.0
#12 0x00007fe6bee20cad in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007fe6bee21210 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007fe6bee0b3e6 in () at /usr/lib/libgobject-2.0.so.0
#15 0x00007fe6bee043f0 in () at /usr/lib/libgobject-2.0.so.0
#16 0x00007fe6bee13f76 in g_object_setv () at /usr/lib/libgobject-2.0.so.0
#17 0x00007fe6bee1408c in g_object_set_property () at /usr/lib/libgobject-2.0.so.0
#18 0x00007fe6be0100ac in _meta_dbus_display_config_skeleton_handle_set_property
(connection=<optimized out>, sender=<optimized out>, object_path=<optimized out>, interface_name=<optimized out>, property_name=<optimized out>, variant=<optimized out>, error=0x7fff57aa07f0, user_data=0x7fe6a8003740) at src/meta-dbus-display-config.c:2909
#19 0x00007fe6bef41ab1 in () at /usr/lib/libgio-2.0.so.0
#20 0x00007fe6bed0ff30 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#21 0x00007fe6bed63b59 in () at /usr/lib/libglib-2.0.so.0
#22 0x00007fe6bed0f593 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#23 0x00007fe6be09d2b3 in meta_run_main_loop () at ../mutter/src/core/main.c:928
#24 meta_run () at ../mutter/src/core/main.c:943
#25 0x00005591615a142a in ()
#26 0x00007fe6bde1eb25 in __libc_start_main () at /usr/lib/libc.so.6
#27 0x00005591615a165e in ()
(gdb) frame 7
#7 0x00007fe6be14033e in meta_kms_update_set_power_save (update=0x5591642cb1f0) at ../mutter/src/backends/native/meta-kms-update.c:340
340 g_assert (!update->crtc_gammas);
(gdb) print *update
$1 = {device = 0x559162bf5f10, is_locked = 0, sequence_number = 120408, power_save = 0, mode_sets = 0x0, plane_assignments = 0x0, connector_updates = 0x0,
crtc_gammas = 0x559167e11400 = {0x559165550a90, 0x5591652f08f0, 0x55916355e9e0}, custom_page_flip = 0x0, page_flip_listeners = 0x0, result_listeners = 0x0}
Journal entries just before the crash:
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Failed to post KMS update: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Page flip discarded: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Failed to post KMS update: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Page flip discarded: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Failed to post KMS update: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Page flip discarded: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Failed to post KMS update: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Page flip discarded: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Failed to post KMS update: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Page flip discarded: drmModeAtomicCommit: Invalid argument
Apr 21 13:13:03 kenfawks gnome-shell[169901]: **
Apr 21 13:13:03 kenfawks gnome-shell[169901]: mutter:ERROR:../mutter/src/backends/native/meta-kms-update.c:340:meta_kms_update_set_power_save: assertion failed: (!update->crtc_gammas)
Apr 21 13:13:03 kenfawks gnome-shell[169901]: Bail out! mutter:ERROR:../mutter/src/backends/native/meta-kms-update.c:340:meta_kms_update_set_power_save: assertion failed: (!update->crtc_gammas)
May be relevant:
Apr 21 13:13:18 kenfawks gnome-shell[179367]: Adding device '/dev/dri/card0' (i915) using atomic mode setting.
Apr 21 13:13:18 kenfawks gnome-shell[179367]: Enabling experimental feature 'rt-scheduler'
Apr 21 13:13:18 kenfawks gnome-shell[179367]: Boot VGA GPU /dev/dri/card0 selected as primary
Apr 21 13:13:19 kenfawks gnome-shell[179367]: Using public X11 display :0, (using :1 for managed services)
Apr 21 13:13:19 kenfawks gnome-shell[179367]: Using Wayland display name 'wayland-0'