X2Go Bug report logs - #1094
When connected to a x2go server that has nVidia's binary drivers most software will segfault.

Package: x2goserver; Maintainer for x2goserver is X2Go Developers <x2go-dev@lists.x2go.org>; Source for x2goserver is src:x2goserver.

Reported by: zingmars <zingmars@playgineering.com>

Date: Tue, 27 Sep 2016 17:40:01 UTC

Severity: normal

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#1094; Package x2goserver. (Tue, 27 Sep 2016 17:40:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to zingmars <zingmars@playgineering.com>:
New Bug report received and forwarded. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Tue, 27 Sep 2016 17:40:02 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.x2go.org (full text, mbox):

From: zingmars <zingmars@playgineering.com>
To: submit@bugs.x2go.org
Subject: When connected to a x2go server that has nVidia's binary drivers most software will segfault.
Date: Tue, 27 Sep 2016 20:37:23 +0300
[Message part 1 (text/plain, inline)]
Package: x2goserver

Version: 4.0.1.19


When I connect to a x2go server that has an nVidia GPU using nVidia's
binary drivers most software (such as Firefox, Thunderbird, Cheese,
Transmission GUI etc.) will segfault on launch.

This can seemingly be fixed by setting the LD_LIBRARY_PATH variable to
wherever the nVidia drivers are (i.e. for nVidia-361 drivers just run
LD_LIBRARY_PATH=/usr/lib/nvidia-361" in the server's terminal.
Alternatively it seems that you can switch to the Noveau driver and the
issue won't occur, but this might not always be an option.

There's also a thread on ubuntuforums
(https://ubuntuforums.org/showthread.php?t=2337814) that also has a
video of this bug in action.

I'm using Ubuntu 16.04 with MATE.

[m7g2NXy.png (image/png, attachment)]
[signature.asc (application/pgp-signature, attachment)]

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#1094; Package x2goserver. (Thu, 11 May 2017 19:20:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Matthew Moskewicz <moskewcz@gmail.com>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 11 May 2017 19:20:02 GMT) Full text and rfc822 format available.

Message #10 received at 1094@bugs.x2go.org (full text, mbox):

From: Matthew Moskewicz <moskewcz@gmail.com>
To: 1094@bugs.x2go.org
Subject: When connected to a x2go server that has nVidia's binary drivers most software will segfault.
Date: Thu, 11 May 2017 12:15:03 -0700
[Message part 1 (text/plain, inline)]
i ran into this issue on ubuntu 16.04 (64 bit), and i can confirm that both
workarounds (using Nouveau and setting LD_LIBRARY_PATH=/usr/lib/nvidia-375
) fix the issue.

to add a bit more info, it seems that in the failing case, glxinfo (or
presumably the other apps), can't find the GLX_indirect library that it
trys to load dynamically, which has something to glvnd:
https://github.com/NVIDIA/libglvnd

looking at ldd, you can see that glxinfo is finding the GL libraries fine,
using the system-set ld.so.conf settings that the nvidia driver sets up:
moskewcz@mari:/etc/ld.so.conf.d$ ldd /usr/bin/glxinfo
    linux-vdso.so.1 =>  (0x00007ffe4779c000)
    libGL.so.1 => /usr/lib/nvidia-375/libGL.so.1 (0x00007fcd87f35000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
(0x00007fcd87bfb000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcd87831000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcd8762d000)
    libGLX.so.0 => /usr/lib/nvidia-375/libGLX.so.0 (0x00007fcd873fd000)
...

the paths are set here:
moskewcz@mari:/etc/ld.so.conf.d$ cat
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf
/usr/lib/nvidia-375
/usr/lib32/nvidia-375

using strace, we can see the difference that setting LD_LIBRARY_PATH makes:

# working case, opens the correct lib:
moskewcz@mari:/etc/ld.so.conf.d$ LD_LIBRARY_PATH=/usr/lib/nvidia-375 strace
glxinfo 2>&1 | grep GLX_ind
open("/usr/lib/nvidia-375/tls/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) =
-1 ENOENT (No such file or directory)
open("/usr/lib/nvidia-375/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = 4

# non-working case, fails to open libGLX_indirect.so:
moskewcz@mari:/etc/ld.so.conf.d$ strace glxinfo 2>&1 | grep GLX_ind
open("/lib/x86_64-linux-gnu/tls/x86_64/libGLX_indirect.so.0",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/tls/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC)
= -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/x86_64/libGLX_indirect.so.0",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/x86_64/libGLX_indirect.so.0",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/tls/libGLX_indirect.so.0",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/x86_64/libGLX_indirect.so.0",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC)
= -1 ENOENT (No such file or directory)
open("/lib/tls/x86_64/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
open("/lib/tls/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No
such file or directory)
open("/lib/x86_64/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT
(No such file or directory)
open("/lib/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such
file or directory)
open("/usr/lib/tls/x86_64/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
open("/usr/lib/tls/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT
(No such file or directory)
open("/usr/lib/x86_64/libGLX_indirect.so.0", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
[...snip many more repeats of failed-to-load libGLX_indirect...]


however, it's not clear why, under x2go, the nvidia code isn't searching in
/usr/lib/nvidia-375 -- but it's not clear what code it uses for the DL
loading, maybe it is somewhere in the glvnd code.

mwm
[Message part 2 (text/html, inline)]

Send a report that this bug log contains spam.


X2Go Developers <owner@bugs.x2go.org>. Last modified: Thu Dec 13 16:07:51 2018; Machine Name: ymir.das-netzwerkteam.de

X2Go Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.