Bugzilla – Bug 809329
openSUSE 12.3 + nxclient = crash
Last modified: 2022-10-07 15:03:24 UTC
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0
This was already a problem in openSuSE 12.2 (see Bug 780657). I thought it would be solved. :-(
I open nxclient and choose an openSuSE 12.3 machine.
I login there and can open e.g. an xterm
When I open firefox, thunderbird, acroread, libreoffice, etc. the whole nxclient session crashes.
1: uninstall libcairo2:
rpm -e --nodeps libcairo2-1.12.8-2.1.1.x86_64 libcairo2-32bit-1.12.8-2.1.1.x86_64
2: install libcairo2 from openSuSE 12.1:
rpm -i --nodeps libcairo2-32bit-1.10.2-14.1.3.x86_64.rpm libcairo2-1.10.2-14.1.3.x86_64.rpm
3: copy libpng14.so.14 from openSuSE 12.2 to /usr/lib64
Steps to Reproduce:
Can't really reproduce this.
I'm writing this comment in a FF19 on a 12.3, and that is inside a NX session that connects from a 12.2 to the 12.3 machine.
I had 12.2 on the 12.3 machine before and no problems there either.
So we need to find out want the difference between us is.
I have a 12.3 x86_64 with:
I also have enough RAM (4GB), no swapping.
Just to repeat to make it clear:
When i open e.g. firefox with an nxsession i am not able to work with it. It immediately crashes with:
"the connection with the remote server was shut down. Please check the state of your network connection".
This does not happen with the libcairo2 from opensuse 12.1
There is nothing written into /var/log/messages. Also in
.xsession-errors i do not find anything.
Any ideas what i still could test?
I just checked my 12.3 box, and I do have libpng14 from 12.2 installed on it (it wasn't a clean install, it was a upgrade from 12.2 to 12.3 there).
(In reply to comment #3)
> I just checked my 12.3 box, and I do have libpng14 from 12.2 installed on it
> (it wasn't a clean install, it was a upgrade from 12.2 to 12.3 there).
I have copied libpng14.so.14 from 12.2 and it does not work with libcairo2-1.12.8-2.1.1.x86_64
I did not do an upgrade, but a freshly new install (except the /home partition)
which version of nxclient and nxserver do you have?
i found this:
>Broken resume with Cairo 1.12.x
>Latest cairo updates broke the render extension. After resuming a session
>all characters from before suspending won't get rendered. To fix this
>add this single line to /etc/nxserver/node.conf [in the nxserver]
i did this, and it worked for 12.3. But this gives terrible results on our opensuse 11.x machines (including slow graphics). So i would not close the report yet.
Again. 3rd party software. IIRC NX replaces a lot of X libraries ...
I'm experiencing the same problem here on openSUSE 12.3. Using the nxclient from nomachine on a openSUSE 12.3 client to connect to a freenx server on openSUSE 12.3 leads to missing graphics and fonts after resuming the session. Starting a session is no problem but resuming is.
Replacing libcairo2 with the version from openSUSE 12.1 reliably fixes this problem. I know that freenx is a 3rd party component for openSUSE but there does not seem to exist a real and reliable working terminal server solution for Linux except of freenx. Would be nice if the cairo-devs could maybe fix this problem.
Using the "-norender" option leads to a completely broken rendered desktop in freenx, so I can't use this as a workaround. Just replacing the libs helps even though this is only a quite ugly workaround.
PS: To get a working Yast in a freenx session, because of broken QT rendering without native rendering, I created the file /etc/profile.d/qt-graphics-myself.sh with the content:
This forces native mode for rendering in QT (not raster). Because of Yast starting in a root environment, where the user settings in the KDE Systemcenter are ignored, you get only a blank window in freenx. You can click on the unseen buttons but you can't see anything. With this workaround Yast works as before in openSUSE 12.1 with freenx.
I forgot to mention, I implemented the lib replacements and the QT workaround only on the server. The client didn't need any change.
So looks like a change between cairo 1.10 and 1.12 caused this crash?
(In reply to comment #10)
> So looks like a change between cairo 1.10 and 1.12 caused this crash?
Yes. I think it is related to the massiv changes in the rendering process (big optimizations and changes in the xrender usage). It is most likely related to https://wiki.archlinux.org/index.php/FreeNX#Broken_resume_with_Cairo_1.12.x
I don't know how to fix this reliably. I just installed the libcairo2 and libpng14 (needed by the old libcairo2) rpms from openSUSE 12.1 on the server as a workaround for now. With this freenx works as well as in openSUSE 12.1 (very good) except that sound is very choppy but I can live with it. The downside of this workaround is that I get no security fixes for these libraries anymore.
Maybe updating the current libcairo2 from 1.12.8 in openSUSE 12.3 to 1.12.14 could help here. I see massive bug squashings for X11/SHM especially for libcairo 1.12.11 and 1.12.12 in the changelogs.
I would test a new build if it is available (will check in OBS if I find something).
I tested the rpm http://download.opensuse.org/repositories/home:/muzlocker/openSUSE_12.3/x86_64/libcairo2-1.12.14-73.1.x86_64.rpm
It shows the same problem as openSUSE's standard 1.12.8 version. So this bug is still present. I haven't found a related bugreport on bugzilla of freedesktop.org, only a far related one https://bugs.freedesktop.org/show_bug.cgi?id=56744
Maybe a report to the libcairo devs could help here.
I ran into the same problem using x2go. Upgrading to cairo rpms to version 1.12.14-79.2 from
fixed it for me. Now firefox and seamonkey start without the error.
openSUSE 12.3 had EOL on 2015-01-01, and NoMachine have now made its NX technology proprietary; users have transitioned to the free fork X2Go. Please reopen this bug if you can still reproduce the problem with our X2Go packages on openSUSE Tumbleweed or a a supported version of openSUSE Leap.