FS#57957 - [gdm] 3.28 is always running in Xorg Mode instead of Wayland

Attached to Project: Arch Linux
Opened by wzrd tales (wzrdtales) - Sunday, 25 March 2018, 22:38 GMT
Last edited by Toolybird (Toolybird) - Friday, 02 June 2023, 21:31 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Jan Alexander Steffens (heftig)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 7
Private No

Details

Description:

Since the latest upgrade to Gnome 3.28, wayland is basically completely disabled. GDM seems to have problems to identify the correct GPU and all options to choose wayland are gone.


Additional info:

Multi GPU System:
- Intel GPU
- Nvidia GPU


Steps to reproduce:

Upgrade to 3.28 on a multi gpu (Nvidia) device.
This task depends upon

Closed by  Toolybird (Toolybird)
Friday, 02 June 2023, 21:31 GMT
Reason for closing:  Fixed
Additional comments about closing:  Old and stale. Assuming no longer an issue.
Comment by Idontknow (Archtux) - Monday, 26 March 2018, 06:51 GMT
I confirm this bug with my laptop MSI GP62 7QF with gpu :
-Intel Device 591b
-NVIDIA GM107M [GeForce GTX 960M]
After upgrade gnome to 3.28, GDM run on Xorg not Xwayland.
Comment by Peter Weber (hoschi) - Monday, 26 March 2018, 19:43 GMT
It works fine on a system with one regular GPU (here Intel). So it is either caused by the Multi-GPU-Setup (always good for problems) or the Nvidia-Driver?
Comment by storrgie (storrgie) - Monday, 26 March 2018, 21:07 GMT
I am having potentially the same problems without hybrid graphics. I've mentioned it in this forum post: https://bbs.archlinux.org/viewtopic.php?id=235644
Comment by Idontknow (Archtux) - Monday, 26 March 2018, 21:14 GMT
I'm sorry but if I use driver xf86-video-nouveau and not nvidia driver, gdm doesn't start and my computer is stuck whith this last line :
nouveau 0000:01:00.0: DRM: Pointer to TMDS table invalid
Just for add, gnome 3.26 and GDM worked very well with Xwayland. The graphic card Intel was for GDM, gnome on Xwayland and weston and the Nvidia card was used only for gnome on Xorg
Now the Nvidia card (so with the Nvidia diver) is use for all (GDM and gnome session).
Comment by wzrd tales (wzrdtales) - Monday, 26 March 2018, 21:15 GMT
Yeah most probably a problem with multi gpu setups, but definitely a newly introduced bug in GDM/Gnome 3.28.
Comment by wzrd tales (wzrdtales) - Monday, 26 March 2018, 21:16 GMT
Do not have any amd setup available to validate if this is unique to nvidia though.
Comment by Idontknow (Archtux) - Tuesday, 27 March 2018, 06:46 GMT
Perhaps log can help ?

Log of GDM 3.28
https://pastebin.com/9kTVpwAN

Boot log with gnome 3.28
https://pastebin.com/cS8TdyFK
https://pastebin.com/x43dJrnq

Boot log with gnome 3.26
https://pastebin.com/Gfjf88rc

I seen with log gnome 3.28 this :
mars 27 06:27:07 arch-kde systemd-coredump[794]: Process 572 (gnome-shell) of user 120 dumped core.

Stack trace of thread 572:
#0 0x00007f8cdaee063f n/a (libmutter-2.so.0)
#1 0x00007f8cdae39207 meta_gpu_read_current (libmutter-2.so.0)
#2 0x00007f8cdae4870d meta_monitor_manager_read_current_state (libmutter-2.so.0)
#3 0x00007f8cdae4885e meta_monitor_manager_setup (libmutter-2.so.0)
#4 0x00007f8cdae3483e n/a (libmutter-2.so.0)
#5 0x00007f8cdaedc172 n/a (libmutter-2.so.0)
#6 0x00007f8cdae34dc0 meta_clutter_init (libmutter-2.so.0)
#7 0x00007f8cdae7de2e meta_init (libmutter-2.so.0)
#8 0x000055e2d6d53cda n/a (gnome-shell)
#9 0x00007f8cdd6b8f4a __libc_start_main (libc.so.6)
#10 0x000055e2d6d5414a n/a (gnome-shell)

Stack trace of thread 767:
#0 0x00007f8cdda5c3bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f8cb4fdf664 n/a (nouveau_dri.so)
#2 0x00007f8cb4fdf4b8 n/a (nouveau_dri.so)
#3 0x00007f8cdda5608c start_thread (libpthread.so.0)
#4 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 623:
#0 0x00007f8cdd78397b __poll (libc.so.6)
#1 0x00007f8cdc982613 n/a (libglib-2.0.so.0)
#2 0x00007f8cdc98272e g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f8cdc982782 n/a (libglib-2.0.so.0)
#4 0x00007f8cdc9aacea n/a (libglib-2.0.so.0)
#5 0x00007f8cdda5608c start_thread (libpthread.so.0)
#6 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 765:
#0 0x00007f8cdda5c3bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f8cb4fdf664 n/a (nouveau_dri.so)
#2 0x00007f8cb4fdf4b8 n/a (nouveau_dri.so)
#3 0x00007f8cdda5608c start_thread (libpthread.so.0)
#4 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 700:
#0 0x00007f8cdd788879 syscall (libc.so.6)
#1 0x00007f8cdc9c97ed g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f8cdc954953 n/a (libglib-2.0.so.0)
#3 0x00007f8cdc954f3e g_async_queue_timeout_pop (libglib-2.0.so.0)
#4 0x00007f8cdc9ab801 n/a (libglib-2.0.so.0)
#5 0x00007f8cdc9aacea n/a (libglib-2.0.so.0)
#6 0x00007f8cdda5608c start_thread (libpthread.so.0)
#7 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 624:
#0 0x00007f8cdd78397b __poll (libc.so.6)
#1 0x00007f8cdc982613 n/a (libglib-2.0.so.0)
#2 0x00007f8cdc9829d2 g_main_loop_run (libglib-2.0.so.0)
#3 0x00007f8cdcf7ab78 n/a (libgio-2.0.so.0)
#4 0x00007f8cdc9aacea n/a (libglib-2.0.so.0)
#5 0x00007f8cdda5608c start_thread (libpthread.so.0)
#6 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 768:
#0 0x00007f8cdda5c3bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f8cb4fdf664 n/a (nouveau_dri.so)
#2 0x00007f8cb4fdf4b8 n/a (nouveau_dri.so)
#3 0x00007f8cdda5608c start_thread (libpthread.so.0)
#4 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 701:
#0 0x00007f8cdd78397b __poll (libc.so.6)
#1 0x00007f8cdc982613 n/a (libglib-2.0.so.0)
#2 0x00007f8cdc98272e g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f8cc4ae9f4e n/a (libdconfsettings.so)
#4 0x00007f8cdc9aacea n/a (libglib-2.0.so.0)
#5 0x00007f8cdda5608c start_thread (libpthread.so.0)
#6 0x00007f8cdd78de7f __clone (libc.so.6)

Stack trace of thread 766:
#0 0x00007f8cdda5c3bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f8cb4fdf664 n/a (nouveau_dri.so)
#2 0x00007f8cb4fdf4b8 n/a (nouveau_dri.so)
#3 0x00007f8cdda5608c start_thread (libpthread.so.0)
#4 0x00007f8cdd78de7f __clone (libc.so.6)




Comment by Idontknow (Archtux) - Tuesday, 27 March 2018, 21:11 GMT
Since uprade to Gnome 3.28 this line repeat at each boot in log :

mars 25 16:12:16 arch-kde kernel: gnome-shell[539]: segfault at 30 ip 00007fd18ae0563f sp 00007ffe9ae612b0 error 4 in libmutter-2.so.0.0.0
mars 25 18:30:04 arch-kde kernel: gnome-shell[450]: segfault at 30 ip 00007f943377b63f sp 00007ffe1d76f2a0 error 4 in libmutter-2.so.0.0.0
Comment by Dmitry Suzdalev (dimsuz) - Saturday, 31 March 2018, 18:44 GMT
I have the exact stack trace as Idontknow (Archtux) has provided above (https://bugs.archlinux.org/task/57957#comment167908).

System has Intel + Nvidia GPUs (Lenovo P51 laptop).

If any additional info is needed, I will be glad to help.
Comment by Idontknow (Archtux) - Sunday, 01 April 2018, 08:49 GMT
Hello
I'm sorry but I found the solution at problem. Gnome 3.28 don't work whith Xwayland if the proprietary nvidia driver is installed. Gnome 3.28 is imcompatible with nvidia driver. It is necessary to installe the free driver "nouveau" (new) . But I had a problem with this driver, my laptop was stuck with a black screen. I solved this problem in create this file :
# nano /etc/modprobe.d/nouveau_blacklist.conf
And I writed :
blacklist nouveau

After in tty console, I removed nvidia driver and install the driver "nouveau" : xf86-video-nouveau; I rebooted and all session are proposed by GDM, and it work with Xwayland

So driver nvidia do crash gnome-shell 3.28 :
PID: 521 (gnome-shell)
UID: 120 (gdm)
GID: 120 (gdm)
Signal: 11 (SEGV)
Timestamp: Sat 2018-03-31 12:56:32 CEST
Command Line: /usr/bin/gnome-shell
Executable: /usr/bin/gnome-shell
Control Group: /user.slice/user-120.slice/session-c2.scope
Unit: session-c2.scope
Slice: user-120.slice
Session: c2
Owner UID: 120 (gdm)
Boot ID: 71627d93c58347b5965225c392d819f6
Machine ID: 477c8c265fab4766a0e594994fa11a17
Hostname: arch-kde
Storage: /var/lib/systemd/coredump/core.gnome-shell.120.71627d93c58347b5965225c392d819f6.521.1522493792000000.lz4
Message: Process 521 (gnome-shell) of user 120 dumped core.

Stack trace of thread 521:
#0 0x00007f98b87a563f n/a (libmutter-2.so.0)
#1 0x00007f98b86fe207 meta_gpu_read_current (libmutter-2.so.0)
#2 0x00007f98b870d70d meta_monitor_manager_read_current_state (libmutter-2.so.0)
#3 0x00007f98b870d85e meta_monitor_manager_setup (libmutter-2.so.0)
#4 0x00007f98b86f983e n/a (libmutter-2.so.0)
#5 0x00007f98b87a1172 n/a (libmutter-2.so.0)
#6 0x00007f98b86f9dc0 meta_clutter_init (libmutter-2.so.0)
#7 0x00007f98b8742e2e meta_init (libmutter-2.so.0)
#8 0x0000564959ceacda main (gnome-shell)
#9 0x00007f98baf7df4a __libc_start_main (libc.so.6)
#10 0x0000564959ceb14a _start (gnome-shell)

Stack trace of thread 525:
#0 0x00007f98bb04897b __poll (libc.so.6)
#1 0x00007f98ba247613 n/a (libglib-2.0.so.0)
#2 0x00007f98ba2479d2 g_main_loop_run (libglib-2.0.so.0)
#3 0x00007f98ba83fb78 n/a (libgio-2.0.so.0)
#4 0x00007f98ba26fcea n/a (libglib-2.0.so.0)
#5 0x00007f98bb31b08c start_thread (libpthread.so.0)
#6 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 527:
#0 0x00007f98bb04897b __poll (libc.so.6)
#1 0x00007f98ba247613 n/a (libglib-2.0.so.0)
#2 0x00007f98ba24772e g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f98a23acf4e n/a (libdconfsettings.so)
#4 0x00007f98ba26fcea n/a (libglib-2.0.so.0)
#5 0x00007f98bb31b08c start_thread (libpthread.so.0)
#6 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 529:
#0 0x00007f98bb3213bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f9892778664 n/a (nouveau_dri.so)
#2 0x00007f98927784b8 n/a (nouveau_dri.so)
#3 0x00007f98bb31b08c start_thread (libpthread.so.0)
#4 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 524:
#0 0x00007f98bb04897b __poll (libc.so.6)
#1 0x00007f98ba247613 n/a (libglib-2.0.so.0)
#2 0x00007f98ba24772e g_main_context_iteration (libglib-2.0.so.0)
#3 0x00007f98ba247782 n/a (libglib-2.0.so.0)
#4 0x00007f98ba26fcea n/a (libglib-2.0.so.0)
#5 0x00007f98bb31b08c start_thread (libpthread.so.0)
#6 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 532:
#0 0x00007f98bb3213bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f9892778664 n/a (nouveau_dri.so)
#2 0x00007f98927784b8 n/a (nouveau_dri.so)
#3 0x00007f98bb31b08c start_thread (libpthread.so.0)
#4 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 531:
#0 0x00007f98bb3213bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f9892778664 n/a (nouveau_dri.so)
#2 0x00007f98927784b8 n/a (nouveau_dri.so)
#3 0x00007f98bb31b08c start_thread (libpthread.so.0)
#4 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 526:
#0 0x00007f98bb04d879 syscall (libc.so.6)
#1 0x00007f98ba28e7ed g_cond_wait_until (libglib-2.0.so.0)
#2 0x00007f98ba219953 n/a (libglib-2.0.so.0)
#3 0x00007f98ba2706f6 n/a (libglib-2.0.so.0)
#4 0x00007f98ba26fcea n/a (libglib-2.0.so.0)
#5 0x00007f98bb31b08c start_thread (libpthread.so.0)
#6 0x00007f98bb052e7f __clone (libc.so.6)

Stack trace of thread 530:
#0 0x00007f98bb3213bd pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f9892778664 n/a (nouveau_dri.so)
#2 0x00007f98927784b8 n/a (nouveau_dri.so)
#3 0x00007f98bb31b08c start_thread (libpthread.so.0)
#4 0x00007f98bb052e7f __clone (libc.so.6)

Comment by Alexander (xander) - Tuesday, 10 April 2018, 17:37 GMT
Actually, Gnome Wayland session prior to 3.28 worked greatly with proprierary NVIDIA drivers (I have GeForce GTX 960). Now they've broken smth again.
AFAIU from logs, Wayland session (c1) crashes because Clutter backend fails to init. I've tried to rebuild clutter, clutter-gst and clutter-gtk packages from Arch's PKGBUILDs, but nothing has changed.
   log (4.2 KiB)
Comment by Dmitry Suzdalev (dimsuz) - Tuesday, 10 April 2018, 19:09 GMT
I was able to "work around" this crash by enabling "KMS" for proprietary nvidia driver as described here:
https://wiki.archlinux.org/index.php/NVIDIA#DRM_kernel_mode_setting

After I adjusted boot kernel options and rebuilt image with mkinitcpio (as instructed on wiki page above) and rebooted, "Gnome" (wayland) was back in GDM list and everything works good now, Wayland is back :)
I have also created an issue on Gnomes gitlab (copy&pasted bug description from here, I hope you don't mind), but no answer so far:
https://gitlab.gnome.org/GNOME/mutter/issues/102
Comment by Segey Tereschenko (partizan) - Friday, 18 May 2018, 18:13 GMT
Right now with
gdm 3.28.1-1
nvidia 396.24-3
I can not start wayland session either.

`journalctl --full -u gdm` output is not very useful.

```
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: start program: /usr/lib/gdm-wayland-session "gnome-session --autostart /usr/share/gdm/greeter/autostart --debug"
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: attempting to change state to SESSION_STARTED
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: opening session for program '/usr/lib/gdm-wayland-session'
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: jumping to VT 1
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: first setting graphics mode to prevent flicker
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: VT mode did need to be fixed
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: session opened creating reply...
мая 18 20:57:36 gdm-launch-environment][794]: GdmSessionWorker: state SESSION_STARTED
мая 18 20:57:36 gdm-launch-environment][794]: GdmSession worker: watching pid 820
мая 18 20:57:36 gdm[660]: GdmSession: Emitting 'session-started' signal with pid '820'
мая 18 20:57:36 gdm[660]: GdmDisplay: Greeter started
мая 18 20:57:36 gdm[660]: GdmManager: trying to register new display
мая 18 20:57:36 gdm[660]: GdmLocalDisplayFactory: display status changed: 2
мая 18 20:57:39 gdm[660]: GdmSession: Emitting 'session-exited' signal with exit code '0'
мая 18 20:57:39 gdm[660]: GdmSession: stopping conversation gdm-launch-environment
мая 18 20:57:39 gdm[660]: GdmSessionWorkerJob: Stopping job pid:794
мая 18 20:57:39 gdm[660]: GdmCommon: sending signal 15 to process 794
мая 18 20:57:39 gdm[660]: GdmDisplay: Greeter exited: 0
мая 18 20:57:39 gdm[660]: GdmDisplay: unmanage display
мая 18 20:57:39 gdm[660]: GdmDisplay: display lasted 2,673054 seconds
```


@dimsuz maybe you did something else besides enabling modesetting?
Comment by Sebastiaan Lokhorst (lonaowna) - Friday, 12 October 2018, 09:29 GMT
GDM 3.30.1 news: "disable wayland on proprietary nvidia machines for now"

https://gitlab.gnome.org/GNOME/gdm/blob/3.30.1/NEWS
Comment by Dmitry Suzdalev (dimsuz) - Tuesday, 16 October 2018, 10:49 GMT
Yes, GDM 3.30 hides Wayland completely for me.

I had to disable gdm and instead login through tty1 as described in Arch Wiki:
https://wiki.archlinux.org/index.php/GNOME#Wayland_sessions

And it works perfectly well! So it seems that this is some GDM-only bug.
Comment by Alexander (xander) - Tuesday, 16 October 2018, 10:58 GMT
Seems strange, but GNOME on Wayland is fully workable for now on my machine with GNOME stack 3.30.1 and Nvidia stack 410.57. GDM allows to select Wayland session (and it is selected by default) and login into it. System Monitor reports that there are "gdm-wayland-session" and "XWayland" processes running, so there is no doubt.
"nvidia-drm.modeset=1" is present in kernel command line, but I do not include any nvidia* modules in initcpio.
Comment by Dmitry Suzdalev (dimsuz) - Tuesday, 16 October 2018, 10:59 GMT
It seems that only owners of laptops with hybrid GPUs are affected. I am one of them.
Comment by Segey Tereschenko (partizan) - Wednesday, 17 October 2018, 06:21 GMT
@xander can you check your `glxinfo | grep Vendor` ?
Comment by Alexander (xander) - Wednesday, 17 October 2018, 18:03 GMT
Here it is:

~  glxinfo | grep Vendor
Vendor: VMware, Inc. (0xffffffff)

I think it's not that was expected, at least I didn't expect such result, huh.

Loading...