Bug 1215273 - GNOME shell 44.4 crash under X11
Summary: GNOME shell 44.4 crash under X11
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: GNOME (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Critical (vote)
Target Milestone: ---
Assignee: Alynx Zhou
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-13 06:32 UTC by Martin Wilck
Modified: 2024-06-26 21:10 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
full journal (686.29 KB, text/plain)
2023-09-13 06:38 UTC, Martin Wilck
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Wilck 2023-09-13 06:32:33 UTC
After Update to GNOME 44.4, GNOME shell crashes on login, showing the "Oh no! Something has gone wrong" pop-up.

coredumpctl shows:

Wed 2023-09-13 08:03:50 CEST  6604 17326  50 SIGTRAP present  /usr/bin/gnome-shell                       17.1M
Wed 2023-09-13 08:04:22 CEST  7793 17326  50 SIGSEGV present  /usr/bin/gnome-shell                       17.1M
Wed 2023-09-13 08:04:49 CEST  9564 17326  50 SIGTRAP present  /usr/bin/gnome-shell                       15.4M

journal shows:

> [   77.501239] apollon systemd[6291]: GNOME session X11 services is inactive.
> [   77.501356] apollon systemd[6291]: Reached target GNOME XSettings target.
> [   77.501503] apollon systemd[6291]: Reached target GNOME Session.
> [   77.501654] apollon systemd[6291]: Reached target GNOME X11 Session (session: gnome).
> [   77.501841] apollon systemd[6291]: Reached target Current graphical user session.
> [   77.503695] apollon systemd[6291]: Starting Portal service (GNOME implementation)...
> [   77.573673] apollon dbus-daemon[6436]: [session uid=17326 pid=6436] Successfully activated service 'org.gnome.evolution.dataserver.AddressBook10'
> [   77.575507] apollon systemd[6291]: Started Evolution address book service.
> [   77.699809] apollon gnome-shell[6604]: Received an X Window System error.
>                                           This probably reflects a bug in the program.
>                                           The error was 'BadMatch (invalid parameter attributes)'.
>                                             (Details: serial 1450 error_code 8 request_code 147 (unknown) minor_code 6)
>                                             (Note to programmers: normally, X errors are reported asynchronously;
>                                              that is, you will receive the error a while after causing it.
>                                              To debug your program, run it with the MUTTER_SYNC environment
>                                              variable to change this behavior. You can then get a meaningful
>                                              backtrace from your debugger if you break on the meta_x_error() function.)
> [   77.700037] apollon gnome-shell[6604]: == Stack trace for context 0x55a60225be30 ==
> [   77.727647] apollon systemd[1]: Created slice Slice /system/systemd-coredump.
> [   77.760577] apollon systemd[1]: Started Process Core Dump (PID 7538/UID 0).
> [   79.089161] apollon rtkit-daemon[5934]: Successfully made thread 7676 of process 7083 owned by '17326' RT at priority 20.
> [   79.173148] apollon rtkit-daemon[5934]: Successfully made thread 7692 of process 7083 owned by '17326' RT at priority 20.
> [   79.393723] apollon systemd[6291]: Started app-flatpak-com.slack.Slack-7579.scope.
> [   80.001666] apollon systemd-coredump[7544]: Process 6604 (gnome-shell) of user 17326 dumped core.
>                                                
>                                                Stack trace of thread 6604:
>                                                #0  0x00007f074de91e0c __pthread_kill_implementation (libc.so.6 + 0x91e0c)
>                                                #1  0x00007f074de3f0e6 raise (libc.so.6 + 0x3f0e6)
>                                                #2  0x000055a6004ce2f2 n/a (gnome-shell + 0x42f2)
>                                                #3  0x00007f074de3f1b0 __restore_rt (libc.so.6 + 0x3f1b0)
>                                                #4  0x00007f074e7338d7 g_log_structured_array (libglib-2.0.so.0 + 0x658d7)
>                                                #5  0x00007f074e733d2e g_log_default_handler (libglib-2.0.so.0 + 0x65d2e)
>                                                #6  0x00007f074e733fa0 g_logv (libglib-2.0.so.0 + 0x65fa0)
>                                                #7  0x00007f074e73424f g_log (libglib-2.0.so.0 + 0x6624f)
>                                                #8  0x00007f074e2fdb7e n/a (libmutter-12.so.0 + 0xfdb7e)
>                                                #9  0x00007f074dbd030b _XError (libX11.so.6 + 0x4930b)
>                                                #10 0x00007f074dbd0407 n/a (libX11.so.6 + 0x49407)
>                                                #11 0x00007f074dbd04bd n/a (libX11.so.6 + 0x494bd)
>                                                #12 0x00007f074dbd0542 _XEventsQueued (libX11.so.6 + 0x49542)
>                                                #13 0x00007f074dbc3d57 XPending (libX11.so.6 + 0x3cd57)
>                                                #14 0x00007f074e72b215 g_main_context_prepare (libglib-2.0.so.0 + 0x5d215)
>                                                #15 0x00007f074e72bc93 n/a (libglib-2.0.so.0 + 0x5dc93)
>                                                #16 0x00007f074e72c09f g_main_loop_run (libglib-2.0.so.0 + 0x5e09f)
>                                                #17 0x00007f074e2c0eb5 meta_context_run_main_loop (libmutter-12.so.0 + 0xc0eb5)
>                                                #18 0x000055a6004cd99f n/a (gnome-shell + 0x399f)
>                                                #19 0x00007f074de281b0 __libc_start_call_main (libc.so.6 + 0x281b0)
>                                                #20 0x00007f074de28279 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x28279)
>                                                #21 0x000055a6004cdc85 n/a (gnome-shell + 0x3c85)

All other gnome shell threads are waiting for something.

This pattern repeats after attempting to re-login.
Comment 1 Alynx Zhou 2023-09-13 06:37:41 UTC
This is really wired, I'll look at it, but I suggest to disable your gnome shell extensions first.
Comment 2 Martin Wilck 2023-09-13 06:38:31 UTC
Created attachment 869469 [details]
full journal
Comment 3 Alynx Zhou 2023-09-13 06:43:10 UTC
It looks like <https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6883>.
Comment 4 Martin Wilck 2023-09-13 06:43:39 UTC
(In reply to Alynx Zhou from comment #1)
> This is really wired, I'll look at it, but I suggest to disable your gnome
> shell extensions first.

Well I see this in the log:

> [   77.699809] apollon gnome-shell[6604]: Received an X Window System error.
> [   80.237726] apollon systemd[6291]: org.gnome.Shell-disable-extensions.service: multiple trigger source candidates for exit status propagation (org.gnome.Shell@wayland.service, org.gnome.Shell@x11.service), skipping.
> [   83.621966] apollon gnome-shell[7793]: Failed to create file /run/user/17326/gnome-shell-disable-extensions: Error opening file “/run/user/17326/gnome-shell-disable-extensions”: File exists
> [  112.055741] apollon systemd[6291]: org.gnome.Shell-disable-extensions.service: multiple trigger source candidates for exit status propagation (org.gnome.Shell@wayland.service, org.gnome.Shell@x11.service), skipping.
> [  136.306974] apollon gnome-shell[9564]: Received an X Window System error.
> [  139.051904] apollon systemd[9283]: org.gnome.Shell-disable-extensions.service: multiple trigger source candidates for exit status propagation (org.gnome.Shell@wayland.service, org.gnome.Shell@x11.service), skipping.
> [  141.917881] apollon gnome-shell[10701]: Failed to create file /run/user/17326/gnome-shell-disable-extensions: Error opening file “/run/user/17326/gnome-shell-disable-extensions”: File exists

So it seems that gnome shell had already auto-disabled the extensions, no?
Comment 5 Martin Wilck 2023-09-13 06:44:37 UTC
Do you want a core dump for analysis?
Comment 6 Alynx Zhou 2023-09-13 06:47:29 UTC
(In reply to Martin Wilck from comment #5)
> Do you want a core dump for analysis?

Currently not, I think we could try to backport the upstream fix and test it first. The error looks the same.
Comment 7 Martin Wilck 2023-09-13 06:49:10 UTC
Fun fact: after a while in the "Oh no!" screen, the screen saver + screen lock activates and shows the correct desktop background. After entering the password, the "Oh no!" screen appears again.
Comment 8 Martin Wilck 2023-09-13 06:50:20 UTC
Well the "upstream fix" seems to basically just ignore the error.
https://gitlab.gnome.org/jadahl/mutter/-/commit/7615c2d8dcc14b83648cf330102256060ed3b233
Comment 9 Martin Wilck 2023-09-13 06:55:56 UTC
Another fun fact: If I hit the "Super" key, the GNOME start menu appears as usual, icons are even responsive. Only if I click a mouse button or hit a key, the "Oh no!" screen re-appears.
Comment 10 Martin Wilck 2023-09-13 07:13:35 UTC
Captured a core with MUTTER_SYNC

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=5, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f2aee091e93 in __pthread_kill_internal (signo=5, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f2aee03f0e6 in __GI_raise (sig=sig@entry=5) at ../sysdeps/posix/raise.c:26
#3  0x0000564b6e7e82f2 in dump_gjs_stack_on_signal_handler (signo=5) at ../src/main.c:466
#4  <signal handler called>
#5  g_log_structured_array (log_level=<optimized out>, fields=0x7fffe5cc3b10, n_fields=4) at ../glib/gmessages.c:555
#6  0x00007f2aee933d2e in g_log_default_handler (log_domain=log_domain@entry=0x7f2aee58476e "libmutter", 
    log_level=log_level@entry=6, 
    message=message@entry=0x564b72ff2490 "Received an X Window System error.\nThis probably reflects a bug in the program.\nThe error was 'BadMatch (invalid parameter attributes)'.\n  (Details: serial 2344 error_code 8 request_code 147 (unknown)"..., 
    unused_data=unused_data@entry=0x0) at ../glib/gmessages.c:3284
#7  0x00007f2aee933fa0 in g_logv (log_domain=0x7f2aee58476e "libmutter", log_level=G_LOG_LEVEL_ERROR, 
    format=<optimized out>, args=args@entry=0x7fffe5cc3c60) at ../glib/gmessages.c:1391
#8  0x00007f2aee93424f in g_log (log_domain=log_domain@entry=0x7f2aee58476e "libmutter", 
    log_level=log_level@entry=G_LOG_LEVEL_ERROR, 
    format=format@entry=0x7f2aee5a44d8 "Received an X Window System error.\nThis probably reflects a bug in the program.\nThe error was '%s'.\n  (Details: serial %ld error_code %d request_code %d (%s) minor_code %d)\n  (Note to programmers: nor"...)
    at ../glib/gmessages.c:1460
#9  0x00007f2aee4fdb7e in display_error_event (error=0x7fffe5cc3de0, x11_display=0x564b70b8ce70)
    at ../src/x11/meta-x11-errors.c:113
#10 meta_x_error (xdisplay=<optimized out>, error=0x7fffe5cc3de0) at ../src/x11/meta-x11-errors.c:136
#11 meta_x_error (xdisplay=<optimized out>, error=0x7fffe5cc3de0) at ../src/x11/meta-x11-errors.c:132
#12 0x00007f2aeddd030b in _XError (dpy=dpy@entry=0x564b706a9930, rep=rep@entry=0x564b72c73a00)
    at /usr/src/debug/libX11-1.8.6/src/XlibInt.c:1503
#13 0x00007f2aeddd0407 in handle_error (dpy=0x564b706a9930, err=0x564b72c73a00, in_XReply=<optimized out>)
    at /usr/src/debug/libX11-1.8.6/src/xcb_io.c:211
#14 0x00007f2aeddd04bd in handle_response (dpy=dpy@entry=0x564b706a9930, response=0x564b72c73a00, 
    in_XReply=in_XReply@entry=1) at /usr/src/debug/libX11-1.8.6/src/xcb_io.c:403
#15 0x00007f2aeddd216d in _XReply (dpy=dpy@entry=0x564b706a9930, rep=rep@entry=0x7fffe5cc3fa0, extra=extra@entry=0, 
    discard=discard@entry=1) at /usr/src/debug/libX11-1.8.6/src/xcb_io.c:722
#16 0x00007f2aeddd24eb in XSync (dpy=0x564b706a9930, discard=discard@entry=0) at /usr/src/debug/libX11-1.8.6/src/Sync.c:44
#17 0x00007f2aeddd258b in _XSyncFunction (dpy=<optimized out>) at /usr/src/debug/libX11-1.8.6/src/Synchro.c:35
#18 0x00007f2aec88b972 in DPMSForceLevel (dpy=0x564b706a9930, level=0) at /usr/src/debug/libXext-1.3.5/src/DPMS.c:259
#19 0x00007f2aee4eb4ed in meta_monitor_manager_xrandr_set_power_save_mode (mode=<optimized out>, manager=0x564b7073ebc0)
    at ../src/backends/x11/meta-monitor-manager-xrandr.c:183
#20 meta_monitor_manager_xrandr_set_power_save_mode (manager=0x564b7073ebc0, mode=<optimized out>)
    at ../src/backends/x11/meta-monitor-manager-xrandr.c:160
#21 0x00007f2aee48246c in power_save_mode_changed (manager=0x564b7073ebc0, pspec=<optimized out>, user_data=<optimized out>)
    at ../src/backends/meta-monitor-manager.c:454
#22 0x00007f2aeeeea448 in g_closure_invoke (closure=0x564b70740da0, return_value=0x0, n_param_values=2, param_values=0x7fffe5cc41f0, 
    invocation_hint=0x7fffe5cc4170) at ../gobject/gclosure.c:832
#23 0x00007f2aeeefd4fe in signal_emit_unlocked_R (node=node@entry=0x564b70691220, detail=detail@entry=324, 
    instance=instance@entry=0x564b70740010, emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffe5cc41f0) at ../gobject/gsignal.c:3812
#24 0x00007f2aeef0482e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, 
    var_args=var_args@entry=0x7fffe5cc4390) at ../gobject/gsignal.c:3565
#25 0x00007f2aeef049df in g_signal_emit (instance=instance@entry=0x564b70740010, signal_id=<optimized out>, detail=<optimized out>)
    at ../gobject/gsignal.c:3622
#26 0x00007f2aeeeee6c4 in g_object_dispatch_properties_changed (object=0x564b70740010, n_pspecs=<optimized out>, pspecs=<optimized out>)
    at ../gobject/gobject.c:1428
#27 0x00007f2aeeeef018 in g_object_notify_queue_thaw (object=object@entry=0x564b70740010, nqueue=nqueue@entry=0x564b72cb94b0)
    at ../gobject/gobject.c:359
#28 0x00007f2aeeef2ab0 in g_object_setv (values=<optimized out>, names=<optimized out>, n_properties=<optimized out>, 
    object=0x564b70740010) at ../gobject/gobject.c:2727
#29 g_object_setv (object=0x564b70740010, n_properties=<optimized out>, names=<optimized out>, values=<optimized out>)
    at ../gobject/gobject.c:2694
#30 0x00007f2aeeef3c0b in g_object_set_property (object=object@entry=0x564b70740010, property_name=<optimized out>, 
    value=value@entry=0x7fffe5cc45d0) at ../gobject/gobject.c:3023
#31 0x00007f2aee45fa2d in _meta_dbus_display_config_skeleton_handle_set_property (connection=<optimized out>, sender=<optimized out>, 
    object_path=object_path@entry=0x7f2ad80205c0 "/org/gnome/Mutter/DisplayConfig", 
    interface_name=interface_name@entry=0x7f2aee584138 "org.gnome.Mutter.DisplayConfig", 
    property_name=property_name@entry=0x7f2ad803f6af "PowerSaveMode", variant=variant@entry=0x7f2ad8029650, error=0x7fffe5cc4648, 
    user_data=0x564b70740010) at src/meta-dbus-display-config.c:3063
#32 0x00007f2aeeb26db8 in invoke_set_property_in_idle_cb (_data=_data@entry=0x7f2ad8005a90) at ../gio/gdbusconnection.c:4344
#33 0x00007f2aee92751e in g_idle_dispatch (source=0x7f2ad8010070, callback=0x7f2aeeb26d10 <invoke_set_property_in_idle_cb>, 
    user_data=0x7f2ad8005a90) at ../glib/gmain.c:6163
#34 0x00007f2aee92b9d8 in g_main_dispatch (context=0x564b70694890) at ../glib/gmain.c:3460
#35 g_main_context_dispatch (context=context@entry=0x564b70694890) at ../glib/gmain.c:4200
#36 0x00007f2aee92bde8 in g_main_context_iterate (context=0x564b70694890, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=<optimized out>) at ../glib/gmain.c:4276
#37 0x00007f2aee92c09f in g_main_loop_run (loop=0x564b7229d4f0) at ../glib/gmain.c:4479
#38 0x00007f2aee4c0eb5 in meta_context_run_main_loop (context=context@entry=0x564b706927f0, error=error@entry=0x7fffe5cc4810)
    at ../src/core/meta-context.c:482
#39 0x0000564b6e7e799f in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:683


So there's indeed a similar stack involving DPMSForceLevel:

#15 0x00007f2aeddd216d in _XReply (dpy=dpy@entry=0x564b706a9930, rep=rep@entry=0x7fffe5cc3fa0, extra=extra@entry=0, 
    discard=discard@entry=1) at /usr/src/debug/libX11-1.8.6/src/xcb_io.c:722
        event = <optimized out>
        req = 0x564b72cb94b0
        response = 0x564b72fdd720
        xcb_xlib_threads_sequence_lost = <optimized out>
        error = 0x0
        c = 0x564b70711140
        reply = <optimized out>
        current = 0x564b72cb94b0
        dpy_request = <optimized out>
        __PRETTY_FUNCTION__ = "_XReply"

#16 0x00007f2aeddd24eb in XSync (dpy=0x564b706a9930, discard=discard@entry=0) at /usr/src/debug/libX11-1.8.6/src/Sync.c:44
        rep = {type = 0 '\000', revertTo = 0 '\000', sequenceNumber = 0, length = 0, focus = 1929254704, pad1 = 22091, pad2 = 0, 
          pad3 = 32554, pad4 = 3962721152, pad5 = 115}
        req = <optimized out>

#17 0x00007f2aeddd258b in _XSyncFunction (dpy=<optimized out>) at /usr/src/debug/libX11-1.8.6/src/Synchro.c:35

#18 0x00007f2aec88b972 in DPMSForceLevel (dpy=0x564b706a9930, level=0) at /usr/src/debug/libXext-1.3.5/src/DPMS.c:259
        info = 0x564b70935e30
        req = <optimized out>

#19 0x00007f2aee4eb4ed in meta_monitor_manager_xrandr_set_power_save_mode (mode=<optimized out>, manager=0x564b7073ebc0)
    at ../src/backends/x11/meta-monitor-manager-xrandr.c:183
        manager_xrandr = <optimized out>
        state = <optimized out>
        manager_xrandr = <optimized out>
        state = <optimized out>

#20 meta_monitor_manager_xrandr_set_power_save_mode (manager=0x564b7073ebc0, mode=<optimized out>)
    at ../src/backends/x11/meta-monitor-manager-xrandr.c:160
        manager_xrandr = 0x564b7073ebc0
        state = <optimized out>
#21 0x00007f2aee48246c in power_save_mode_changed (manager=0x564b7073ebc0, pspec=<optimized out>, user_data=<optimized out>)
    at ../src/backends/meta-monitor-manager.c:454
        priv = 0x564b7073eb90
        klass = <optimized out>
        mode = <optimized out>

#22 0x00007f2aeeeea448 in g_closure_invoke (closure=0x564b70740da0, return_value=0x0, n_param_values=2, param_values=0x7fffe5cc41f0, 
    invocation_hint=0x7fffe5cc4170) at ../gobject/gclosure.c:832
        marshal = 0x7f2aeeeed500 <g_cclosure_marshal_VOID__PARAM>
        marshal_data = 0x0
        in_marshal = 0
        real_closure = 0x564b70740d80
        __func__ = "g_closure_invoke"
Comment 11 Alynx Zhou 2023-09-13 07:14:22 UTC
(In reply to Martin Wilck from comment #8)
> Well the "upstream fix" seems to basically just ignore the error.
> https://gitlab.gnome.org/jadahl/mutter/-/commit/
> 7615c2d8dcc14b83648cf330102256060ed3b233

It looks like something that not so critical, and we could do nothing if that fails but only ignore it.

Now I think I need a core file to see where it failed, but looks like you need to run GNOME with env `MUTTER_SYNC=1` and then grab the core file.
Comment 12 Alynx Zhou 2023-09-13 07:33:39 UTC
I think we could not add a patch for mutter 44.4 in openSUSE:Factory, because we have mutter 45.rc in GNOME:Factory, so we could only add this fix to mutter 45 and wait for openSUSE:Factory to have mutter 45.

@Yifan What's your opinion?
Comment 13 Martin Wilck 2023-09-13 07:46:39 UTC
238	Status
239	DPMSForceLevel(Display *dpy, CARD16 level)
240	{
241	    XExtDisplayInfo *info = find_display (dpy);
242	    register xDPMSForceLevelReq *req;
243	
244	    DPMSCheckExtension (dpy, info, 0);
245	
(gdb) 
246	    if ((level != DPMSModeOn) &&
247		(level != DPMSModeStandby) &&
248		(level != DPMSModeSuspend) &&
249		(level != DPMSModeOff))
250		return BadValue;
251	
252	    LockDisplay(dpy);
253	    GetReq(DPMSForceLevel, req);
254	    req->reqType = info->codes->major_opcode;
255	    req->dpmsReqType = X_DPMSForceLevel;
(gdb) 
256	    req->level = level;
257	
258	    UnlockDisplay(dpy);
259	    SyncHandle();
260	    return 1;
261	}

(gdb) p level
$10 = 0
(gdb) p *info->codes
$9 = {
  extension = 9,
  major_opcode = 147,
  first_event = 0,
  first_error = 0
}

The error returned from the X server (in handle_response) is

(gdb) p *err
$7 = {
  type = 0 '\000',
  errorCode = 8 '\b',
  sequenceNumber = 2344,
  resourceID = 1962,
  minorCode = 6,
  majorCode = 147 '\223',

147/6 just means the DPMS extension / DPMSForceLevel.

According to the Xorg docs, a "BadMatch" error from DPMSForceLevel means that "DPMS is disabled" (https://www.x.org/releases/X11R7.7/doc/libXext/dpmslib.html#DPMSForceLevel).
That's strange, as I surely have DPMS enabled.
Comment 14 Martin Wilck 2023-09-13 07:50:54 UTC
(In reply to Alynx Zhou from comment #12)
> I think we could not add a patch for mutter 44.4 in openSUSE:Factory,
> because we have mutter 45.rc in GNOME:Factory, so we could only add this fix
> to mutter 45 and wait for openSUSE:Factory to have mutter 45.

Well for me this means a crash and "Oh no!" on every login attempt. I wouldn't call this "not so critical". Also, I think the upstream "fix" doesn't really fix anything; the actual problem seems to be in mutter's DPMS handling.

Just guessing, could it be that mutter calls DPMSForceLevel() before enabling DPMS?
Comment 15 Martin Wilck 2023-09-13 07:55:12 UTC
Also, mind you that I've started seeing this after updating mutter from 44.3-4.1 to 44.4-1.1, which was just added to TW last week.

-------------------------------------------------------------------
Mon Sep  4 14:28:19 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>

- Update to version 44.4:
  + Fix xwayland-allow-byte-swapped-clients setting.
  + Fix restoring focus when leaving the overview.
  + Fix touch move operations on subsurfaces.
  + Fix flickering when DRI driver isn't available.
  + Fix unexpected cursor changes over non-resizable windows.
  + Fix restoring maximized state of SSD windows.
  + Fix window focus unexpectedly moving to secondary monitor when
    changing workspaces.
  + Fixed crash.
  + Misc. bug fixes and cleanups.
  + Updated translations.
Comment 16 Martin Wilck 2023-09-13 07:57:56 UTC
(In reply to Martin Wilck from comment #15)
> Also, mind you that I've started seeing this after updating mutter from
> 44.3-4.1 to 44.4-1.1, which was just added to TW last week.

Whereas the upstream issue says "I've had this issue since 44.3" (on arch linux).
Comment 17 Martin Wilck 2023-09-13 08:01:07 UTC
(In reply to Martin Wilck from comment #13)
> That's strange, as I surely have DPMS enabled.

Hm...

$ xset q
...
DPMS (Display Power Management Signaling):
  Standby: 0    Suspend: 0    Off: 0
  DPMS is Disabled
Comment 18 Martin Wilck 2023-09-13 09:24:11 UTC
grepping for "DPMS" in the system logs, for the case documented in comment 10:

> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): EDID for output eDP-1
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): DPMS capabilities: StandBy Suspend Off
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): EDID for output DP-1-1
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): DPMS capabilities: Off
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): EDID for output DP-1-2
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): EDID for output DP-1-3
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) modeset(0): DPMS capabilities: Off; RGB/Color Display
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (**) modeset(0): DPMS enabled
> Sep 13 11:13:51 apollon /usr/libexec/gdm/gdm-x-session[31564]: (II) Initializing extension DPMS

Sep 13 08:51:33 apollon /usr/libexec/gdm/gdm-x-session[15546]: (II) modeset(0): DPMS capabilities: StandBy Suspend Off
Sep 13 08:51:33 apollon /usr/libexec/gdm/gdm-x-session[15546]: (II) modeset(0): DPMS capabilities: Off
Sep 13 08:51:33 apollon /usr/libexec/gdm/gdm-x-session[15546]: (II) modeset(0): DPMS capabilities: Off; RGB/Color Display
Sep 13 08:51:33 apollon /usr/libexec/gdm/gdm-x-session[15546]: (==) modeset(0): DPMS enabled
Sep 13 08:51:33 apollon /usr/libexec/gdm/gdm-x-session[15546]: (II) Initializing extension DPMS
                                                 #15 0x00007f2aec88b972 
DPMSForceLevel (libXext.so.6 + 0x7972)

The modesetting driver says that DPMS is enabled, but `xset` says the opposite.
Perhaps some entity has _disabled_ DPMS after it was originally enabled?
Comment 19 Yifan Jiang 2023-09-13 09:50:49 UTC
(In reply to Alynx Zhou from comment #12)
> I think we could not add a patch for mutter 44.4 in openSUSE:Factory,
> because we have mutter 45.rc in GNOME:Factory, so we could only add this fix
> to mutter 45 and wait for openSUSE:Factory to have mutter 45.
> 
> @Yifan What's your opinion?

I agree, the GNOME 45 is on the way, and GNOME 44 will soon not be there, e.g.:

https://build.opensuse.org/request/show/1110516

So as for my perspective, porting the fix to GNOME 45 could be the most intuitive way.
Comment 20 Martin Wilck 2023-09-13 10:03:36 UTC
Alynx provided a test package to me which solved the issue by checking first whether the display was DPMS capable and had it enabled before sending a DPMSForceLevel(). 

That test package worked nicely, thanks a lot Alynx!

The same package seems to fix bug 1210143 as well (preliminary result, needs more testing).
Comment 21 Alynx Zhou 2023-09-14 03:07:38 UTC
I decide to first submit a patch with error traps to Factory, and if my MR got merged, we could update the patch to add DPMS checks, so Factory patch will keep the same with upstream and it is easier for Factory maintainer to maintain it.
Comment 22 Alynx Zhou 2023-09-15 10:04:24 UTC
Patch accepted, upstream issue resolved, let's close this bug?
Comment 23 Martin Wilck 2023-09-15 14:09:41 UTC
I'd prefer not to close the bug before a package with the bugfix has reached factory.
Comment 24 Alynx Zhou 2023-09-21 02:21:19 UTC
It's now in Factory.
Comment 25 Martin Wilck 2023-09-21 10:54:21 UTC
Thanks!