Bug 911707

Summary: Reconnecting to a disconnected NX session causes most fonts to disappear
Product: [Fedora] Fedora Reporter: Andy Wang <dopey>
Component: cairoAssignee: Benjamin Otte <otte>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 18CC: ajax, axel.thimm, gwync, hansecke, masc, ngaywood, otte
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-05 19:12:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andy Wang 2013-02-15 17:23:34 UTC
Description of problem:
If I establish an NX session, disconnect, and reconnect, most of the text/fonts in the reconnected session are missing.  If I launch new applications the fonts display

Version-Release number of selected component (if applicable):
freenx-server-0.7.3-30.fc18.x86_64

How reproducible:
Every time I reconnect to a disconnected session

Steps to Reproduce:
1. login to nx
2. disconnect from the session (close the nx client)
3. reconnect using an nx client
  
Actual results:
fonts are missing

Expected results:
fonts should be displayed

Additional info:
I found the following link:
http://www.nomachine.com/fr/view.php?id=FR10C01076
and this
http://mail.kde.org/pipermail/freenx-knx/2004-October/000282.html

but neither have any details that help me unfortunately.

Comment 1 Ville Skyttä 2013-02-15 20:38:54 UTC
I can reproduce this, and it seems to be related to changes in cairo somewhere between 1.10.2 and 1.12.10.

Ubuntu, openSUSE, and Archlinux users seem to have been running into the same issue:
http://askubuntu.com/questions/198790/nomachine-nx-text-missing-on-all-gtk-interface-unity-and-gnome-classic
http://forums.opensuse.org/english/get-technical-help-here/applications/print-478540-nomachine-nx-opensuse-12-2-a.html
https://bugs.archlinux.org/task/29886
https://wiki.archlinux.org/index.php/FreeNX#Broken_resume_with_Cairo_1.12.x

In particular from the Archlinux wiki: "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."

I downgraded my cairo and cairo-gobject packages to the F-17 ones (1.10.2-7.fc17) and that seems to work around the issue for me, ditto keeping the F-18 cairo but adding this to /etc/nxserver/node.conf:
AGENT_EXTRA_OPTIONS_X="-norender"

Reassigning to cairo for comments.

Comment 2 Ville Skyttä 2013-02-15 20:40:41 UTC
ajax seems to have been doing most cairo updates lately, Cc'ing him as well (@ajax: see comment 1).

Comment 3 masc 2013-07-21 12:37:16 UTC
norender is a bad workaround as it degrades performance to a degree you could as well use vnc.

this has been fixed by x2go team quite a while ago.
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=16

the fix was merged back to nxlibs, so freenx shouldn't have this issue anylonger (works fine on gentoo/sabayon eg. pulling in nx-3.5.0.20)

nomachine is incredibly slow to merge/fix things on 3.5.0, so I switched away from their free editions.

Comment 4 Hans Ecke 2013-07-30 20:27:18 UTC
This is a bug in cairo, not nomachine according to this thread:

http://thread.gmane.org/gmane.comp.lib.cairo/23411

As far as I understand:

XRender provides an optional set of operators and a way to query which operators are supported by the current environment and which ones are not. Cairo does not properly substitute software fallbacks for missing operators.

Comment 5 Hans Ecke 2013-07-30 20:28:23 UTC
Upstream bugreport:

https://bugs.freedesktop.org/show_bug.cgi?id=59173

Comment 6 masc 2013-08-01 09:59:13 UTC
unsure if this is related. seems to be a different issue.

Comment 7 masc 2013-08-01 13:57:23 UTC
for reference. http://www.nomachine.com/tr/view.php?id=TR06J02719

Comment 8 Hans Ecke 2013-08-01 14:44:00 UTC
I'm certainly not familiar enough with the cairo and x2go/nomachine code to say if this is the same issue or not. It sure looks like it to me, if I'm wrong I'm sorry.

Maybe somebody with expertise in this area could chime in....

FWIW, I downgraded cairo on Fedora 19 to version 1.10, using the source rpms from Fedora 17. Everything works great now.

Comment 9 masc 2013-08-01 15:00:42 UTC
same here, but it's not the first time cairo clashes with nx.

I have been doing the same thing since 2012, blocking cairo >1.10 to avoid issues, but it's getting increasingly difficult as more and more packages depend on cairo 1.12.

freenx/nxlibs and x2go look like feasible alternatives for now. 
I would expect nomachine to drop support for 3.5.0 anytime soon as their focus seems locked on (closed source) nx4.

Comment 10 Fedora End Of Life 2013-12-21 11:26:15 UTC
This message is a reminder that Fedora 18 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 18. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '18'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 18's end of life.

Thank you for reporting this issue and we are sorry that we may not be 
able to fix it before Fedora 18 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior to Fedora 18's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 11 Fedora End Of Life 2014-02-05 19:12:16 UTC
Fedora 18 changed to end-of-life (EOL) status on 2014-01-14. Fedora 18 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.