Bug 995915 - [freeNX] restore_session race-condition in 'nxnode'
[freeNX] restore_session race-condition in 'nxnode'
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: xorg-x11-drivers (Show other bugs)
All Linux
unspecified Severity medium
: rc
: ---
Assigned To: Adam Jackson
Desktop QE
Depends On:
  Show dependency treegraph
Reported: 2013-08-11 21:47 EDT by starlight
Modified: 2014-04-04 11:28 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2014-04-04 11:28:36 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
patch to correct race condition in '/usr/bin/nxnode' (1.72 KB, application/force-download)
2013-08-11 21:47 EDT, starlight
no flags Details

  None (edit)
Description starlight 2013-08-11 21:47:42 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)

How reproducible:

Random occurrence.  Have a VM that
triggered it reliably before it was
fixed locally.

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:"

Actual results:

'nxclient' reports a timeout instead
of reconnecting.

Expected results:

Successfully reconnection to existing session.

Additional info:

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

Comment 2 Adam Jackson 2014-04-04 11:28:36 EDT
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.

Note You need to log in before you can comment on or make changes to this bug.