2

I have FreeNX server (Ubuntu 10.04) installed and users can log in just fine. The problem arises when users would like to shadow a session. It plain and simple does not work, although the user who's session is requesting to be shadowed is presented with the confirmation dialog (so that's a start), but fails right after confirmation. Using the NoMachine version is not an option as we will need more than the maximum allowed without paying an absurd price.

I have verified that the changing AGENT_EXTRA_OPTIONS with and without "-nolisten tcp" has no effect. The users have a limit of 5 sessions (so 1 user + 1 shadow doesn't breach this limit) and the overall session limit is sufficiently high for our purposes (for now these are the only two sessions).

If anybody has any additional information to resolve this issue, it would be greatly appreciated.

The server config:

cat /etc/nxserver/node.conf | grep -ve '^#' | grep -ve '^$'
SSHD_PORT=1209
DISPLAY_BASE=1001
SESSION_LIMIT=25
SESSION_USER_LIMIT=5
DISPLAY_LIMIT=25
ENABLE_PERSISTENT_SESSION="all"
ENABLE_MIRROR_VIA_VNC=1
ENABLE_DESKTOP_SHARING=1
ENABLE_SESSION_SHADOWING_AUTHORIZATION=1
ENABLE_INTERACTIVE_SESSION_SHADOWING=1
NX_LOG_LEVEL=7
NX_LOGFILE=/var/log/nxserver.log
SESSION_LOG_CLEAN=0

The nxserver.log as the user trying to shadow attempts: (master user: "xxxx", shadowing user: "yyyy", on host: "host"):

cat /var/log/nxserver.log
-- NX SERVER START:  - ORIG_COMMAND=
-- NX SERVER START:  - ORIG_COMMAND=
Info: Using fds #4 and #3 for communication with nxnode.
HELLO NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: 3.5.0)
NX> 105 hello NXCLIENT - Version 3.2.0
NX> 134 Accepted protocol: 3.2.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: yyyy
NX> 102 Password:
Info: Auth method: ssh yyyy@127.0.0.1's password:
NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: 3.5.0)
NX> 716 Slave mode started successfully.
nxnode_reader: NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: 3.5.0)
nxnode_reader: NX> 716 finished
nxnode_reader: NX> 1001 Bye.

NX> 103 Welcome to: host user: yyyy
NX> 105 listsession --type="shadow"
NX> 127 Sessions list of user '.*' for reconnect:

Display Type             Session ID                       Options  Depth Screen         Status      Session Name
------- ---------------- -------------------------------- -------- ----- -------------- ----------- ------------------------------
1001    unix-gnome       5B35808234323A4D8277F794527BFC3E --D--PSA    24 1914x1012      Running     host (xxxx) (Shadowed)
0       Local            639B671210FCE02100D4A90C44850D86 --------                      Running     X0 (Local)
0       Local            98F246415D9EA65BC926E0CA1E8DBC74 --------                      Running     X0 (Local)


NX> 148 Server capacity: not reached for user: .*
NX> 105 listsession --type="shadow"
NX> 105 attachsession  --link="adsl" --backingstore="1" --encryption="1" --cache="16M" --images="64M" --shmem="1" --shpix="1" --strict="0" --composite="1" --media="0" --session="hostshadow" --type="shadow" --client="winnt" --keyboard="pc102/en_US" --id="5B35808234323A4D8277F794527BFC3E" --display="1001" --geometry="1914x1012" --resize="1"

NX> 726 Asking user for authorization to attach to session
Info: Using /etc/nxserver/nxacl to change session parameters or deny session.
&link=adsl&backingstore=1&encryption=1&cache=16M&images=64M&shmem=1&shpix=1&strict=0&composite=1&media=0&session=hostshadow&type=shadow&client=winnt&keyboard=pc102/en_US&id=5B35808234323A4D8277F794527BFC3E&display=1001&geometry=1914x1012&resize=1&clientproto=3.2.0&login_method=SSH&shadowdisplay=1001&shadowhost=&shadowcookie=******&shadowuser=xxxx&user=yyyy&userip=140.239.209.66&uniqueid=858B82DD3410A5FA08EE35153B0FD7F6&display=1003&host=127.0.0.1
nxnode_reader: NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: 3.5.0)
NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: 3.5.0)
server_nxnode_echo: NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: 3.5.0)
nxnode_reader: NX> 700 Session id: host-1001-858B82DD3410A5FA08EE35153B0FD7F6
NX> 700 Session id: host-1001-858B82DD3410A5FA08EE35153B0FD7F6
nxnode_reader: NX> 705 Session display: 1001
nxnode_reader: NX> 703 Session type: shadow
server_nxnode_echo: NX> 700 Session id: host-1001-858B82DD3410A5FA08EE35153B0FD7F6
nxnode_reader: NX> 701 Proxy cookie: 3def610d9e80da114ce1f978fa4d5a2c
nxnode_reader: NX> 702 Proxy IP: xyz.xyz.xyz.xyz
nxnode_reader: NX> 706 Agent cookie: 3def610d9e80da114ce1f978fa4d5a2c
nxnode_reader: NX> 704 Session cache: shadow
nxnode_reader: NX> 707 SSL tunneling: 1
nxnode_reader: Disk quotas for user yyyy (uid 1000): none
nxnode_reader: NX> 1004 Error: NX Agent exited with exit status 1. To troubleshoot set SESSION_LOG_CLEAN=0 in node.conf and investigate "/home/yyyy/.nx/F-C-host-1001-858B82DD3410A5FA08EE35153B0FD7F6/session". You might also want to try: ssh -X myserver; /usr/lib/nx/nxnode --agent to test the basic functionality. Session log follows:
NX> 705 Session display: 1001
NX> 703 Session type: shadow
NX> 701 Proxy cookie: 3def610d9e80da114ce1f978fa4d5a2c
NX> 702 Proxy IP: xyz.xyz.xyz.xyz
NX> 706 Agent cookie: 3def610d9e80da114ce1f978fa4d5a2c
NX> 704 Session cache: shadow
NX> 707 SSL tunneling: 1
Disk quotas for user yyyy (uid 1000): none
NX> 1004 Error: NX Agent exited with exit status 1. To troubleshoot set SESSION_LOG_CLEAN=0 in node.conf and investigate "/home/yyyy/.nx/F-C-host-1001-858B82DD3410A5FA08EE35153B0FD7F6/session". You might also want to try: ssh -X myserver; /usr/lib/nx/nxnode --agent to test the basic functionality. Session log follows:
server_nxnode_echo: NX> 705 Session display: 1001
nxnode_reader: Error: Aborting session with 'Server is already active for display 1001
nxnode_reader: If this server is no longer running, remove /tmp/.X1001-lock
nxnode_reader: and start again'.
nxnode_reader: Session: Aborting session at 'Wed Apr 18 11:19:32 2012'.
nxnode_reader: Session: Session aborted at 'Wed Apr 18 11:19:32 2012'.
nxnode_reader: NX> 1006 Session status: closed
Error: Aborting session with 'Server is already active for display 1001
If this server is no longer running, remove /tmp/.X1001-lock
and start again'.
Session: Aborting session at 'Wed Apr 18 11:19:32 2012'.
Session: Session aborted at 'Wed Apr 18 11:19:32 2012'.
NX> 1006 Session status: closed
server_nxnode_echo: NX> 703 Session type: shadow
server_nxnode_echo: NX> 701 Proxy cookie: 3def610d9e80da114ce1f978fa4d5a2c
server_nxnode_echo: NX> 702 Proxy IP: xyz.xyz.xyz.xyz
server_nxnode_echo: NX> 706 Agent cookie: 3def610d9e80da114ce1f978fa4d5a2c
nxnode_reader: rm: cannot remove `/tmp/.X1001-lock': Operation not permitted
nxnode_reader: rm: cannot remove `/tmp/.X11-unix/X1001': Operation not permitted
rm: cannot remove `/tmp/.X1001-lock': Operation not permitted
rm: cannot remove `/tmp/.X11-unix/X1001': Operation not permitted
server_nxnode_echo: NX> 704 Session cache: shadow
server_nxnode_echo: NX> 707 SSL tunneling: 1
NX> 105 server_nxnode_echo: NX> 596 Session startup failed.
NX> 596 Session startup failed.
server_nxnode_echo: NX> 1004 Error: NX Agent exited with exit status 1. To troubleshoot set SESSION_LOG_CLEAN=0 in node.conf and investigate "/home/yyyy/.nx/F-C-host-1001-858B82DD3410A5FA08EE35153B0FD7F6/session". You might also want to try: ssh -X myserver; /usr/lib/nx/nxnode --agent to test the basic functionality. Session log follows:
session_close 858B82DD3410A5FA08EE35153B0FD7F6
nxnode_reader: rm: cannot remove `/tmp/.X1001-lock': Operation not permitted
rm: cannot remove `/tmp/.X1001-lock': Operation not permitted
server_nxnode_echo: NX> 1006 Session status: closed
nxnode_reader: rm: cannot remove `/tmp/.X11-unix/X1001': Operation not permitted
rm: cannot remove `/tmp/.X11-unix/X1001': Operation not permitted
Info: Closing connection to slave with pid 5123.
nxnode_reader: 1001 Bye.
1001 Bye.
nxnode_reader: NX> 1001 Bye.
NX> 1001 Bye.
server_nxnode_echo: NX> 1001 Bye.
Info: Closing connection to slave with pid 3289.

I have yet to find anyone with this working correctly with Ubuntu and Gnome in any of the releases 10.04 and beyond.

EDIT: including user logs

initial FreeNX session creation:

30.04 04:13:54 PM: startsession (30614): starting with args ""
30.04 04:13:54 PM: startsession (30614): generate "/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/options"
30.04 04:13:54 PM: startsession (30614): write xauth script file
30.04 04:13:54 PM: node_start_agent (30614): source profile
30.04 04:13:54 PM: node_start_agent (30614): starting
30.04 04:13:54 PM: startsession (30614): call 'node_start_applications'
30.04 04:13:54 PM: startsession (30614): call 'node_start_agent'
30.04 04:13:54 PM: node_start_monitor_2_0_0 (30614): starting
30.04 04:13:54 PM: node_start_applications (30614): source profile
30.04 04:13:54 PM: node_start_monitor (30614): staring
30.04 04:13:54 PM: node_start_applications (30614): source bash profile
30.04 04:13:54 PM: node_start_applications (30614): DISPLAY is 1004
30.04 04:13:54 PM: node_start_applications (30614): starting
30.04 04:13:54 PM: node_start_agent (30614): Start nxagent by command: '/usr/bin/nxagent -persistent -D -name "NX - xxxx@host:1004 - host (GPL Edition)" -option "/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/options"   -nolisten tcp -dpi 96 :1004'
30.04 04:13:54 PM: node_start_agent (30614): env end
30.04 04:13:54 PM: node_start_agent (30614): env start SSH_AGENT_PID=30215
NX_CLIENT=/usr/lib/nx/nxdialog
SHELL=/bin/bash
XDG_SESSION_COOKIE=60ff19e9e10c08100d4214104e25bbb4-1335820431.37337-1607081202
SSH_CLIENT=127.0.0.1 33151 1209
USER=xxxx
LD_LIBRARY_PATH=/host-nas/share/lib:/host-nas/openmpi/openmpi-psm/lib:/usr/local/sage/lib64:/home/vizuser/tacc-mc/lib64:/opt/lib:/lib:/lib64:/lib32:/usr/lib:/usr/lib64:/usr/lib32:/usr/local/cglX/lib:/usr/local/cuda/lib:/usr/local/cuda/lib64:/host-nas/openmpi/openmpi-psm/lib:/usr/local/sage/lib
MPI_DIRECTORY=/host-nas/openmpi/openmpi-psm
SSH_AUTH_SOCK=/tmp/ssh-OLzZp30214/agent.30214
SAGE_DIRECTORY=/usr/local/sage
SHARE_DIRECTORY=/host-nas/share
NXSESSIONID=host-1004-DAD0C12D4D64A595EA43304AA6CC5B55
MAIL=/var/mail/xxxx
PATH=/host-nas/share/bin:/host-nas/share/bin:/host-nas/openmpi/openmpi-psm:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/cglX/bin:/usr/local/cuda/bin:/host-nas/openmpi/openmpi-psm/bin:/usr/local/sage/bin
SHADOW_XAUTHORITY=/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/authority
PWD=/host-nas/home/xxxx
LANG=en_US.UTF-8
SLAVE_PID=30317
SPEECHD_PORT=8560
SHLVL=3
HOME=/host-nas/home/xxxx
LOGNAME=xxxx
CUDA_DIRECTORY=/usr/local/cuda
SSH_CONNECTION=127.0.0.1 33151 127.0.0.1 1209
CGLX_DIRECTORY=/usr/local/cglX
DISPLAY=nx/nx,options=/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/options:1004
XAUTHORITY=/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/authority
_=/usr/bin/env
30.04 04:13:54 PM: node_start_agent (30614): source bash profile
30.04 04:13:54 PM: node_start_monitor (30614): call 'node_start_monitor_2_0_0 ""'
30.04 04:13:54 PM: node_start_agent (30614): NXAgent session type
30.04 04:13:54 PM: node_start_agent (30614): Wait for NODE_AGENT_PID (30920)
30.04 04:13:57 PM: node_find_application (30614): return NODE_STARTX="gnome-session"
30.04 04:13:57 PM: node_find_application (30614): starting with args "unix-gnome"
30.04 04:13:57 PM: node_find_application (30614): end
30.04 04:13:57 PM: node_start_applications (30614): Got NODE_APPLICATION is "gnome-session"
30.04 04:13:57 PM: node_start_applications (30614): Start successful. NODE_APP_PID=31209
30.04 04:13:57 PM: node_start_applications (30614): Starting NODE_APPLICATION with /etc/nxserver/Xsession
30.04 04:13:57 PM: node_start_applications (30614): Waiting for NODE_APP_PID
30.04 04:18:56 PM: node_start_monitor_2_0_0 (30614): call node_stop_services
30.04 04:18:56 PM: node_stop_services (30614): call node_umount_smb
30.04 04:18:56 PM: node_umount_smb (30614): starting with ENABLE_SHARE_MULTIMOUNT == 0
30.04 04:18:56 PM: node_stop_services (30614): end
30.04 04:18:56 PM: node_umount_smb (30614): File scripts/mpoint not present. Abort umounting...
30.04 04:18:56 PM: node_stop_services (30614): call node_cupsd_stop
30.04 04:18:56 PM: node_stop_services (30614): starting
30.04 06:01:34 PM: node_start_agent (30614): close session
30.04 06:01:34 PM: node_start_agent (30614): cleanup session information 'host-1004-DAD0C12D4D64A595EA43304AA6CC5B55'
30.04 06:01:34 PM: node_terminate_session (30614): starting
30.04 06:01:34 PM: node_umount_smb (30614): starting with ENABLE_SHARE_MULTIMOUNT == 0
30.04 06:01:34 PM: node_start_applications (30614): Clean pids/apps/31209
30.04 06:01:34 PM: node_start_agent (30614): NODE_AGENT_EXIT_STATUS = "0"
30.04 06:01:34 PM: node_start_agent (30614): remove agent pidfile -- '/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/pids/agent'
30.04 06:01:34 PM: node_start_agent (30614): call 'node_terminate_session "host-1004-DAD0C12D4D64A595EA43304AA6CC5B55" ""'
30.04 06:01:34 PM: node_terminate_session (30614): call node_stop_services
30.04 06:01:34 PM: node_start_applications (30614): NODE_APP_PID finished
30.04 06:01:34 PM: node_stop_services (30614): starting
30.04 06:01:34 PM: node_terminate_session (30614): Remove display information
30.04 06:01:34 PM: node_stop_services (30614): call node_umount_smb
30.04 06:01:34 PM: node_umount_smb (30614): File scripts/mpoint not present. Abort umounting...
30.04 06:01:34 PM: node_stop_services (30614): end
30.04 06:01:34 PM: node_terminate_session (30614): Start terminating session "host-1004-DAD0C12D4D64A595EA43304AA6CC5B55" with status ""
30.04 06:01:34 PM: node_stop_services (30614): call node_cupsd_stop
30.04 06:01:34 PM: node_terminate_session (30614): Remove magic cookie information
30.04 06:01:34 PM: node_terminate_session (30614): Preserve or remove session information
30.04 06:01:34 PM: node_terminate_session (30614): Session terminated. Rename session directory from "/host-nas/home/xxxx/.nx/C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55/" to "/host-nas/home/xxxx/.nx/T-C-host-1004-DAD0C12D4D64A595EA43304AA6CC5B55"
30.04 06:01:34 PM: node_start_agent (30614):remove /tmp/.X1004-lock
30.04 06:01:34 PM: node_start_agent (30614): remove /tmp/.X11-unix/X1004
30.04 06:01:34 PM: node_terminate_session (30614): end
30.04 06:01:34 PM: node_start_monitor_2_0_0 (30614): call node_stop_services
30.04 06:01:34 PM: node_stop_services (30614): starting
30.04 06:01:34 PM: node_stop_services (30614): call node_cupsd_stop
30.04 06:01:34 PM: node_umount_smb (30614): starting with ENABLE_SHARE_MULTIMOUNT == 0
30.04 06:01:34 PM: node_stop_services (30614): end
30.04 06:01:34 PM: node_umount_smb (30614): File scripts/mpoint not present. Abort umounting...
30.04 06:01:34 PM: node_stop_services (30614): call node_umount_smb
30.04 06:01:34 PM: node_start_monitor_2_0_0 (30614): end

same user attempting to shadow their own session from a different machine:

30.04 04:14:07 PM: startsession (32187): starting with args ""
30.04 04:14:07 PM: startsession (32187): generate "/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/options"
30.04 04:14:07 PM: startsession (32187): write xauth script file
30.04 04:14:07 PM: startsession (32187): If we have a shadow cookie, we add it to xauth session authority file as well
30.04 04:14:07 PM: node_start_agent (32187): env end
30.04 04:14:07 PM: startsession (32187): call 'node_start_applications'
30.04 04:14:07 PM: node_start_agent (32187): starting
30.04 04:14:07 PM: node_start_monitor (32187): call 'node_start_monitor_2_0_0 ""'
30.04 04:14:07 PM: node_start_applications (32187): source bash profile
30.04 04:14:07 PM: node_start_applications (32187): source profile
30.04 04:14:07 PM: node_start_agent (32187): Type "shadow". Add some args to nxagent
30.04 04:14:07 PM: node_start_monitor (32187): staring
30.04 04:14:07 PM: node_start_agent (32187): source bash profile
30.04 04:14:07 PM: node_start_agent (32187): source profile
30.04 04:14:07 PM: node_start_monitor_2_0_0 (32187): starting
30.04 04:14:08 PM: node_start_agent (32187): close session
30.04 04:14:07 PM: startsession (32187): call 'node_start_agent'
30.04 04:14:08 PM: node_start_agent (32187): Wait for NODE_AGENT_PID (32500)
30.04 04:14:08 PM: node_start_agent (32187): env start SSH_AGENT_PID=30215
NX_CLIENT=/usr/lib/nx/nxdialog
SHELL=/bin/bash
XDG_SESSION_COOKIE=60ff19e9e10c08100d4214104e25bbb4-1335820442.468288-602337452
SSH_CLIENT=127.0.0.1 33160 1209
USER=xxxx
LD_LIBRARY_PATH=/host-nas/share/lib:/host-nas/openmpi/openmpi-psm/lib:/usr/local/sage/lib64:/home/vizuser/tacc-mc/lib64:/opt/lib:/lib:/lib64:/lib32:/usr/lib:/usr/lib64:/usr/lib32:/usr/local/cglX/lib:/usr/local/cuda/lib:/usr/local/cuda/lib64:/host-nas/openmpi/openmpi-psm/lib:/usr/local/sage/lib
MPI_DIRECTORY=/host-nas/openmpi/openmpi-psm
SSH_AUTH_SOCK=/tmp/ssh-OLzZp30214/agent.30214
SAGE_DIRECTORY=/usr/local/sage
SHARE_DIRECTORY=/host-nas/share
NXSESSIONID=host-1004-79691E83AC7EE7BE3010050157C59440
MAIL=/var/mail/xxxx
PATH=/host-nas/share/bin:/host-nas/share/bin:/host-nas/openmpi/openmpi-psm:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/cglX/bin:/usr/local/cuda/bin:/host-nas/openmpi/openmpi-psm/bin:/usr/local/sage/bin
SHADOW_XAUTHORITY=/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/authority
PWD=/host-nas/home/xxxx
LANG=en_US.UTF-8
SLAVE_PID=31798
SPEECHD_PORT=8560
SHLVL=3
HOME=/host-nas/home/xxxx
LOGNAME=xxxx
CUDA_DIRECTORY=/usr/local/cuda
SSH_CONNECTION=127.0.0.1 33160 127.0.0.1 1209
CGLX_DIRECTORY=/usr/local/cglX
DISPLAY=nx/nx,options=/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/options:1004
XAUTHORITY=/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/authority
_=/usr/bin/env
30.04 04:14:08 PM: node_find_application (32187): starting with args "shadow"
30.04 04:14:08 PM: node_start_applications (32187): DISPLAY is 1004
30.04 04:14:08 PM: node_start_applications (32187): starting
30.04 04:14:08 PM: node_start_agent (32187): NXAgent session type
30.04 04:14:08 PM: node_find_application (32187): end
30.04 04:14:08 PM: node_start_agent (32187): NODE_FAILED = "failed"
30.04 04:14:08 PM: node_start_agent (32187): remove agent pidfile -- '/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/pids/agent'
30.04 04:14:08 PM: node_stop_services (32187): call node_cupsd_stop
30.04 04:14:08 PM: node_find_application (32187): return NODE_STARTX=""
30.04 04:14:08 PM: node_start_agent (32187): cleanup session information 'host-1004-79691E83AC7EE7BE3010050157C59440'
30.04 04:14:08 PM: node_start_agent (32187): NODE_AGENT_EXIT_STATUS = "1"
30.04 04:14:08 PM: node_terminate_session (32187): starting
30.04 04:14:08 PM: node_umount_smb (32187): starting with ENABLE_SHARE_MULTIMOUNT == 0
30.04 04:14:08 PM: node_terminate_session (32187): Remove display information
30.04 04:14:08 PM: node_terminate_session (32187): Remove magic cookie information
30.04 04:14:08 PM: node_umount_smb (32187): File scripts/mpoint not present. Abort umounting...
30.04 04:14:08 PM: node_start_agent (32187): Start nxagent by command: '/usr/bin/nxagent -nopersistent -S -shadow :1004 -shadowmode 1 -name "NX - xxxx@host:1004 - hostshadow (GPL Edition)" -option "/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/options"   -nolisten tcp -dpi 96 :1004'
30.04 04:14:08 PM: node_stop_services (32187): end
30.04 04:14:08 PM: node_terminate_session (32187): Start terminating session "host-1004-79691E83AC7EE7BE3010050157C59440" with status "failed"
30.04 04:14:08 PM: node_start_agent (32187): call 'node_terminate_session "host-1004-79691E83AC7EE7BE3010050157C59440" "failed"'
30.04 04:14:08 PM: node_stop_services (32187): starting
30.04 04:14:08 PM: node_terminate_session (32187): call node_stop_services
30.04 04:14:08 PM: node_stop_services (32187): call node_umount_smb
30.04 04:14:08 PM: node_terminate_session (32187): Session failed. Rename session directory from "/host-nas/home/xxxx/.nx/C-host-1004-79691E83AC7EE7BE3010050157C59440/" to "/host-nas/home/xxxx/.nx/F-C-host-1004-79691E83AC7EE7BE3010050157C59440"
30.04 04:14:08 PM: node_terminate_session (32187): Preserve or remove session information
30.04 04:14:08 PM: node_terminate_session (32187): end
30.04 04:14:08 PM: node_start_agent (32187):remove /tmp/.X1004-lock
30.04 04:14:08 PM: node_start_agent (32187): remove /tmp/.X11-unix/X1004
30.04 04:14:08 PM: node_start_applications (32187): NODE_APPLICATION is empty
30.04 04:14:08 PM: node_stop_services (32187): starting
30.04 04:14:08 PM: node_umount_smb (32187): starting with ENABLE_SHARE_MULTIMOUNT == 0
30.04 04:14:08 PM: node_start_monitor_2_0_0 (32187): call node_stop_services
30.04 04:14:08 PM: startsession (32187): end
30.04 04:14:08 PM: node_stop_services (32187): call node_cupsd_stop
30.04 04:14:08 PM: node_start_monitor_2_0_0 (32187): end
30.04 04:14:08 PM: node_umount_smb (32187): File scripts/mpoint not present. Abort umounting...
30.04 04:14:08 PM: node_stop_services (32187): end
30.04 04:14:08 PM: node_stop_services (32187): call node_umount_smb

2 Answers2

1

The problem is in freenx-team's patch fix-getparam-url-decode.patch. While by itself the patch is sound, it has a side effect that it causes getparam() to return first occurrence of param setting, while original code was returning last.

This difference plays a dirty trick on shadow sessions, and nxnode attempts to start the shadow session on the same display as the original session.

The dirty fix is to edit /usr/lib/nx/nxnode:getparam and revert it to original:

 getparam()
 {
       stringinstring "&$1=" "$CMDLINE" || return 1
       echo "$CMDLINE" |  tr "&" "\n" | egrep "^"$1"=" | awk -F= '{ VAL=$2 } END { print VAL }' | sed 's|%24|$|'
       return 0
 }

The freenx-team will know how to properly fix this in Python.

== fix-getparam-url-decode.patch ==
Add handling of '=' in the CMDLINE.
This was an issue when we were passing a command line for unix type of
 gnome-session --session=2d-unity
The '=' was not getting decoded and gnome-session would die.
--- a/nxnode
+++ b/nxnode
@@ -72,9 +72,11 @@

 getparam()
 {
-       stringinstring "&$1=" "$CMDLINE" || return 1
-       echo "$CMDLINE" |  tr "&" "\n" | egrep "^"$1"=" | awk -F= '{ VAL=$2 } END { print VAL }' | sed 's|%24|$|'
-       return 0
+       python -c "
+import sys; from urlparse import parse_qs;
+v=parse_qs(sys.argv[2]).get(sys.argv[1],[None])[0];
+if (v==None): sys.exit(1);
+print v;" "$1" "${CMDLINE}"
 }

 find_app()
user169702
  • 11
  • 1
0

Are you trying to FreeNX to an existing display? Im pretty sure that it isnt working. Here is a workaround addinging in vnc but its on SUSE.

http://en.opensuse.org/SDB:FreeNX_to_existing_display

Sirch
  • 5,697
  • 4
  • 19
  • 36
  • Not to the local :0 Display, but displays created by FreeNX itself. (Ie. User A from home logs in and creates a nx session on display :1000, User B should be able to shadow display :1000) – platinummonkey May 04 '12 at 12:35
  • Whats in your nxshadowacl? – Sirch May 04 '12 at 12:44
  • I set it to allow all based of the NX documentation: `exit 0` returns success for everyone – platinummonkey May 04 '12 at 12:46
  • I see you set SESSION_LOG_CLEAN=0, but did you get any more info from "/home/yyyy/.nx/F-C-host-1001-858B82DD3410A5FA08EE35153B0FD7F6/session". You might also want to try: ssh -X myserver; /usr/lib/nx/nxnode --agent to test the basic functionality.? – Sirch May 04 '12 at 12:54
  • I've included the .nx user logs in the EDIT – platinummonkey May 04 '12 at 13:18
  • Thanks. Are these logs from the same time period, what display is being launched on 1001 (from nxserver.log) – Sirch May 04 '12 at 13:34
  • These were from the same period. I was playing with different settings and the display # incremented to 1004 for these logs. User A created a new NX session (waited for display to settle for normal usage), then on another machine I attempted to shadow User A with User A's account (should be 100% possible according to the docs). – platinummonkey May 04 '12 at 13:48