[regression][nvidia] gnome-shell/budgie-wm crashed with SIGABRT "assertion failed: (width > 0 && height > 0 && scale > 0)" in meta_monitor_manager_xrandr_update_screen_size

Bug #1822616 reported by Matt Parker on 2019-04-01
24
This bug affects 3 people
Affects Status Importance Assigned to Milestone
budgie-desktop (Ubuntu)
High
Unassigned
gnome-shell (Ubuntu)
High
Unassigned
mutter (Ubuntu)
High
Marco Trevisan (Treviño)
nvidia-graphics-drivers-390 (Ubuntu)
High
Unassigned
nvidia-graphics-drivers-410 (Ubuntu)
High
Unassigned
nvidia-graphics-drivers-418 (Ubuntu)
High
Unassigned

Bug Description

https://errors.ubuntu.com/problem/de2c123796506b10cd9d03070c91b581d7c6ae0c

WORKAROUNDS

Don't use kernel parameter nvidia-drm.modeset=1

- or -

Before trying to log in:

1. Ctrl+Alt+F4, log in to VT4 and run:

   sudo Xorg :4 vt4

2. Ctrl+Alt+F1, wait for the log screen to reappear, then log in normally.

ORIGINAL DESCRIPTION

I am unable to use the NVIDIA drivers Ubuntu Budgie installed with 3 vertical displays. I changed to the X.org driver and rebooted. This error popped up on reboot. And now only one display is working. This one display is only working in landscape instead of portrait mode.

ProblemType: Crash
DistroRelease: Ubuntu 19.04
Package: budgie-core 10.5-0ubuntu1
Uname: Linux 5.0.2-050002-generic x86_64
ApportVersion: 2.20.10-0ubuntu23
Architecture: amd64
CurrentDesktop: Budgie:GNOME
Date: Mon Apr 1 09:16:50 2019
ExecutablePath: /usr/bin/budgie-wm
InstallationDate: Installed on 2019-01-10 (80 days ago)
InstallationMedia: Ubuntu-Budgie 18.04.1 LTS "Bionic Beaver" - Release amd64 (20180725.1)
ProcCmdline: budgie-wm
ProcEnviron:
 LANGUAGE=en_US
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
Signal: 6
SourcePackage: budgie-desktop
StacktraceTop:
 ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
 g_assertion_message_expr () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
 ?? () from /usr/lib/x86_64-linux-gnu/libmutter-4.so.0
 ?? () from /usr/lib/x86_64-linux-gnu/libmutter-4.so.0
 ?? () from /usr/lib/x86_64-linux-gnu/libmutter-4.so.0
Title: budgie-wm crashed with SIGABRT in g_assertion_message_expr()
UpgradeStatus: Upgraded to disco on 2019-03-25 (6 days ago)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
separator:

Related branches

Matt Parker (parkerm77) wrote :
Changed in budgie-desktop (Ubuntu):
importance: Undecided → Medium
summary: - budgie-wm crashed with SIGABRT in g_assertion_message_expr()
+ budgie-wm crashed with SIGABRT in g_assertion_message()
tags: removed: need-amd64-retrace

Please try downloading *.deb from here:

  https://launchpad.net/ubuntu/+source/mutter/3.32.0-1/+build/16489975

and installing them (only the .deb files). Then reboot.

Does that avoid the bug?

summary: - budgie-wm crashed with SIGABRT in g_assertion_message()
+ budgie-wm crashed with SIGABRT "assertion failed: (width > 0 && height >
+ 0 && scale > 0)" in meta_monitor_manager_xrandr_update_screen_size
tags: added: xrandr-scaling
Changed in budgie-desktop (Ubuntu):
status: New → Incomplete
Changed in mutter (Ubuntu):
status: New → Incomplete
summary: - budgie-wm crashed with SIGABRT "assertion failed: (width > 0 && height >
- 0 && scale > 0)" in meta_monitor_manager_xrandr_update_screen_size
+ gnome-shell/budgie-wm crashed with SIGABRT "assertion failed: (width > 0
+ && height > 0 && scale > 0)" in
+ meta_monitor_manager_xrandr_update_screen_size
description: updated
summary: - gnome-shell/budgie-wm crashed with SIGABRT "assertion failed: (width > 0
- && height > 0 && scale > 0)" in
+ [nvidia] gnome-shell/budgie-wm crashed with SIGABRT "assertion failed:
+ (width > 0 && height > 0 && scale > 0)" in
meta_monitor_manager_xrandr_update_screen_size
tags: added: nvidia

Confirmed reverting to mutter 3.32.0-1 fixes this crash. But I am having other issues too.

Changed in budgie-desktop (Ubuntu):
status: Incomplete → Confirmed
Changed in gnome-shell (Ubuntu):
status: Incomplete → Confirmed
Changed in mutter (Ubuntu):
status: Incomplete → Confirmed
Changed in mutter (Ubuntu):
assignee: nobody → Marco Trevisan (Treviño) (3v1n0)
Changed in budgie-desktop (Ubuntu):
importance: Medium → High
Changed in gnome-shell (Ubuntu):
importance: Undecided → High
Changed in mutter (Ubuntu):
importance: Undecided → High
Daniel van Vugt (vanvugt) wrote :

On my desktop this bug appears to have two causes, and undoing either one fixes it:

 * mutter 3.32.0-1ubuntu1
   Solution: Downgrade to mutter-3.32.0-1

 * nvidia-drm.modeset=1 kernel parameter
   Solution: Remove it

summary: - [nvidia] gnome-shell/budgie-wm crashed with SIGABRT "assertion failed:
- (width > 0 && height > 0 && scale > 0)" in
+ [regression][nvidia] gnome-shell/budgie-wm crashed with SIGABRT
+ "assertion failed: (width > 0 && height > 0 && scale > 0)" in
meta_monitor_manager_xrandr_update_screen_size
Changed in mutter (Ubuntu):
status: Confirmed → In Progress

Can you please test packages from this PPA [1] and see if the issue is fixed for you?

If not I can be even more conservative in the checks :)

 [1] https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/3695

Changed in gnome-shell (Ubuntu):
status: Confirmed → Won't Fix
Changed in budgie-desktop (Ubuntu):
status: Confirmed → Won't Fix
Changed in budgie-desktop (Ubuntu):
status: Won't Fix → Invalid
Changed in gnome-shell (Ubuntu):
status: Won't Fix → Invalid
Daniel van Vugt (vanvugt) wrote :

Re comment #10, the crash still happens with mutter 3.32.0-1ubuntu2~randr+test2:

Apr 07 14:24:04 kab org.gnome.Shell.desktop[1615]: mutter:ERROR:../src/backends/x11/meta-monitor-manager-xrandr.c:168:meta_monitor_manager_xrandr_update_screen_size: assertion failed: (width > 0 && height > 0 && scale > 0)
Apr 07 14:24:05 kab org.gnome.Shell.desktop[1625]: mutter:ERROR:../src/backends/x11/meta-monitor-manager-xrandr.c:168:meta_monitor_manager_xrandr_update_screen_size: assertion failed: (width > 0 && height > 0 && scale > 0)
Apr 07 14:25:25 kab org.gnome.Shell.desktop[1940]: mutter:ERROR:../src/backends/x11/meta-monitor-manager-xrandr.c:168:meta_monitor_manager_xrandr_update_screen_size: assertion failed: (width > 0 && height > 0 && scale > 0)
Apr 07 14:25:26 kab org.gnome.Shell.desktop[1950]: mutter:ERROR:../src/backends/x11/meta-monitor-manager-xrandr.c:168:meta_monitor_manager_xrandr_update_screen_size: assertion failed: (width > 0 && height > 0 && scale > 0)

tags: added: nvidia-drm.modeset
Daniel van Vugt (vanvugt) wrote :

Fix proposed here: https://gitlab.gnome.org/3v1n0/mutter/merge_requests/1
That will at least make this particular crash impossible, and will close the bug.

P.S. An apparently unrelated problem which limits my ability to test the fix is that Xorg doesn't start properly with nvidia-drm.modeset=1 until after you have run it as root at least once. And if you do that then even this bug stops happening (no fix required). So there's something broken with basic Xorg when using nvidia-drm.modeset=1 and that might be the root cause here.

Changed in mutter (Ubuntu):
assignee: Marco Trevisan (Treviño) (3v1n0) → Daniel van Vugt (vanvugt)
Changed in nvidia-graphics-drivers-410 (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Changed in nvidia-graphics-drivers-418 (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Daniel van Vugt (vanvugt) wrote :

The Nvidia driver problem might be related to this, which I have also been seeing in other Nvidia bug reports recently:

Apr 07 15:58:06 kab /usr/lib/gdm3/gdm-x-session[1493]: (II) NVIDIA(0): Validated MetaModes:
Apr 07 15:58:06 kab /usr/lib/gdm3/gdm-x-session[1493]: (II) NVIDIA(0): "NULL"
Apr 07 15:58:06 kab /usr/lib/gdm3/gdm-x-session[1493]: (II) NVIDIA(0): Virtual screen size determined to be 640 x 480

That's a general Nvidia driver problem with Xorg and not a problem with mutter.

Daniel van Vugt (vanvugt) wrote :

And this shows the problem really is originating in the Nvidia driver:

$ xrandr --verbose
Screen 0: minimum 8 x 8, current 640 x 480, maximum 16384 x 16384

So the GPU has no CRTCs.

Daniel van Vugt (vanvugt) wrote :

WORKAROUND:

Before trying to log in, do this:

1. Ctrl+Alt+F4, log in to VT4 and run: sudo Xorg :4 vt4

2. Ctrl+Alt+F1, wait for the log screen to reappear, then log in normally. No crash.

Something about having run Xorg as root already seems to be enough to avoid the bug in the Nvidia driver which is the root cause here.

Daniel van Vugt (vanvugt) wrote :

Still, the fix to stop mutter crashing when it encounters the Nvidia bug is:
https://gitlab.gnome.org/3v1n0/mutter/merge_requests/1

description: updated
Changed in nvidia-graphics-drivers-390 (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Changed in mutter (Ubuntu):
assignee: Daniel van Vugt (vanvugt) → Marco Trevisan (Treviño) (3v1n0)
Daniel van Vugt (vanvugt) wrote :

I'm setting the Nvidia driver to Won't Fix. Not just because we can't fix those ourselves, but also the bug of reporting a GPU with no CRTCs is not going to be a bug for other Nvidia card types (pure compute cards with no graphics outputs). So it's a situation mutter needs to handle anyway.

Changed in nvidia-graphics-drivers-390 (Ubuntu):
status: Confirmed → Won't Fix
Changed in nvidia-graphics-drivers-410 (Ubuntu):
status: Confirmed → Won't Fix
Changed in nvidia-graphics-drivers-418 (Ubuntu):
status: Confirmed → Won't Fix
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mutter - 3.32.0-1ubuntu2

---------------
mutter (3.32.0-1ubuntu2) disco; urgency=medium

  * debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch:
    - Don't invert the screen size when rotation is enabled (LP: #1822513)
    - Remove unneeded cleanup changes
    - Use xcb checked function to set scaling to catch errors
    - Update screen size only after monitors modes have been derived
      (LP: #1822616)
    - Trigger a monitors rebuild only if scale has changed (LP: #1823485)
    - Only update UI scaling when output scaling is enabled (LP: #1822478)

 -- Marco Trevisan (Treviño) <email address hidden> Wed, 03 Apr 2019 19:19:59 -0400

Changed in mutter (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers