Bug 1786496

Summary: gnome-shell killed by SIGABRT in g_assertion_message_expr.cold.16()
Product: Red Hat Enterprise Linux 8 Reporter: Yuki Okada <yuokada>
Component: mutterAssignee: Jonas Ådahl <jadahl>
Status: CLOSED ERRATA QA Contact: Tomas Pelka <tpelka>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.1CC: fmuellner, jadahl, tpelka, tpopela
Target Milestone: rc   
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: mutter-3.32.2-53.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 14:38:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Yuki Okada 2019-12-26 02:32:16 UTC
Description of problem:
gnome-shell crashes with SIGABRT.

reason:         g_assertion_message_expr.cold.16(): gnome-shell killed by SIGABRT
time:           Fri Dec 20 07:22:22 2019
cmdline:        /usr/bin/gnome-shell
package:        gnome-shell-3.32.2-9.el8
uid:            1000 (xxxxx)
count:          1
Directory:      /var/spool/abrt/ccpp-2019-12-20-07:22:22-12063

User Logs:
--Dec 20 07:22:22 localhost.localdomain org.gnome.Shell.desktop[12063]: **
Dec 20 07:22:22 localhost.localdomain org.gnome.Shell.desktop[12063]: mutter:ERROR:../src/backends/x11/meta-monitor-manager-xrandr.c:485:apply_crtc_assignments: assertion failed: (width > 0 && height > 0)
Dec 20 07:22:22 localhost.localdomain org.gnome.Shell.desktop[12063]: == Stack trace for context 0x55febcb64230 ==
Dec 20 07:22:22 localhost.localdomain org.gnome.Shell.desktop[12063]: #0   55febd0684a8 i   resource:///org/gnome/shell/ui/switchMonitor.js:67 (7f2f4a650b80 @ 58)
Dec 20 07:22:22 localhost.localdomain org.gnome.Shell.desktop[12063]: #1   55febd068420 i   resource:///org/gnome/shell/ui/switcherPopup.js:272 (7f2f4a83b9d0 @ 27)
Dec 20 07:22:24 localhost.localdomain org.gnome.Shell.desktop[17861]: current session already has an ibus-daemon.
Dec 20 07:22:24 localhost.localdomain gnome-shell[17861]: Telepathy is not available, chat integration will be disabled.
Dec 20 07:22:25 localhost.localdomain gnome-shell[17861]: Error looking up permission: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for geolocation
Dec 20 07:22:25 localhost.localdomain gnome-shell[17861]: GNOME Shell started at Fri Dec 20 2019 07:22:24 GMT+0900 (JST)

(gdb) bt
#0  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x000055febaaa1bf3 in dump_gjs_stack_on_signal_handler (signo=6) at ../src/main.c:343
#2  <signal handler called>
#3  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#4  0x00007f2f82785cf5 in __GI_abort () at abort.c:79
#5  0x00007f2f84715003 in g_assertion_message (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x7f2f82c61330 "g_mode_update", message=<optimized out>) at gtestutils.c:2532
#6  0x00007f2f8476dfde in g_assertion_message_expr (domain=0x7f2f82c604aa "/src/backends/meta-settings.c", domain@entry=0x7f2f82c603aa "mutter", file=0x7f2f82c61200 <__func__.114155> "meta_monitor_transform_to_xrandr", 
    file@entry=0x7f2f82c61100 "../src/backends/x11/meta-monitor-manager-xrandr.c", line=line@entry=485, func=0x7f2f82c61330 "g_mode_update", func@entry=0x7f2f82c61230 <__func__.114261> "apply_crtc_assignments", 
    expr=expr@entry=0x7f2f82c610b7 "width > 0 && height > 0") at gtestutils.c:2555
#7  0x00007f2f82bb0fbe in apply_crtc_assignments (save_timestamp=1, n_outputs=<optimized out>, outputs=<optimized out>, n_crtcs=<optimized out>, crtcs=<optimized out>, manager=<optimized out>)
    at ../src/backends/x11/meta-monitor-manager-xrandr.c:485
#8  meta_monitor_manager_xrandr_apply_monitors_config (manager=<optimized out>, config=<optimized out>, method=<optimized out>, error=<optimized out>) at ../src/backends/x11/meta-monitor-manager-xrandr.c:662
#9  0x00007f2f82ba22dc in meta_monitor_manager_apply_monitors_config (manager=0x55febc886810, config=0x55febfd89340, method=META_MONITORS_CONFIG_METHOD_TEMPORARY, error=<optimized out>) at ../src/backends/meta-monitor-manager.c:495
#10 0x00007f2f82ba5c16 in meta_monitor_manager_switch_config (manager=0x55febc886810, config_type=META_MONITOR_SWITCH_CONFIG_EXTERNAL) at ../src/backends/meta-monitor-manager.c:3208
#11 0x00007f2f7f9ef04e in ffi_call_unix64 () at ../src/x86/unix64.S:76
#12 0x00007f2f7f9eea0f in ffi_call (cif=cif@entry=0x55febd9d95f8, fn=<optimized out>, rvalue=<optimized out>, rvalue@entry=0x7ffef745d528, avalue=avalue@entry=0x7ffef745d420) at ../src/x86/ffi64.c:525
#13 0x00007f2f836d7827 in gjs_invoke_c_function (context=<optimized out>, function=0x55febd9d95e0, obj=..., args=..., js_rval=..., r_value=<optimized out>) at gi/function.cpp:1110
#14 0x00007f2f836d917b in function_call (context=0x55febcb630c0, js_argc=1, vp=0x55febd068518) at /usr/include/mozjs-60/js/RootingAPI.h:1090
#15 0x00007f2f7a8ba5a4 in js::CallJSNative (args=..., native=0x7f2f836d9030 <function_call(JSContext*, unsigned int, JS::Value*)>, cx=0x55febcb630c0) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/dist/include/js/CallArgs.h:270
#16 js::InternalCallOrConstruct (cx=0x55febcb630c0, args=..., construct=<optimized out>) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:416
#17 0x00007f2f7a8ad62f in js::CallFromStack (args=..., cx=<optimized out>) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:2873
#18 Interpret (cx=0x55febcb630c0, state=...) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:2873
#19 0x00007f2f7a8b9f66 in js::RunScript (cx=0x55febcb630c0, state=...) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:385
#20 0x00007f2f7a8ba509 in js::InternalCallOrConstruct (cx=0x55febcb630c0, args=..., construct=<optimized out>) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:457
#21 0x00007f2f7a8ad62f in js::CallFromStack (args=..., cx=<optimized out>) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:2873
#22 Interpret (cx=0x55febcb630c0, state=...) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:2873
#23 0x00007f2f7a8b9f66 in js::RunScript (cx=0x55febcb630c0, state=...) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:385
#24 0x00007f2f7a8ba509 in js::InternalCallOrConstruct (cx=0x55febcb630c0, args=..., construct=<optimized out>) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:457
#25 0x00007f2f7a8ba76d in js::Call (cx=cx@entry=0x55febcb630c0, fval=..., fval@entry=..., thisv=..., thisv@entry=..., args=..., rval=...) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/vm/Interpreter.cpp:500
#26 0x00007f2f7abf47df in JS_CallFunction (cx=cx@entry=0x55febcb630c0, obj=obj@entry=..., fun=..., fun@entry=..., args=..., rval=..., rval@entry=...) at /usr/src/debug/mozjs60-60.9.0-3.el8.x86_64/dist/include/js/RootingAPI.h:1090
#27 0x00007f2f836d1a48 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=0x55febcb630c0) at /usr/include/mozjs-60/jsapi.h:3022
#28 gjs_closure_invoke (closure=closure@entry=0x55febfdb94b0, this_obj=this_obj@entry=..., args=..., retval=retval@entry=..., return_exception=return_exception@entry=false) at gi/closure.cpp:215
#29 0x00007f2f836f7c3f in closure_marshal (closure=<optimized out>, return_value=<optimized out>, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>)
    at /usr/include/mozjs-60/js/RootingAPI.h:483
#30 0x00007f2f84a223bd in g_closure_invoke (closure=0x55febfdb94b0, return_value=0x7ffef745ec00, n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:804
#31 0x00007f2f84a3f890 in source_closure_callback (data=data@entry=0x55febfdb94b0) at gsourceclosure.c:182
#32 0x00007f2f84747141 in g_timeout_dispatch (source=0x55febf5a1600, callback=0x7f2f84a3f840 <source_closure_callback>, user_data=0x55febfdb94b0) at gmain.c:4649
#33 0x00007f2f8474667d in g_main_dispatch (context=0x55febc841d30) at gmain.c:3176
#34 g_main_context_dispatch (context=context@entry=0x55febc841d30) at gmain.c:3829
#35 0x00007f2f84746a48 in g_main_context_iterate (context=0x55febc841d30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3902
#36 0x00007f2f84746d72 in g_main_loop_run (loop=0x55febcae4d80) at gmain.c:4098
#37 0x00007f2f82bdbd10 in meta_run () at ../src/core/main.c:685
#38 0x000055febaaa1536 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:499

Version-Release number of selected component (if applicable):
gnome-shell-3.32.2-9.el8
mutter-3.32.2-11.el8_1.x86_64

How reproducible:
rarely

Steps to Reproduce:
not reproducible

Actual results:
gnome-shell crashes

Expected results:
gnome-shell keeps working

Additional info:

Comment 1 Yuki Okada 2019-12-26 02:38:28 UTC
apply_crtc_assignments() function seems introduced in this commit.

https://gitlab.gnome.org/GNOME/mutter/commit/644ee666f6750081b140e46b43367a7be2efe3a9

Comment 6 Jonas Ådahl 2020-12-08 17:58:00 UTC
This is likely the same as https://bugzilla.redhat.com/show_bug.cgi?id=1899260 (F33) which is really caused by https://bugzilla.redhat.com/show_bug.cgi?id=1896904 which is a kernel (nouveau) issue, where it misinterprets a connector as a Embeded DisplayPort (eDP-#), which mutter then interprets as a laptop monitor.

I will backport the same fix as https://bugzilla.redhat.com/show_bug.cgi?id=1899260 here to mitigate the situation in mutter.

Comment 15 errata-xmlrpc 2021-05-18 14:38:17 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: GNOME security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:1586