Problems with wayland after updating to fedora 39

Similar problem here. On startup it doesn’t even show the wayland options. it just says “Gnome” and “Gnome classic” howover those are X11 (I used echo $XDG_SESSION_TYPE to confirm). The funny thing is I can log into Wayland, I just have to log in with Xorg, log out and it displays the Wayland option. Logging into wayland sometimes fail 3 times and than lets me in.

Here is the output of the dbus command

dbus-daemon[5579]: [session uid=0 pid=5579] Activating service name='org.gtk.vfs.Daemon' requested by ':1.0' (uid=0 pid=5580 comm="gnome-shell --display-server --wayland" label="unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023")
dbus-daemon[5579]: [session uid=0 pid=5579] Successfully activated service 'org.gtk.vfs.Daemon'
libmutter-Message: 03:40:27.949: Running GNOME Shell (using mutter 45.1) as a Wayland display server
libmutter-Message: 03:40:28.021: Made thread 'KMS thread' realtime scheduled
libmutter-Message: 03:40:28.021: Device '/dev/dri/card0' prefers shadow buffer
libmutter-Message: 03:40:28.322: Added device '/dev/dri/card0' (nvidia-drm) using atomic mode setting.
libmutter-Message: 03:40:28.325: Created gbm renderer for '/dev/dri/card0'
libmutter-Message: 03:40:28.325: Boot VGA GPU /dev/dri/card0 selected as primary
** Message: 03:40:28.326: Obtained a high priority EGL context
** Message: 03:40:28.327: Obtained a high priority EGL context
libmutter-Message: 03:40:28.560: Disabling DMA buffer screen sharing (implicit modifiers not supported)
dbus-daemon[5579]: [session uid=0 pid=5579] Activating service name='org.a11y.Bus' requested by ':1.3' (uid=0 pid=5580 comm="gnome-shell --display-server --wayland" label="unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023")
dbus-daemon[5579]: [session uid=0 pid=5579] Successfully activated service 'org.a11y.Bus'
libmutter-Message: 03:40:28.576: Using public X11 display :0, (using :2 for managed services)

(gnome-shell:5580): libmutter-WARNING **: 03:40:28.577: WL: error: XDG_RUNTIME_DIR is invalid or not set in the environment


(gnome-shell:5580): libmutter-ERROR **: 03:40:28.577: Failed to create socket
== Stack trace for context 0x55784dd65f60 ==
A connection to the bus can't be made

Hardware:

CPU: AMD Ryzen 3 3200G
Kernel: 6.5.11-300.fc39.x86_64 x86_64
Mem: 16 GiB
GPU: Nvidia GTX 1660ti
Nvidia drivers: from RPM FUSION akmod-nvidia 535.129.03-1.fc39
MOBO: PRO A320M-R WI-FI
ALSO Dual screen setup

Hi all!
I have the same bug from 1st day of F39 release 7nov.
Upgraded from F38, where all works fine (as F37 & F36 before).
I never have no NVidia card or drivers installed on this machine, build it one year ago as HTPC.
Just integrated video of Core i3-12100 CPU.
No multiple displays, just one 4K TV via HDMI.

No gnome-tweaks installed.

Another account helps from the 1st day, but still waiting fox fix.

Hi,
I’ve got the same problem. I found a workaround by bisect the entries in dconf and, for me, removing this one solved the wayland login bug:

dconf reset /org/gnome/desktop/a11y/keyboard/enable

I am sorry, but I cannot confirm, that this is fixing my problem.

After the suggested dconf reset /org/gnome/desktop/a11y/keyboard/enable, my system shows the following problems:

  • sometines GDM does not offer the X11 sessions any longer
  • during a second attempt after this, I get an X11 session, but not a Wayland session
  • In cases where I get a selection of both, X11 and Wayland, when I choose Wayland the GDM immediately falls back to the login screen

Can you please verify, whether the session, which you had started for sure is a Wayland session and not a X11 session?

I am doing hard to understand, why the screen keyboard settings should solve the problems (which says nothing of course), but my settings showed a disabled keyboard setting before. Thus in my case there probably is no change…

Thank you nevertheless.

Yes, I’m sure it’s a Wayland session.
Here are the system details report:

# System Details Report
---

## Report details
- **Date generated:**                              2023-11-17 16:44:24

## Hardware Information:
- **Hardware Model:**                              Lenovo ThinkPad P14s Gen 1
- **Memory:**                                      16.0 GiB
- **Processor:**                                   AMD Ryzen™ 7 PRO 4750U with R
adeon™ Graphics × 16
- **Graphics:**                                    AMD Radeon™ Graphics
- **Disk Capacity:**                               (null)

## Software Information:
- **Firmware Version:**                            R1BET77W(1.46 )
- **OS Name:**                                     Fedora Linux 39 (Workstation 
Edition)
- **OS Build:**                                    (null)
- **OS Type:**                                     64-bit
- **GNOME Version:**                               45.1
- **Windowing System:**                            Wayland
- **Kernel Version:**                              Linux 6.5.11-300.fc39.x86_64

I did another test with enabled screen keyboard and gdm immediatly falled back to the login screen.
Then I removed the screen keyboard and ran my wayland session.

Here is the backtrace of the gnome-shell crash when i tried to login, and we can see that the process segfault with things related to META_A11Y_KEYBOARD_ENABLED:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f1d5d176b84 in g_rw_lock_get_impl (lock=0x78) at ../glib/gthread-posix.c:468
Downloading source file /usr/src/debug/glib2-2.78.1-1.fc39.x86_64/redhat-linux-build/../glib/gthread-posix.c...
468	  pthread_rwlock_t *impl = g_atomic_pointer_get (&lock->p);
[Current thread is 1 (Thread 0x7f1d0a7fc6c0 (LWP 144284))]

Thread 1 (Thread 0x7f1d0a7fc6c0 (LWP 144284)):
#0  0x00007f1d5d176b84 in g_rw_lock_get_impl (lock=0x78) at ../glib/gthread-posix.c:468
        gapg_temp_newval = <optimized out>
        gapg_temp_atomic = 0x78
        impl = <optimized out>
        retval = <optimized out>
#1  g_rw_lock_writer_lock (rw_lock=0x78) at ../glib/gthread-posix.c:554
        retval = <optimized out>
#2  0x00007f1d5cb83003 in update_internal_xkb_state (device=device@entry=0x55df76d17100, new_latched_mask=new_latched_mask@entry=0, new_locked_mask=new_locked_mask@entry=0) at ../src/backends/native/meta-input-device-native.c:491
        seat_impl = 0x0
        depressed_mods = <optimized out>
        latched_mods = <optimized out>
        locked_mods = <optimized out>
        group_mods = <optimized out>
        xkb_state = <optimized out>
#3  0x00007f1d5cb83696 in meta_input_device_native_apply_kbd_a11y_settings_in_impl (device=0x55df76d17100, settings=0x7f1d0a7faee0) at ../src/backends/native/meta-input-device-native.c:1275
        changed_flags = META_A11Y_KEYBOARD_ENABLED
#4  0x00007f1d5cbaed02 in evdev_add_device (libinput_device=0x7f1cf4072570, seat_impl=<optimized out>) at ../src/backends/native/meta-seat-impl.c:1708
        kbd_a11y_settings = {controls = META_A11Y_KEYBOARD_ENABLED, slowkeys_delay = 300, debounce_delay = 300, timeout_delay = 200, mousekeys_init_delay = 300, mousekeys_max_speed = 10, mousekeys_accel_time = 300}
        keyboard_native = 0x55df76d17100
        type = <optimized out>
        device = 0x7f1cf408b0b0
        is_touchscreen = 0
        is_tablet_switch = <optimized out>
        is_pointer = <optimized out>
        device = <optimized out>
        device_event = 0x0
        libinput_device = 0x7f1cf4072570
        input_settings = 0x7f1cf40014a0
        event = 0x7f1cf4076190
        CoglTraceMetaSeatImplProcessEvents = {begin_time = 0, name = 0x0, description = 0x0}
        ScopedCoglTraceMetaSeatImplProcessEvents = <optimized out>
#5  process_base_event (event=0x7f1cf4076190, seat_impl=0x55df76d14900) at ../src/backends/native/meta-seat-impl.c:1766
        device = <optimized out>
        device_event = 0x0
        libinput_device = 0x7f1cf4072570
        input_settings = 0x7f1cf40014a0
        event = 0x7f1cf4076190
        CoglTraceMetaSeatImplProcessEvents = {begin_time = 0, name = 0x0, description = 0x0}
        ScopedCoglTraceMetaSeatImplProcessEvents = <optimized out>
#6  process_event (event=0x7f1cf4076190, seat_impl=0x55df76d14900) at ../src/backends/native/meta-seat-impl.c:2642
        event = 0x7f1cf4076190
        CoglTraceMetaSeatImplProcessEvents = {begin_time = 0, name = 0x0, description = 0x0}
        ScopedCoglTraceMetaSeatImplProcessEvents = <optimized out>
#7  process_events (seat_impl=seat_impl@entry=0x55df76d14900) at ../src/backends/native/meta-seat-impl.c:2658
        event = 0x7f1cf4076190
        CoglTraceMetaSeatImplProcessEvents = {begin_time = 0, name = 0x0, description = 0x0}
        ScopedCoglTraceMetaSeatImplProcessEvents = <optimized out>
#8  0x00007f1d5cbb1307 in init_libinput (error=0x7f1d0a7faf60, seat_impl=0x55df76d14900) at ../src/backends/native/meta-seat-impl.c:2828
        udev = 0x7f1cf403f3f0
        libinput = 0x7f1cf403fa70
        error = 0x0
        priv = <optimized out>
        backend = <optimized out>
        context = <optimized out>
        profiler = 0x55df76899840
        xkb_keymap = <optimized out>
#9  input_thread (seat_impl=0x55df76d14900) at ../src/backends/native/meta-seat-impl.c:2902
        error = 0x0
        priv = <optimized out>
        backend = <optimized out>
        context = <optimized out>
        profiler = 0x55df76899840
        xkb_keymap = <optimized out>
#10 0x00007f1d5d14f163 in g_thread_proxy (data=0x55df76c46970) at ../glib/gthread.c:831
        thread = 0x55df76c46970
        __func__ = "g_thread_proxy"
#11 0x00007f1d5c8ac897 in start_thread (arg=<optimized out>) at pthread_create.c:444
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139764083377568, 6310799498536141875, 139762706925248, -120, 0, 140722507456656, 6310799497776972851, 6310910182595216435}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#12 0x00007f1d5c9336bc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

So… maybe we don’t encounter the same bug.

Thank you Fabien!
Yes, maybe there are different bugs…
If I read, what @metaller had written, it is quite likely, that there are either multiple bugs or at least multiple causes.

It seems we need to wait for software updates. I wish us all good luck!

sounds like “Gnome” will be the name for Wayland?

I had this problem just after updating a Speedmind M-BOOK laptop from F38 to F39:

  • Previously working user session failed to login to GNOME, dumped me back to login screen
  • Default GNOME/Wayland session failed, explicit GNOME/X11 session worked correctly, even from GDM login
  • Disabling extensions (while inside GNOME/X11) and retrying failed to solve the issue
  • (important hint) Freshly created different account successfully logged into GNOME/Wayland. So this is a problem local to my previously-working account.

The SpeedMind M-BOOK has integrated Intel graphics, no NVIDIA or AMD graphics. So none of the solutions mentioned for graphics chipsets apply to me.

I managed to fix this by doing the following:

  • Troubleshooting: I moved /home/{$USER}/.config/dconf/user out of the way by renaming it. After doing this, I could successfully login to GNOME/Wayland, with fresh configuration as if the user was newly created. Therefore the issue (for me) was something inside dconf.
  • By trial and error, I figured out that the culprit was the /org/gnome/mutter/experimental-features key. In my case:
$ dconf read /org/gnome/mutter/experimental-features
['rt-scheduler']

I then restored the faulty “user” file, then ran the following command: dconf reset /org/gnome/mutter/experimental-features

This fixed the problem and allowed me to login while keeping the rest of my configuration.

For anyone else having the issue, check that experimental features under /org/gnome/mutter/experimental-features (I added the “rt-scheduler” one) are reset before updating to Fedora 39.

3 Likes

Thanks, Alex!
I have no experimental-features (empty result of read command).
But renaming user file in ‘.config/dconf’ lets me login to my wayland with default settings.
A few clicks sets all as it was before.
Thanks again you are cool!

If you keep the original file, you might try to diff them and attempt to identify which setting is causing the session crash in your case.

Thanks! This did the trick. I can log in under Wayland again.

It isn’t. For some reason If you turn Wayland off the Xorg will appear as “Gnome”. I echoed the $XDG_SESSION_TYPE (and also some other XDG variable that I can’t really remember) and confirmed it was running under x11. For some reason if it can’t confirm availability on the Wayland part of Gnome it just doesn’t display it.

Thank you very much Alex (@avillacis) for your detailed and in depth explainitions! dconf points in the right direction, but - sorry to say - does not solve my problem persistantly. Is this solution persistant for you?

More details:

As on @metaller’s system, also my system does not show a experimental-features key under /org/gnome/mutter/. Nevertheless deleting the complete dconf/user database had allowed me to start an Gnome/Wayland session again! Thus there must be additional dconf settings, which are causing similar problems. - I had been so greatfiul, but…

The solution is not persistant for me.

I needed to setup my desktop settings again from scratch. I did enable Gnome extensions, mainly [QSTweak] Quick Setting Tweaker - GNOME Shell Extensions and ArcMenu - GNOME Shell Extensions and configured them anew. Nothing else. Just a few test with Gnome/Wayland and Gnome/X11 followed.
Finally it was very sad to see, that after a lot of work, the login using Gnome/Wayland failes again.

Now I had been sure (at leyst I thought), that this should be related to the above mentioned extension. But even disabling extensions completely, did not allow me to start a Gnome/Wayland session again.

Even worse, in the meantime the newly created account, which had workes with Gnome/Wayland before, fails to start a Wayland based session. Maybe switching between X11 and Wayland sessions forth and back, as I did for testing purposes, creates the problems?

Until FC38 the system ran very smooth. I am lost on FC39 and afraid of FC40, where X11 support is forecasted to be eliminated. In the current situation this would be fatal for my system…

I am afraid to Upgrade my other systems to FC39 for now.

There are two questions remaining:

  1. I am new to Fedora discussions and never have filed a bugzilla report through “Problemberichterstattung” (error report system). Would it be meaningful to send a bugreport of the crash of my gnome-shell to Redhat’s Bugzilla? Would this help?
  2. There are other threads around here, which claim, that the NVidia drivers are causing problems. Did anybody try to roll back from NVidia (installed latest release from RPMFusion in my case) to Nouveau? Could this help? Is this save to try?

One important thing for my system: Whenever I unplug the second screen, Gnome/Wayland is working and I can login! Probably I will drop my second screen for a while.

Any further hints, ideas, thoughts or solutions would be very welcome.

Thank you in advance.
Thomas

P.S.: @avillacis, could you please advise on how to (easily) diff dconf files?

I have a the same problem, deleted my dconf folder and it doesn’t seem to help in anyway.

as I said earlier I do not seem to get a Wayland option on boot, to get one I have to log into x11 and close my session.

Looking into some journalctl logs I get this on boot

nov 20 08:26:49 workstation /usr/libexec/gdm-wayland-session[1395]: dbus-daemon[1395]: [session uid=42 pid=1395] Activating service name='org.freedesktop.systemd1' requested by ':1.2' (uid=42 pid=1396 comm="/usr/libexec/gnome-session-binary --autostart /usr" label="system_u:system_r:xdm_t:s0-s0:c0.c1023")
nov 20 08:26:49 workstation /usr/libexec/gdm-wayland-session[1395]: dbus-daemon[1395]: [session uid=42 pid=1395] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
nov 20 08:26:49 workstation gnome-session[1396]: gnome-session-binary[1396]: WARNING: Could not check if unit gnome-session-wayland@gnome-login.target is active: Error al llamar StartSereviceByName para org.freedesktop.systemd1: Process org.freedesktop.systemd1 exited with status 1
nov 20 08:26:49 workstation gnome-session-binary[1396]: WARNING: Could not check if unit gnome-session-wayland@gnome-login.target is active: Error al llamar StartSereviceByName para org.freedesktop.systemd1: Process org.freedesktop.systemd1 exited with status 1
nov 20 08:26:50 workstation gnome-shell[1410]: Running GNOME Shell (using mutter 45.1) as a Wayland display server
nov 20 08:26:50 workstation (mysqld)[1430]: mysqld.service: Referenced but unset environment variable evaluates to an empty string: MYSQLD_OPTS
nov 20 08:26:50 workstation rtkit-daemon[859]: Successfully made thread 1431 of process 1410 (/usr/bin/gnome-shell) owned by '42' RT at priority 20.
nov 20 08:26:50 workstation gnome-shell[1410]: Made thread 'KMS thread' realtime scheduled
nov 20 08:26:50 workstation gnome-shell[1410]: Device '/dev/dri/card0' prefers shadow buffer
nov 20 08:26:50 workstation gnome-session[1396]: gnome-session-binary[1396]: WARNING: Application 'org.gnome.Shell.desktop' killed by signal 9
nov 20 08:26:50 workstation gnome-session-binary[1396]: WARNING: Application 'org.gnome.Shell.desktop' killed by signal 9
nov 20 08:26:50 workstation gnome-session-binary[1396]: Unrecoverable failure in required component org.gnome.Shell.desktop
nov 20 08:26:50 workstation /usr/libexec/gdm-wayland-session[1395]: dbus-daemon[1395]: [session uid=42 pid=1395] Activating service name='ca.desrt.dconf' requested by ':1.2' (uid=42 pid=1396 comm="/usr/libexec/gnome-session-binary --autostart /usr" label="system_u:system_r:xdm_t:s0-s0:c0.c1023")
nov 20 08:26:50 workstation audit[1345]: USER_END pid=1345 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:xdm_t:s0-s0:c0.c1023 msg='op=PAM:session_close grantors=pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_umask acct="gdm" exe="/usr/libexec/gdm-session-worker" hostname=workstation addr=? terminal=/dev/tty1 res=success'
nov 20 08:26:50 workstation audit[1345]: CRED_DISP pid=1345 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:xdm_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_permit acct="gdm" exe="/usr/libexec/gdm-session-worker" hostname=workstation addr=? terminal=/dev/tty1 res=success'
nov 20 08:26:50 workstation gdm-launch-environment][1345]: pam_unix(gdm-launch-environment:session): session closed for user gdm
nov 20 08:26:50 workstation gdm[1285]: Gdm: GdmDisplay: Session never registered, failing
nov 20 08:26:50 workstation systemd[1]: session-c1.scope: Deactivated successfully.
nov 20 08:26:50 workstation gdm[1285]: Gdm: Child process -1388 was already dead.
nov 20 08:26:50 workstation gdm[1285]: Gdm: GdmDisplay: Session never registered, failing
nov 20 08:26:50 workstation gdm[1285]: Gdm: Child process -1388 was already dead.
nov 20 08:26:50 workstation systemd-logind[865]: Session c1 logged out. Waiting for processes to exit.
nov 20 08:26:50 workstation systemd-logind[865]: Removed session c1.
nov 20 08:26:50 workstation systemd[1]: Received SIGRTMIN+21 from PID 431 (plymouthd).

I don’t really even know how to debug this. But for what I see, it looks like the Wayland part is not being found.

Searching online, I don’t remember where, somebody suggested looking into loginctl I realized there is some strange behavior there too. logging into tty1 and doing a loginctl displays a session in a different TTY.

Also echo $XDG_SESSION_IDdisplays nothing for me. I don’t know if it’s a session problem or something.

XDG_SESSION_ID is empty here as well.
XDG_SESSION_TYPE should contain the string “wayland”, at least it does on my system if I manage to start s Gnome/Wayland session.

Hey All,

I’m way out of my depth here, but, after seeing the dbus connection failure message common to most of your cases and finding this, DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus, in my environment, I couldn’t help but wonder if somehow the dbus socket, $XDG_RUNTIME_DIR/bus, permissions got set incorrectly on the update you did.

Mine look like this:

$ ls -l $XDG_RUNTIME_DIR/bus
srw-rw-rw-. 1 jrredho jrredho 0 Nov 20 08:56 /run/user/1000/bus

Of course, my userid is jrredho. :slight_smile:

Best of luck chasing this one down!

Note that is a socket created under /run/user/1000 as you may tell with the first character of the line s and is read-write for everyone.

The /run directory tree is type tmpfs (volatile in RAM) and is created at boot time.

Also note that /run/user/1000 is accessible to the owner only.

drwx------. 10 1000 1000 340 Nov 21 05:31 /run/user/1000

Also note that in the sudo environment the variable DBUS_SESSION_BUS_ADDRESS becomes unset, to you have no access to the user dbus.

Yes, I saw it was a socket as it’s indicated in the environment variable I showed expanded. But, as always, I learn a few things by throwing out these wild guesses. :slight_smile:

Thanks!