package: nx-libs
Hi,
since Debian Jessie (stable) switched from IceDove back to ThunderBird, TB crashes when the host is an amd64 machine and X2GoClient is running in PubApp mode. i386 is unaffected.
It happens with X2GoClient on Windows as well as on Linux, so it's not a matter of VcXsrv being too old/broken/whatever.
It also happens when all X2Go server components are installed from heuler.
It does NOT happen when you build nx-libs from source using the Debian Experimental repository.
So there's something in the stable nx-libs that's broken on amd64 only, and got fixed in the nx-libs version that is available via Debian Experimental.
Core-Devs, please advise how to fix this - should we dare making a new nx-libs release and declare it stable, based on what is in Debian Experimental (arguing that everything is better than what we currently have)? Or should we try to hunt down the offending code part and only patch that? If the latter, who's willing to take a stab at it? (We don't have a business case ATM, as all my TB-PubApp-users are still on i386, so no funding as of now.)
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
I would recommend disabling GLX by uncommenting this line in /etc/x2go/x2goagent.options :
#X2GO_NXAGENT_DEFAULT_OPTIONS+=" -extension GLX"
GLX is unusable with the current NX-Libs (even Arctica ones) but since the extension is enabled, some components still tries to use H/W acceleration for some parts. I get far better results (especially stability wise) with this option disabled.
I would even consider disabling it "by default" until a proper GLX support is added to nx-libs.
Regards, Walid Moghrabi
TRAVAUX.COM BAT I - PARC CEZANNE 2 290 AVENUE GALILEE - CS 80403 13591 AIX EN PROVENCE CEDEX 3
----- Mail original -----
De: "Stefan Baur" <X2Go-ML-1@baur-itcs.de> À: submit@bugs.x2go.org Cc: "Mihai Moldovan" <ionic@ionic.de>, "Mike Gabriel" <mike.gabriel@das-netzwerkteam.de> Envoyé: Vendredi 5 Mai 2017 16:30:41 Objet: [X2Go-Dev] Bug#1172: ThunderBird crashes in PubApp mode on amd64
package: nx-libs
Hi,
since Debian Jessie (stable) switched from IceDove back to ThunderBird, TB crashes when the host is an amd64 machine and X2GoClient is running in PubApp mode. i386 is unaffected.
It happens with X2GoClient on Windows as well as on Linux, so it's not a matter of VcXsrv being too old/broken/whatever.
It also happens when all X2Go server components are installed from heuler.
It does NOT happen when you build nx-libs from source using the Debian Experimental repository.
So there's something in the stable nx-libs that's broken on amd64 only, and got fixed in the nx-libs version that is available via Debian Experimental.
Core-Devs, please advise how to fix this - should we dare making a new nx-libs release and declare it stable, based on what is in Debian Experimental (arguing that everything is better than what we currently have)? Or should we try to hunt down the offending code part and only patch that? If the latter, who's willing to take a stab at it? (We don't have a business case ATM, as all my TB-PubApp-users are still on i386, so no funding as of now.)
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
DISCLAIMER: This e-mail is private and confidential and may contain proprietary or legally privileged information. It is for the intended recipient only. If you have received this email in error, please notify the author by replying to it and then destroy it. If you are not the intended recipient you must not use, disclose, distribute, copy, print or rely on this e-mail or any attachment. Thank you
Am 05.05.2017 um 17:33 schrieb Walid MOGHRABI:
I don't. Changing that value doesn't help at all - attempting to start ThunderBird in PubApp mode still crashes the entire X2Go session on amd64.
Tried restarting the service, even rebooting the server, no change.
-Stefan
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
On Fri, May 5, 2017 at 5:33 PM, Walid MOGHRABI <w.moghrabi@servicemagic.eu> wrote:
It is not "unusable". But nx offers an old version of GLX only. And there seem to be some applications that don't care for the version the X server (nxagent in this case) reports. So what should we do?
It is possible to implement a newer GLX version but that would need some investing quite some time. Unfortunately the current nx development staff does not have that time...
Regarding Thunderbird: does it still crash after setting gfx.xrender.enabled to true in about:config (respectively user.js)?
Uli
Btw: does Thunderbird work with this workaround?
http://wiki.x2go.org/doku.php/wiki:development:glx-xlib-workaround
On Fri, May 5, 2017 at 9:41 PM, Ulrich Sibiller <uli42@gmx.de> wrote:
Am 05.05.2017 um 22:17 schrieb Ulrich Sibiller:
Btw: does Thunderbird work with this workaround?
http://wiki.x2go.org/doku.php/wiki:development:glx-xlib-workaround
This fails at the "scons libgl-xlib" step:
scons: Reading SConscript files ... Checking for GCC ... yes Checking for Clang ... no scons: Found LLVM version 3.5.0 Checking for X11 (x11 xext xdamage xfixes)... yes Checking for XCB (x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8)... yes Checking for XF86VIDMODE (xxf86vm)... yes Checking for DRM (libdrm >= 2.4.38)... yes Checking for UDEV (libudev >= 151)... yes scons: done reading SConscript files. scons: Building targets ... Linking build/linux-x86_64-debug/mesa/gen_matypes ... Generating build/linux-x86_64-debug/glsl/glcpp/glcpp-parse.c ... /usr/bin/ld: cannot find -lz collect2: error: ld returned 1 exit status scons: *** [build/linux-x86_64-debug/mesa/gen_matypes] Error 1 scons: building terminated because of errors.
-Stefan
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243Ths fails
Am 07.05.2017 um 15:59 schrieb Stefan Baur:
Turns out you need to install zlib1g-dev and libedit-dev as well. However, this workaround doesn't help, either.
Thunderbird still crashes, as does "XFCE Terminal" and evince.
-Stefan
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
Am 05.05.2017 um 21:41 schrieb Ulrich Sibiller:
Regarding Thunderbird: does it still crash after setting gfx.xrender.enabled to true in about:config (respectively user.js)?
It defaults to true; changing it to false doesn't change the behavior, so, yes, it (still) crashes.
-Stefan
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
On Fri, May 5, 2017 at 4:30 PM, Stefan Baur <X2Go-ML-1@baur-itcs.de> wrote:
It is working for me with 3.5.99.7. So we already have fix.
The error message you posted is this: traps: x2goagent [3339] general protection ip:7f02464e2e6d sp:7ffef6c22150error:0 in libNX_X11.so.6.2[7f0246496000+123000]
So we have a problem in libNX_X11 which - in 3.5.9.77 - is on the current xorg upstream level 1.6.5. In nx-libs 3.5.0.32 it is rather old (about 1.3.3). I am curious if it is sufficient to ONLY copy libNX_X11.so* from 3.5.99.7 to your crashing installation. If that helps we could release 3.5.0.33 or 34 with that libX11 exchanged. This should generally be bit much less risky than just marking 3.5.99 as stable.
On the other hand: we have fixed lots of security and stability bugs in 3.5.99.x so using those versions is generally advisable (from my POV).
You could try to install libNX_X11-dbg and attach gdb to x2goagent (run "gdb -p $(pidof x2goagent)") just before starting thunderbird. When it crashes you'll get a backtrace. Using that information we can (hopefully) see if a quick backport could help. That would be the least invasive solution.
Comments?
Uli
Am 08.05.2017 um 00:07 schrieb Ulrich Sibiller:
[...]
Copying the single file over actually works. Though I don't know what other side effects it may have ...
[...]
I hope I did this right ... the package name was libnx-x11-6-dbg.
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". Attaching to process 6297 Reading symbols from /usr/lib/nx/bin/nxagent...(no debugging symbols found)...done. Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xext.so.6...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xext.so.6.4...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xext.so.6 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_X11.so.6...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_X11.so.6.2...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_X11.so.6 Reading symbols from /lib/x86_64-linux-gnu/libz.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libz.so.1 Reading symbols from /lib/x86_64-linux-gnu/libm.so.6...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libm-2.19.so...done. done. Loaded symbols for /lib/x86_64-linux-gnu/libm.so.6 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xpm.so.4...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xpm.so.4.11...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xpm.so.4 Reading symbols from /usr/lib/x86_64-linux-gnu/libXcomp.so.3...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libXcomp.so.3 Reading symbols from /usr/lib/x86_64-linux-gnu/libXcompext.so.3...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libXcompext.so.3 Reading symbols from /usr/lib/x86_64-linux-gnu/libXcompshad.so.3...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libXcompshad.so.3 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xrender.so.1...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xrender.so.1.2.2...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xrender.so.1 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xfixes.so.3...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xfixes.so.3.0...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xfixes.so.3 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xtst.so.6...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xtst.so.6.1...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xtst.so.6 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xdamage.so.1...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xdamage.so.1.0...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xdamage.so.1 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xrandr.so.2...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xrandr.so.2.0...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xrandr.so.2 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xcomposite.so.1...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xcomposite.so.1.0...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xcomposite.so.1 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xinerama.so.1...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xinerama.so.1.0...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xinerama.so.1 Reading symbols from /usr/lib/x86_64-linux-gnu/libNX_Xdmcp.so.6...Reading symbols from /usr/lib/debug//usr/lib/x86_64-linux-gnu/libNX_Xdmcp.so.6.0...done. done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libNX_Xdmcp.so.6 Reading symbols from /usr/lib/x86_64-linux-gnu/libxml2.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libxml2.so.2 Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libc-2.19.so...done. done. Loaded symbols for /lib/x86_64-linux-gnu/libc.so.6 Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libdl-2.19.so...done. done. Loaded symbols for /lib/x86_64-linux-gnu/libdl.so.2 Reading symbols from /lib/x86_64-linux-gnu/libpng12.so.0...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libpng12.so.0 Reading symbols from /usr/lib/x86_64-linux-gnu/libjpeg.so.62...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libjpeg.so.62 Reading symbols from /usr/lib/x86_64-linux-gnu/libstdc++.so.6...(no debugging symbols found)...done. Loaded symbols for /usr/lib/x86_64-linux-gnu/libstdc++.so.6 Reading symbols from /lib/x86_64-linux-gnu/libgcc_s.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/libgcc_s.so.1 Reading symbols from /lib/x86_64-linux-gnu/liblzma.so.5...(no debugging symbols found)...done. Loaded symbols for /lib/x86_64-linux-gnu/liblzma.so.5 Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done. done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /lib/x86_64-linux-gnu/libnss_files.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/libnss_files-2.19.so...done. done. Loaded symbols for /lib/x86_64-linux-gnu/libnss_files.so.2 0x00007f664a88b873 in __select_nocancel () at ../sysdeps/unix/syscall-template.S:81 81 ../sysdeps/unix/syscall-template.S: No such file or directory. (gdb) s 0x00007f664c34d969 in NXTransSelect () from /usr/lib/x86_64-linux-gnu/libXcomp.so.3 (gdb) s Single stepping until exit from function NXTransSelect, which has no line number information. _XSelect (maxfds=<optimized out>, readfds=0xbbc880, writefds=0x7ffc44d17650, exceptfds=<optimized out>, timeout=0x7ffc44d17790) at XlibInt.c:335 335 XlibInt.c: No such file or directory. (gdb) s 337 in XlibInt.c (gdb) s __GI___errno_location () at errno-loc.c:26 26 errno-loc.c: No such file or directory. (gdb) s 27 in errno-loc.c (gdb) s _XSelect (maxfds=<optimized out>, readfds=0xbbc880, writefds=0x7ffc44d17650, exceptfds=<optimized out>, timeout=0x7ffc44d17790) at XlibInt.c:339 339 XlibInt.c: No such file or directory. (gdb) s 350 in XlibInt.c (gdb) s
Program received signal SIGSEGV, Segmentation fault. _XData32 (dpy=dpy@entry=0x2539060, data=<optimized out>, data@entry=0x7f66477bcff4, len=101652, len@entry=109812) at XlibInt.c:3792 3792 in XlibInt.c (gdb) s
Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) quit
-Stefan
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
On Mon, May 8, 2017 at 1:53 AM, Stefan Baur <X2Go-ML-1@baur-itcs.de> wrote:
Not too much, since there's no change in functionality AFAICS. Good to know that this helps. So this could serve as a quick workaround.
I hope I did this right ... the package name was libnx-x11-6-dbg.
Yes, but to get better output please install all other dbg packages from here, too:
http://packages.x2go.org/debian/pool/main/n/nx-libs/
There a doc regarding automaitc debug package installation here: https://wiki.debian.org/HowToGetABacktrace#Installing_the_debugging_symbols
At this stage you should run bt (backtrace) so we can see the calls leading to this. There's no need to do single steps.
To see better output including the line where it crashed you could also recompile the package as described in https://wiki.debian.org/HowToGetABacktrace#Rebuilding_the_package_you.2BIBk-...
Uli
Am 08.05.2017 um 07:44 schrieb Ulrich Sibiller:
Sorry, but this is way over my head and out of my comfort zone. Would it help if I granted you access to a freshly installed test system?
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
I have tried that on my debian jessie machine. Thunderbird indeed crashed the session. The backtrace is this:
Program received signal SIGSEGV, Segmentation fault. _XData32 (dpy=dpy@entry=0x19b8680, data=<optimized out>, data@entry=0x20b26e4, len=93460, len@entry=109812) at XlibInt.c:3792 3792 XlibInt.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt full #0 _XData32 (dpy=dpy@entry=0x19b8680, data=<optimized out>, data@entry=0x20b26e4, len=93460, len@entry=109812) at XlibInt.c:3792 buf = <optimized out> i = <optimized out> #1 0x00007ff7d90c6ce1 in XChangeProperty (dpy=0x19b8680, w=<optimized out>, property=<optimized out>, type=6, format=<optimized out>, mode=<optimized out>, data=0x20b26e4 "", nelements=27453) at ChProp.c:85 req = 0x19c6548 len = 109812 #2 0x00000000004b20b7 in nxagentExportProperty (pWin=0x20, property=27453, type=34285284, format=0, mode=0, nUnits=27453, value=0x2072700) at Rootless.c:763 n = 27453 propertyX = 4 typeX = 34285284 propHints = {flags = 0, input = 32, initialState = 33142432, iconPixmap = 4333663, iconWindow = 6, iconX = 140702462200332, iconY = 18014767901107996, iconMask = 4927218, windowGroup = 0} export = 4088 freeMem = 33142432 #3 0x000000000042238a in ProcChangeProperty (client=0xff7) at X/NXproperty.c:331 pWin = 0x1f9b6a0 len = 92982 totalSize = 4088 err = 4088 stuff = 0x1fbcd24 #4 0x000000000042f002 in Dispatch () at X/NXdispatch.c:748 clientReady = 0x7ffe2b5ee710 result = <optimized out> client = 0x1edf360 nready = 0 icheck = 0xbb9d00 <checkForInput> start_tick = 20 currentDispatch = <optimized out> #5 0x000000000040da0f in main (argc=15, argv=0x7ffe2b5eecc8, envp=<optimized out>) at main.c:450 i = <optimized out> j = 2 k = 2 error = 32766 xauthfile = <optimized out> alwaysCheckForInput = {0, 1}
Which needs further investigation.
Uli
On Mon, May 8, 2017 at 7:32 PM, Ulrich Sibiller <uli42@gmx.de> wrote:
On Tue, May 9, 2017 at 1:36 AM, Ulrich Sibiller <uli42@gmx.de> wrote:
[..]
Which needs further investigation.
Problem identified: It's the BIG-REQUESTS extension. We have disabled that in nx 3.5.99 because it is buggy. Add
X2GO_NXAGENT_DEFAULT_OPTIONS+=" -extension BIG-REQUESTS"
to /etc/x2goagent.options and thunderbird works.
IMHO we never had a working version of BIG-REQUESTS. So it is probably a good idea and I am wondering why it is active in 3.5.0.32 at all.
Uli
On Tue, May 9, 2017 at 9:33 PM, Ulrich Sibiller <uli42@gmx.de> wrote:
Forget that. We have BIG-REQUESTS in 3.5.99 and it is working. So disabling BIG-REQUESTS is just a workaround.
As replacing libNX_X11.so with the 3.5.99 version is sufficient to make the error go away I suppose one of the many fixes that came in through updating libNX_X11 to current Xorg upstream libX11 is the solution. But as there are so many it's difficult to identify the right one(s)...
We could try to find the libNX_X11 version where it started to work.
Uli