gnome-shell trap int3 no desktop ("Impossible to lock surface front buffer: Function not implemented" on Matrox graphics card)

Bug #1826025 reported by Gregory Stewart
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mutter
Fix Released
Unknown
mesa (Ubuntu)
Won't Fix
Low
Unassigned
mutter (Ubuntu)
Won't Fix
Low
Unassigned

Bug Description

After upgrade to 19.04, gnome-shell crashes on boot, leaving blinking cursor.

[ 498.989821] traps: gnome-shell[4066] trap int3 ip:7f7b604e6955 sp:7fff92106950 error:0 in libglib-2.0.so.0.6000.0[7f7b604ad000+80000]

Restarting gdm3 service results in the same trap.

ProblemType: Bug
DistroRelease: Ubuntu 19.04
Package: xorg 1:7.7+19ubuntu12
ProcVersionSignature: Ubuntu 4.18.0-13.14-generic 4.18.17
Uname: Linux 4.18.0-13-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
.proc.driver.nvidia.gpus.0000.02.00.0: Error: [Errno 21] Is a directory: '/proc/driver/nvidia/gpus/0000:02:00.0'
.proc.driver.nvidia.registry: Binary: ""
.proc.driver.nvidia.version:
 NVRM version: NVIDIA UNIX x86_64 Kernel Module 390.116 Sun Jan 27 07:21:36 PST 2019
 GCC version: gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1)
ApportVersion: 2.20.10-0ubuntu27
Architecture: amd64
CompizPlugins: [core,bailer,detection,composite,opengl,compiztoolbox,decor,regex,gnomecompat,animation,vpswitch,grid,resize,imgpng,place,session,move,snap,unitymtgrabhandles,mousepoll,workarounds,expo,wall,ezoom,fade,scale,unityshell]
Date: Tue Apr 23 09:56:22 2019
DistUpgraded: 2019-04-22 15:16:02,086 ERROR got error from PostInstallScript ./xorg_fix_proprietary.py (g-exec-error-quark: Failed to execute child process “./xorg_fix_proprietary.py” (No such file or directory) (8))
DistroCodename: disco
DistroVariant: ubuntu
DkmsStatus:
 nvidia, 390.116, 4.18.0-13-generic, x86_64: installed
 nvidia, 390.116, 5.0.0-13-generic, x86_64: installed
ExtraDebuggingInterest: Yes
GraphicsCard:
 Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a) (prog-if 00 [VGA controller])
   Subsystem: Super Micro Computer Inc MGA G200eW WPCM450 [15d9:0001]
 NVIDIA Corporation GP104 [GeForce GTX 1070] [10de:1b81] (rev a1) (prog-if 00 [VGA controller])
   Subsystem: Gigabyte Technology Co., Ltd GP104 [GeForce GTX 1070] [1458:3703]
InstallationDate: Installed on 2012-02-14 (2625 days ago)
InstallationMedia: Ubuntu-Server 11.10 "Oneiric Ocelot" - Release amd64 (20111011)
MachineType: Supermicro X8DT3
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.18.0-13-generic root=/dev/mapper/mizuno-root ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw nomdmonddf nomdmonisw nomdmonddf nomdmonisw
SourcePackage: xorg
Symptom: display
UpgradeStatus: Upgraded to disco on 2019-04-22 (0 days ago)
dmi.bios.date: 07/09/2018
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 2.2
dmi.board.asset.tag: 1234567890
dmi.board.name: X8DT3
dmi.board.vendor: Supermicro
dmi.board.version: 2.0
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 17
dmi.chassis.vendor: Supermicro
dmi.chassis.version: 1234567890
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr2.2:bd07/09/2018:svnSupermicro:pnX8DT3:pvr1234567890:rvnSupermicro:rnX8DT3:rvr2.0:cvnSupermicro:ct17:cvr1234567890:
dmi.product.family: 1234567890
dmi.product.name: X8DT3
dmi.product.sku: To Be Filled By O.E.M.
dmi.product.version: 1234567890
dmi.sys.vendor: Supermicro
version.compiz: compiz 1:0.9.14.0+19.04.20190223.1-0ubuntu1
version.libdrm2: libdrm2 2.4.97-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 19.0.2-1ubuntu1
version.libgl1-mesa-glx: libgl1-mesa-glx 19.0.2-1ubuntu1
version.nvidia-graphics-drivers: nvidia-graphics-drivers-* N/A
version.xserver-xorg-core: xserver-xorg-core 2:1.20.4-1ubuntu3
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.10.6-1
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:19.0.1-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.917+git20180925-2
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.16-1
xserver.bootTime: Mon Apr 22 20:53:09 2019
xserver.configfile: /home/greg/xorg.conf.new
xserver.devices:

xserver.logfile: /var/log/Xorg.0.log
xserver.outputs:

xserver.version: 2:1.20.4-1ubuntu3

Revision history for this message
Gregory Stewart (gstewart-h) wrote :
affects: xorg (Ubuntu) → gnome-shell (Ubuntu)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. It sounds like some part of the system has crashed. To help us find the cause of the crash please follow these steps:

1. Look in /var/crash for crash files and if found run:
    ubuntu-bug YOURFILE.crash
Then tell us the ID of the newly-created bug.

2. If step 1 failed then look at https://errors.ubuntu.com/user/ID where ID is the content of file /var/lib/whoopsie/whoopsie-id on the machine. Do you find any links to recent problems on that page? If so then please send the links to us.

3. If step 2 also failed then apply the workaround from bug 994921, reboot, reproduce the crash, and retry step 1.

Please take care to avoid attaching .crash files to bugs as we are unable to process them as file attachments. It would also be a security risk for yourself.

Changed in gnome-shell (Ubuntu):
status: New → Incomplete
Revision history for this message
Gregory Stewart (gstewart-h) wrote :
  • syslog Edit (45.3 KiB, application/octet-stream)

No files in /var/crash

No recent issues at https://errors.ubuntu.com/user/fb9e5fb71e92d21ebe2afac92a428d6eea824f5589e0f6ce0091c409672afddf8eae235d2f465417f7a38369af1cf550eef2e8774386815dad2fad787da75334

Rebooted to reproduce gnome-crash

From /var/log/syslog:
Apr 24 08:55:18 mizuno gnome-shell[2699]: Impossible to lock surface front buffer: Function not implemented
Apr 24 08:55:18 mizuno kernel: [ 95.258359] traps: gnome-shell[2699] trap int3 ip:7f4c0bf54955 sp:7ffdbee1e190 error:0 in libglib-2.0.so.0.6000.0[7f4c0bf1b000+80000]

Still no files in /var/crash or recent issues at whoopsie link

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thanks.

I wonder if this comes under the "send info to canonical" option chosen on first login. Maybe if you choose "No" then that also means crash reports don't get sent...? :(

We'll need to find out how to flip that option to test it.

Changed in gnome-shell (Ubuntu):
status: Incomplete → New
Changed in glib2.0 (Ubuntu):
importance: Undecided → High
Changed in gnome-shell (Ubuntu):
importance: Undecided → High
Changed in gdm3 (Ubuntu):
importance: Undecided → High
Revision history for this message
Sebastien Bacher (seb128) wrote :

Without having a backtrace it's a bit tricky to debug.

To figure out why apport isn't working, could you look at the content of /var/log/apport.log to see if there is anything useful there? Maybe try enabling apport by editing /etc/default/apport and restarting.

If apport doesn't work for some reason it would be possible to manually attach gdb from a vt (if you switch to one, gdm respawning might make that difficult) or from a ssh login.

The logs also have that error which could be part of the issue
'Failed to load /usr/lib/xorg/modules/drivers/xrdpdev_drv.so: /usr/lib/xorg/modules/drivers/xrdpdev_drv.so: undefined symbol: rdpRRModeDestroy'

Could you give the output of "dpkg -l | grep rdp" and maybe uninstall xorgxrdp and see if that makes a difference?

Revision history for this message
Sebastien Bacher (seb128) wrote :

The log also has
'[ 601.234] (EE) mga: The PCI device 0x532 at 01@00:03:0 has a kernel module claiming it.
[ 601.234] (EE) mga: This driver cannot operate until it has been unloaded.
[ 601.235] (EE) [drm] Failed to open DRM device for pci:0000:02:00.0: -2'

Unsure that has to do with the issue though

Revision history for this message
Gregory Stewart (gstewart-h) wrote :

apport is enabled.

From /var/log/apport.log.1:

ERROR: apport (pid 3078) Wed Apr 24 08:55:18 2019: called for pid 2699, signal 5, core limit 0, dump mode 1
ERROR: apport (pid 3078) Wed Apr 24 08:55:18 2019: executable: /usr/bin/gnome-shell (command line "/usr/bin/gnome-shell")
ERROR: apport (pid 3078) Wed Apr 24 08:55:18 2019: debug: session gdbus call: (false,)

ERROR: apport (pid 3078) Wed Apr 24 08:55:18 2019: happens for shutting down session, ignoring

From dpkg -l | grep rdp:

ii libfreerdp-client2-2:amd64 2.0.0~git20190204.1.2693389a+dfsg1-1 amd64 Free Remote Desktop Protocol library (client library)
ii libfreerdp-common1.1.0:amd64 1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1 amd64 Free Remote Desktop Protocol library (common library)
ii libfreerdp-plugins-standard:amd64 1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1 amd64 RDP client for Windows Terminal Services (plugins)
ii libfreerdp-utils1.1:amd64 1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1 amd64 Free Remote Desktop Protocol library (freerdp-utils library)
rc libfreerdp1:amd64 1.0.2-2ubuntu1 amd64 RDP client for Windows Terminal Services (library)
ii libfreerdp2-2:amd64 2.0.0~git20190204.1.2693389a+dfsg1-1 amd64 Free Remote Desktop Protocol library (core library)
ii remmina-plugin-rdp:amd64 1.3.3+dfsg-2ubuntu1 amd64 RDP plugin for Remmina
ii xorgxrdp 1:0.2.9-1 amd64 Remote Desktop Protocol (RDP) modules for X.org
ii xrdp 0.9.9-1 amd64 Remote Desktop Protocol (RDP) server

Revision history for this message
Gregory Stewart (gstewart-h) wrote :

Uninstalled xorgxrdp, no change:

/var/log/apport.log:
ERROR: apport (pid 3174) Tue Apr 30 16:47:43 2019: called for pid 2790, signal 5, core limit 0, dump mode 1
ERROR: apport (pid 3174) Tue Apr 30 16:47:43 2019: executable: /usr/bin/gnome-shell (command line "/usr/bin/gnome-shell")
ERROR: apport (pid 3174) Tue Apr 30 16:47:43 2019: debug: session gdbus call: (false,)

ERROR: apport (pid 3174) Tue Apr 30 16:47:43 2019: happens for shutting down session, ignoring

syslog:

Apr 30 16:47:43 mizuno kernel: [ 101.347616] traps: gnome-shell[2790] trap int3 ip:7efffdf69955 sp:7ffc6beecca0 error:0 in libglib-2.0.so.0.6000.0[7efffdf30000+80000]
Apr 30 16:47:43 mizuno gnome-shell[2790]: Impossible to lock surface front buffer: Function not implemented

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

It appears this message keeps happening with the gnome-shell crash:

  "Impossible to lock surface front buffer: Function not implemented"

that's from mutter's "native" (Wayland) backend:

  next_bo = gbm_surface_lock_front_buffer (gbm_surface);

  if (!next_bo)
    {
      g_error ("Impossible to lock surface front buffer: %m");
      return FALSE;
    }

so it means your kernel graphics driver (mgag200) does not fully support Wayland sessions.

Please just use Xorg sessions instead (log into "Ubuntu" instead of "Ubuntu on Wayland").

summary: - gnome-shell trap int3 no desktop
+ gnome-shell trap int3 no desktop (MGA G200eW fails when calling
+ gbm_surface_lock_front_buffer)
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: gnome-shell trap int3 no desktop (MGA G200eW fails when calling gbm_surface_lock_front_buffer)

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mesa (Ubuntu):
status: New → Confirmed
affects: gnome-shell (Ubuntu) → mesa (Ubuntu)
Changed in mutter (Ubuntu):
status: New → Confirmed
affects: glib2.0 (Ubuntu) → mutter (Ubuntu)
Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: gnome-shell trap int3 no desktop (Matrox MGA G200eW fails when calling gbm_surface_lock_front_buffer)
affects: gdm3 (Ubuntu) → linux (Ubuntu)
summary: - gnome-shell trap int3 no desktop (MGA G200eW fails when calling
+ gnome-shell trap int3 no desktop (Matrox MGA G200eW fails when calling
gbm_surface_lock_front_buffer)
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
no longer affects: linux (Ubuntu)
summary: - gnome-shell trap int3 no desktop (Matrox MGA G200eW fails when calling
- gbm_surface_lock_front_buffer)
+ gnome-shell trap int3 no desktop ("Impossible to lock surface front
+ buffer: Function not implemented" on Matrox graphics card)
Changed in mesa (Ubuntu):
importance: High → Low
Changed in mutter (Ubuntu):
importance: High → Low
Changed in mesa (Ubuntu):
status: New → Triaged
Changed in mutter (Ubuntu):
status: New → Triaged
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Also, to avoid Wayland fully, please edit /etc/gdm3/custom.conf and uncomment:

  #WaylandEnable=false

then reboot.

Changed in mutter:
status: Unknown → New
Revision history for this message
Gregory Stewart (gstewart-h) wrote :

I didn't know how to log into "Ubuntu" instead of "Ubuntu on Wayland" since I only got a blinking cursor and no logon prompt. I edited /etc/gdm3/custom.conf and rebooted.

Successfully got a GUI logon prompt and was able to log in to the desktop.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Great!

By the way, one possible reason why you were unable to follow comment #2 is that gdm is designed to catch mutter/gnome-shell crashes in the Wayland backend (which it tries first). If such a crash occurs then it is meant to automatically fall back to Xorg.

Regardless of whether the automatic fallback was working for you, that crash handling done by gdm would possibly prevent any crash in mutter/gnome-shell Wayland start-up from being saved and sent to Ubuntu :(

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for reporting this bug to Ubuntu.
Ubuntu 19.04 (disco) reached end-of-life on January 23, 2020.

See this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We appreciate that this bug may be old and you might not be interested in discussing it any more. But if you are then please upgrade to the latest Ubuntu version and re-test. If you then find the bug is still present in the newer Ubuntu version, please add a comment here telling us which new version it is in and change the bug status to Confirmed.

Changed in mutter (Ubuntu):
status: Triaged → Won't Fix
Changed in mesa (Ubuntu):
status: Triaged → Won't Fix
Changed in mutter:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.