LIBGL_ALWAYS_INDIRECT causes firefox crashes

Bug #1072711 reported by Alkis Georgopoulos on 2012-10-29
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
LTSP5
High
Alkis Georgopoulos
xserver-xorg-video-nouveau (Ubuntu)
Undecided
Unassigned

Bug Description

In some cases, the default LIBGL_ALWAYS_INDIRECT=true is causing the following problems on thin clients:
 * When starting firefox, xorg crashes, without any relevant messages in .xsession-errors or in Xorg.log.
 * When *closing* chromium-browser, xorg crashes.

The first of the setups where this was observed had the following graphics card on both the server and the clients, and had no proprietary drivers installed:

# lspci -nn -k | grep -A 2 VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV18 [GeForce4 MX 440 AGP 8x] [10de:0181] (rev c1)
         Kernel driver in use: nouveau
         Kernel modules: nouveau, nvidiafb

That's on Ubuntu Precise, fully updated.

Alkis Georgopoulos (alkisg) wrote :

In another occurance of the problem, the client had:

# lspci -nn -k |grep -A 2 VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] [10de:002d] (rev 15)
Kernel driver in use: nouveau
Kernel modules: nouveau, nvidiafb, rivafb

...while the server did not have nvidia in that case:
# lspci -nn -k | grep -A 2 VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation 4 Series Chipset Integrated Graphics Controller [8086:2e22] (rev 03)
 Subsystem: Hewlett-Packard Company Device [103c:2a94]
 Kernel driver in use: i915

Alkis Georgopoulos (alkisg) wrote :

Third case:

# lspci -nn -k | grep -A 2 VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] [10de:002d] (rev 15)
        Kernel driver in use: nouveau
        Kernel modules: nouveau, nvidiafb, rivafb

We should probably start by disabling LIBGL_ALWAYS_INDIRECT for all nvidia cards, and then try to hunt down the actual bug.

Alkis Georgopoulos (alkisg) wrote :

Attaching Xorg.log where the segfault in nouveau_vieux_dri.so can be seen.

An easy way to reproduce the problem without LTSP:
(from a client with an nvidia card):
$ ssh -X server
$ LIBGL_ALWAYS_INDIRECT=true firefox

One workaround mentioned in #nouveau:
(08:34:05 πμ) airlied: got all the accel you are going to get you might just mv the nouveau_vieux_dri.so aside

Tested it and it works fine, maybe we can do that on in /usr/share/ldm/rc.d/X51-opengl (inside the "if" so that it affects thin clients only).

Alkis Georgopoulos (alkisg) wrote :

In this case, although with Precise not updated for a couple of months, the problem did NOT happen:

# lspci -nn -k | grep -A 2 VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV11 [GeForce2 MX/MX 400] [10de:0110] (rev b2)
        Kernel driver in use: nouveau
        Kernel modules: nouveau, nvidiafb, rivafb

Alkis Georgopoulos (alkisg) wrote :

Some people are reporting that this doesn't happen in a fresh 12.04.1 installation, but it happens after they `apt-get update` their server.

Alkis Georgopoulos (alkisg) wrote :

Another teacher reports the same problem in these clients:

root@ltsp135:~# lspci -nn -k | grep -A 2 VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV18
[GeForce4 MX 4000] [10de:0185] (rev c1)
   Subsystem: Micro-Star International Co., Ltd. Device [1462:9363]
   Kernel driver in use: nouveau

Launchpad Janitor (janitor) wrote :

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

Changed in xserver-xorg-video-nouveau (Ubuntu):
status: New → Confirmed
Christian (c-pradelli) wrote :

I having this same problem in all my ltsp clients that have nvidia video card.
I'm using Ubuntu 12.04.1 64 bits.
Is there any workarround?

On Fri, Nov 30, 2012 at 09:25:38PM -0000, Christian wrote:
> I having this same problem in all my ltsp clients that have nvidia video card.
> I'm using Ubuntu 12.04.1 64 bits.
> Is there any workarround?

You can create an empty file to override it:

  sudo mkdir -p /opt/ltsp/i386/etc/ldm/rc.d/
  sudo touch /opt/ltsp/i386/etc/ldm/rc.d/X51-opengl
  sudo ltsp-update-image

Adjust i386 for amd64 if you're using amd64 clients.

Note that if it is ever fixed properly, you'll want to remove this empty file.

live well,
  vagrant

Alkis Georgopoulos (alkisg) wrote :

Fix committed in http://bazaar.launchpad.net/~ltsp-upstream/ltsp/ldm-trunk/revision/1453.
It is just a temporary workaround, it should be removed in the future once the nouveau bug is resolved.

It'd be nice if someone could SRU this, as many LTSP users are affected.

Changed in ltsp:
assignee: nobody → Alkis Georgopoulos (alkisg)
importance: Undecided → High
status: New → Fix Committed
Alkis Georgopoulos (alkisg) wrote :

The committed fix is applied too late, after xorg is loaded. So it's not working on the first login, but only on subsequent logins.
The `rm -f /usr/lib/i386-linux-gnu/dri/nouveau_vieux_dri.so` command should be run from some init-ltsp.d script instead.

A workaround that doesn't involve updating the chroot is to put this in lts.conf:
[Default]
RCFILE_01="rm -f /usr/lib/i386-linux-gnu/dri/nouveau_vieux_dri.so"

Changed in ltsp:
status: Fix Committed → In Progress
Alkis Georgopoulos (alkisg) wrote :
Changed in ltsp:
status: In Progress → Fix Committed
Alkis Georgopoulos (alkisg) wrote :

Fix released in LTSP 5.4.5.

Changed in ltsp:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments