[FreeNX-kNX] nxagent hangs after suspending, cannot resume, watchdog thread stuck

Mario Becroft mb at gem.win.co.nz
Mon Mar 2 22:24:29 UTC 2009


We occasionally have a problem where a user suspends their nxagent
session, and it gets stuck. When they attempt to resume, they instead
get a new session. However, their suspended session still exists. If you
manually unstick it, the user can then resume it as normal.

When the session is stuck, there are two nxagent processes: their main
nxagent process, and a new process created at the time they suspended
their session. The new process is always inside sleep()
inside NXTransWatchdog().

Simply killing the new process fixes the problem, allowing their
existing nxagent session to be resumed and continue working.

I notice that it is normal for this watchdog process to exist shortly
after a user logs out, but normally it goes away after a short
time. When the problem occurs, the process remains running indefinitely,
and the parent process remains hung. Unfortunately, I don't have the
detailed information available to me, but from memory, the parent
nxagent process hangs inside wait().

I have also noticed that when in this stuck state, the session is listed
by nxserver --list, but does not appear in the list of sessions
available for shadowing.

At a guess, this happens about 1 in 500 times that someone suspends a
session.

Has anyone else noticed this problem?

-- 
Mario Becroft <mb at gem.win.co.nz>



More information about the FreeNX-kNX mailing list