Red Hat Bugzilla – Bug 995915
[freeNX] restore_session race-condition in 'nxnode'
Last modified: 2014-04-04 11:28:36 EDT
Created attachment 785509 [details]
patch to correct race condition in '/usr/bin/nxnode'
Description of problem:
Component is FreeNX, but this is not present
in the drop-down list.
Attempts to reconnect from 'nxclient' to 'freenx'
fail after authentication with timeout during
the "Negotiating Link Parameters" phase.
Version-Release number of selected component (if applicable):
freenx-0.7.3-9.4.el6 (on RHEL side)
nxclient-3.5.0-9 (on Windows client side)
Random occurrence. Have a VM that
triggered it reliably before it was
Steps to Reproduce:
Probably one can force this to happen
by inserting a 'sleep' at the
appropriate point in the '/usr/bin/nxnode'
script. Over several years others have
encountered the problem. Search on
these to find them:
"[Loop: PANIC! Can't identify NX port in string"
nx "negotiating link parameters" timeout
nx "display failure detected at"
"Identified options: nx,options=" "/S-/options:"
'nxclient' reports a timeout instead
Successfully reconnection to existing session.
When reconnecting to an existing session,
'nxclient' depends on the "710 Session status:
running" reply arriving *after* the 70x messages
that carry the session-id and other useful bits of
However the '/usr/bin/nxnode' script that
generates these messages invokes the
'node_start_monitor' function that produces the
710 asynchronous to, and before the lines that
emit the 70x messages. So on occasion (in some
situations, on every occasion) the 710 arrives
first and 'nxclient' fails to start the session
because it has an empty session-id string.
upstream bug report at
upstream patch at
I'm... confused. freenx isn't selectable as a component _because_ we don't ship it in RHEL. And I'm not seeing it in EPEL either, so I'm really not sure where you got the package in the first place, let alone how to get your fix integrated.