Wayland Hangs on Display Rotation, addition/removal, and display sleep

Tested on 32.3.1 up to 32.5.1 on jetson nano. When using the gnome wayland implementation, rotating the screen (whether through gui or any command) causes a hang of gdm/wayland process. Sometimes it doesn’t happen the first time but usually within the first few times you will get a hang on gdm thread (GUI doesn’t respond and gdm thread is at 100% when viewed over ssh).

A hang can/will also happen on connecting another display/removing a display.

When display begins to go to sleep (via timeout/dpms), the GUI also hangs.

Tested and confirmed on multiple devices.

journalctl logs when the hang happens

Jul 29 21:39:59 gman-nano gnome-shell[6532]: JS ERROR: Exception in callback for signal: position-changed: TypeError: this._rect is null
                                             getCurrentRect@resource:///org/gnome/shell/ui/keyboard.js:561:22
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onFocusPositionChanged@resource:///org/gnome/shell/ui/keyboard.js:643:20
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _emit@resource:///org/gnome/gjs/modules/signals.js:128:27
                                             _setCurrentWindow/this._currentWindowPositionId<@resource:///org/gnome/shell/ui/keyboard.js:535:21
Jul 29 21:39:59 gman-nano gnome-shell[6532]: JS WARNING: [resource:///org/gnome/shell/ui/workspaceThumbnail.js 891]: reference to undefined property "_s
Jul 29 21:39:59 gman-nano gsd-color[7090]: unable to get EDID for xrandr-HDMI-1: unable to get EDID for output
Jul 29 21:40:03 gman-nano gsd-color[7090]: unable to get EDID for xrandr-HDMI-1: unable to get EDID for output
Jul 29 21:40:07 gman-nano gnome-shell[6532]: JS ERROR: Exception in callback for signal: position-changed: TypeError: this._rect is null
                                             getCurrentRect@resource:///org/gnome/shell/ui/keyboard.js:561:22
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _onFocusPositionChanged@resource:///org/gnome/shell/ui/keyboard.js:643:20
                                             wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
                                             _emit@resource:///org/gnome/gjs/modules/signals.js:128:27
                                             _setCurrentWindow/this._currentWindowPositionId<@resource:///org/gnome/shell/ui/keyboard.js:535:21
Jul 29 21:40:07 gman-nano gsd-color[7090]: unable to get EDID for xrandr-HDMI-1: unable to get EDID for output
Jul 29 21:40:45 gman-nano kernel: usb 1-3.2: USB disconnect, device number 6
Jul 29 21:40:57 gman-nano colord[6299]: failed to get session [pid 7981]: No data available
Jul 29 21:40:57 gman-nano colord[6299]: CdMain: failed to read /proc/7981/cmdline: Failed to open file “/proc/7981/cmdline”: No such file or directory

Hi,
Could you please provide steps for reproducing the issue? We would like to reproduce it and do investigation.

starting with the 32.5.1 image, do the normal flashing procedure, boot, setup, etc.

  1. Make sure that you are using the gdm3 display manager and edit /etc/gdm3/custom.conf, change the line WaylandEnable=false to WaylandEnable=true

  2. In /etc/modprobe.d/tegra-udrm.conf, uncomment the line:
    #options tegra-udrm modeset=1
    (Remove ‘#’ from the start of the line.)

  3. In /etc/systemd/nv.sh, change:
    DISABLE_MESA_EGL=“1”
    To:
    DISABLE_MESA_EGL=“0”

  4. In /etc/systemd/system/nvargus-daemon.service, stop the nvargus daemon from being launched on boot by inserting ‘;’ at the beginning of the line:
    ExecStart=/usr/sbin/nvargus-daemon

  5. Then reboot and select the Ubuntu wayland boot option.
    To trigger the hang, all thats needed it so go to ubuntu settings-> display-> then change the rotation of the screen a few times. It should hang at some point

Hi,
Please execute the steps and try:

2.For Weston 6.0 use the tegra_drm driver:
$ sudo ln -sf /usr/lib/aarch64-linux-gnu/tegra/libnvgbm.so /usr/lib/aarch64-linux-gnu/libgbm.so.1
$ sudo modprobe tegra-udrm modeset=1

The steps are in gstreamer user guide

I have tested manually doing the symlink and modprobe. Same issue

Hi @theofficialgman ,

This seems a known issue to our team. We are still discussing this issue internally.

Does your project have to use the xwayland to develop?

It is more about keeping the options open. Ideally both xorg and wayland (with xwayland) should be free of these pretty fundamental bugs. Currently xorg is not ideal due to the rotation/composition stutter issue. Wayland doesn’t seem to have the stutter issue on rotation but it is unfeasible due to the hang that occurs.

1 Like

@WayneWWW any update on this wayland hang issue?

No, currently this won’t fix.