Why do Gnome, XFCE and LXDE crash in FreeNX under 12.2 ...

Unfortunately this is not an answer … but the next question. :
I’m aware of this issue since 12.2 is out, but I didn’t have time to look at it until now. I received a PM a while ago from a sysadmin who followed my method (Setting up NX server (part I: FreeNX), Setting up NX server (part II: NoMachine NX)) to install FreeNX and NX, asking me why FreeNX didn’t work with Gnome as default desktop. First off, I should say that I wrote freenx-setup and nomachine-setup under 12.1. They worked well. They still work fine. FreeNX gets installed and set up correctly and also functions properly under 12.2. This is NOT, or not just a FreeNX problem. If you use KDE, you will be fine. So what’s going on? To be honest, I don’t know and hope you guys can help me understand and possibly fix this bug …

Here are the details…

FreeNX is installed and running. Users can open different remote desktop sessions. The following WMs or DEs have no issues: twm, ctwm, mwm, icewm wmaker, sawfish, openbox and - last but not least. …KDE (!). However Gnome (gnome-shell, gnome-fallback or cinnamon), Xfce and LXDE crash as soon as the deskop window appears with the following error message:

http://imageshack.us/a/img94/7003/freenxcrash.png

There is nothing in FreeNX logs, because the NX login successfully completed, the NX starting scripts have finished their job, so the X session init script. The X desktop appears shortly in the FreeNX client window and crashes after less than a minute.

  • The issue affects FreeNX and Gnome,XFCE and LXDE under openSUSE 12.2 - only.
  • It doesn’t affect 12.1 at all.
  • I’d say that it doesn’t affect other distros - but I might have to do more tests.
  • It doesn’t affect NoMachine NX under 12.2. If you use NoMachine NX, you can start Gnome, XFCE and LXDE sessions.
  • This is not a graphics driver issue - doesn’t matter whether servers and clients have ATI or nvidia.

I do a lot of things “differently”. But since I received a report from somebody else, I would assume that my setup is OK. Further, I use the same X setup on 12.1 and with NoMachine under 12.2, and there isn’t any problem there. I tried to connect to a fresh Gnome system where nothing else had been installed except the ATI driver, Oracle VirtualBox and FreeNX, using whatever was the default X setup at this point: the Gnome desktop crashed in exactly the same way.

I suspect Gnome, XFCE and LXDE uses a common library or service under 12.2 which bothers FreeNX … but not NoMachine (!). Also notice that naked openbox (the windows manager used in LXDE sessions) has no problem at all. So it might be some kind of XDG common thing … but also notice that KDE works fine.

That’s about all I can tell… will post .xsession-errors* later.

I’m open to suggestions. I don’t know how to fix this problem - not sure I can either. :frowning:

LXDE - Nomachine (works)


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY jadzia.niglo.net:2003 - Sun Sep 30 05:11:49 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: startlxde.
********************************************

Obt-Message: Xinerama extension is not present on the server
Conky: unknown variable nividia
Conky: forked to background, pid is 12418

Conky: desktop window (df) is root window
Conky: window type - normal
Conky: drawing to created window (0x2200001)
Conky: drawing to double buffer
Openbox-Message: Requested key "XF86Mail" does not exist on the display
Openbox-Message: Requested key "XF86HomePage" does not exist on the display
Openbox-Message: Requested key "XF86Favorites" does not exist on the display
Openbox-Message: Requested key "XF86AudioPlay" does not exist on the display
Openbox-Message: Requested key "XF86AudioMedia" does not exist on the display
Openbox-Message: Requested key "XF86AudioRaiseVolume" does not exist on the display
Openbox-Message: Requested key "XF86AudioLowerVolume" does not exist on the display
Openbox-Message: Requested key "XF86AudioMute" does not exist on the display
Openbox-Message: Requested key "XF86Calculator" does not exist on the display
Openbox-Message: Requested key "XF86Eject" does not exist on the display
Openbox-Message: Requested key "XF86Search" does not exist on the display
Openbox-Message: Requested key "XF86Tools" does not exist on the display
Openbox-Message: Requested key "XF86AudioPrev" does not exist on the display
Openbox-Message: Requested key "XF86MyComputer" does not exist on the display
Openbox-Message: Requested key "XF86AudioNext" does not exist on the display

LXDE - FreeNX (crashes)


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY :1002 - Sat Sep 29 20:37:01 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: startlxde.
********************************************

Obt-Message: Xinerama extension is not present on the server
Conky: unknown variable nividia
Conky: forked to background, pid is 14045

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x1400003
  Serial number of failed request:  79
  Current serial number in output stream:  79
Openbox-Message: Requested key "XF86Mail" does not exist on the display
Openbox-Message: Requested key "XF86HomePage" does not exist on the display
Openbox-Message: Requested key "XF86Favorites" does not exist on the display
Openbox-Message: Requested key "XF86AudioPlay" does not exist on the display
Openbox-Message: Requested key "XF86AudioMedia" does not exist on the display
Openbox-Message: Requested key "XF86AudioRaiseVolume" does not exist on the display
Openbox-Message: Requested key "XF86AudioLowerVolume" does not exist on the display
Openbox-Message: Requested key "XF86AudioMute" does not exist on the display
Openbox-Message: Requested key "XF86Calculator" does not exist on the display
Openbox-Message: Requested key "XF86Eject" does not exist on the display
Openbox-Message: Requested key "XF86Search" does not exist on the display
Openbox-Message: Requested key "XF86Tools" does not exist on the display
Openbox-Message: Requested key "XF86AudioPrev" does not exist on the display
Openbox-Message: Requested key "XF86MyComputer" does not exist on the display
Openbox-Message: Requested key "XF86AudioNext" does not exist on the display
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1002"
      after 31 requests (31 known processed) with 0 events remaining.
parcellite: Fatal IO error 11 (Resource temporarily unavailable) on X server :1002.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1002"
      after 1947 requests (1947 known processed) with 16 events remaining.
lxpanel: Fatal IO error 11 (Resource temporarily unavailable) on X server :1002.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1002"
      after 105 requests (105 known processed) with 0 events remaining.
Terminal: Fatal IO error 0 (Success) on X server :1002.
able) on X server :1002.

XFCE - MoMachine (works)


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY jadzia.niglo.net:2004 - Sun Sep 30 05:25:25 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: xfce4-session.
********************************************

xfce4-session: GNOME compatibility is enabled and gnome-keyring-daemon is found on the system. Skipping gpg/ssh-agent startup.
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used

(xfwm4:17202): xfwm4-WARNING **: The display does not support the XComposite extension.

(xfwm4:17202): xfwm4-WARNING **: Compositing manager disabled.
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-pqVsaq
SSH_AUTH_SOCK=/run/user/agnelo/keyring-pqVsaq/ssh
GPG_AGENT_INFO=/run/user/agnelo/keyring-pqVsaq/gpg:0:1
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-pqVsaq
SSH_AUTH_SOCK=/run/user/agnelo/keyring-pqVsaq/ssh
GPG_AGENT_INFO=/run/user/agnelo/keyring-pqVsaq/gpg:0:1
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-pqVsaq
SSH_AUTH_SOCK=/run/user/agnelo/keyring-pqVsaq/ssh
GPG_AGENT_INFO=/run/user/agnelo/keyring-pqVsaq/gpg:0:1
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-pqVsaq
SSH_AUTH_SOCK=/run/user/agnelo/keyring-pqVsaq/ssh
GPG_AGENT_INFO=/run/user/agnelo/keyring-pqVsaq/gpg:0:1
Conky: unknown variable nividia

(xfsettingsd:17262): xfsettingsd-CRITICAL **: Your XI is too old (1.3) version 1.4 is required.
Conky: forked to background, pid is 17265

Conky: desktop window (df) is root window
Conky: window type - normal
Conky: drawing to created window (0x2a00001)
Conky: drawing to double buffer
libpager-Message: Setting the pager rows returned false. Maybe the setting is not applied.
weather-Message: getting http://api.yr.no/weatherapi/sunrise/1.0/?lat=48.4283327;lon=-123.3649269;date=2012-09-30
weather-Message: getting http://api.yr.no/weatherapi/locationforecastlts/1.1/?lat=48.4283327;lon=-123.3649269

XFCE - FreeNX (crashes)


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY :1014 - Sun Sep 30 05:21:35 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: xfce4-session.
********************************************

xfce4-session: Fatal IO error 11 (Resource temporarily unavailable) on X server :1014.

Gnome - NoMachine (works)


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY jadzia.niglo.net:2007 - Sun Sep 30 05:40:49 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: gnome-session --session=gnome-fallback.
********************************************

gnome-session[22013]: WARNING: GSIdleMonitor: IDLETIME counter not found
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-ekhjHK
GPG_AGENT_INFO=/run/user/agnelo/keyring-ekhjHK/gpg:0:1
GNOME_KEYRING_PID=22026
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-ekhjHK
GPG_AGENT_INFO=/run/user/agnelo/keyring-ekhjHK/gpg:0:1
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-ekhjHK
GPG_AGENT_INFO=/run/user/agnelo/keyring-ekhjHK/gpg:0:1
SSH_AUTH_SOCK=/run/user/agnelo/keyring-ekhjHK/ssh
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-ekhjHK
GPG_AGENT_INFO=/run/user/agnelo/keyring-ekhjHK/gpg:0:1
SSH_AUTH_SOCK=/run/user/agnelo/keyring-ekhjHK/ssh
=== xinerama setup Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: false
     position: 0 0
=== auto-configure - xinerama mode Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: false
     position: 0 0
=== Applying Configuration Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: true
     position: 0 0
=== Updating for primary Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: true
     position: 0 0
=== Updating for primary Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: true
     position: 0 0

(gnome-panel:22065): Gtk-CRITICAL **: gtk_accelerator_parse_with_keycode: assertion `accelerator != NULL' failed

** (gnome-panel:22065): WARNING **: Unable to parse mouse modifier '(null)'

Conky: unknown variable nividia
Conky: forked to background, pid is 22101

Conky: desktop window (df) is root window
Conky: window type - normal
Conky: drawing to created window (0x2a00001)
Conky: drawing to double buffer

(gnome-panel:22065): Gtk-CRITICAL **: gtk_accelerator_parse_with_keycode: assertion `accelerator != NULL' failed

** (gnome-panel:22065): WARNING **: Unable to parse mouse modifier '(null)'


** (gnome-panel:22065): WARNING **: Couldn't create NetworkManager proxy: Error calling StartServiceByName for org.freedesktop.NetworkManager: GDBus.Error:org.freedesktop.systemd1.LoadFailed: Unit dbus-org.freedesktop.NetworkManager.service failed to load: No such file or directory. See system logs and 'systemctl status dbus-org.freedesktop.NetworkManager.service' for details.

(gnome-panel:22065): GLib-GObject-WARNING **: gsignal.c:2459: signal `size_request' is invalid for instance `0x2ce55a0'

Gnome - FreeNX (crashes)


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY :1017 - Sun Sep 30 05:43:15 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: gnome-session --session=gnome-fallback.
********************************************

gnome-session[23552]: WARNING: GSIdleMonitor: IDLETIME counter not found
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-a3aPU8
GPG_AGENT_INFO=/run/user/agnelo/keyring-a3aPU8/gpg:0:1
GNOME_KEYRING_PID=23565
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-a3aPU8
GPG_AGENT_INFO=/run/user/agnelo/keyring-a3aPU8/gpg:0:1
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-a3aPU8
GPG_AGENT_INFO=/run/user/agnelo/keyring-a3aPU8/gpg:0:1
SSH_AUTH_SOCK=/run/user/agnelo/keyring-a3aPU8/ssh
GNOME_KEYRING_CONTROL=/run/user/agnelo/keyring-a3aPU8
GPG_AGENT_INFO=/run/user/agnelo/keyring-a3aPU8/gpg:0:1
SSH_AUTH_SOCK=/run/user/agnelo/keyring-a3aPU8/ssh
=== xinerama setup Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: false
     position: 0 0
=== auto-configure - xinerama mode Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: false
     position: 0 0
=== Applying Configuration Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: true
     position: 0 0
=== Updating for primary Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: true
     position: 0 0
=== Updating for primary Configuration ===
  Clone: false
  Output: Unknown attached to default
     status: on
     width: 1920
     height: 1200
     rate: 60
     primary: true
     position: 0 0

(gnome-panel:23604): Gtk-CRITICAL **: gtk_accelerator_parse_with_keycode: assertion `accelerator != NULL' failed

** (gnome-panel:23604): WARNING **: Unable to parse mouse modifier '(null)'

Conky: unknown variable nividia
Conky: forked to background, pid is 23639

Conky: desktop window (e3) is root window
Conky: window type - normal
Conky: drawing to created window (0x1e00001)
Conky: drawing to double buffer

(gnome-panel:23604): Gtk-CRITICAL **: gtk_accelerator_parse_with_keycode: assertion `accelerator != NULL' failed

** (gnome-panel:23604): WARNING **: Unable to parse mouse modifier '(null)'


(gnome-fallback-mount-helper:23625): GVFS-RemoteVolumeMonitor-WARNING **: Owner :1.16 of volume monitor org.gtk.Private.UDisks2VolumeMonitor disconnected from the bus; removing drives/volumes/mounts

(gnome-fallback-mount-helper:23625): GVFS-RemoteVolumeMonitor-WARNING **: Owner :1.17 of volume monitor org.gtk.Private.AfcVolumeMonitor disconnected from the bus; removing drives/volumes/mounts

(gnome-fallback-mount-helper:23625): GVFS-RemoteVolumeMonitor-WARNING **: Owner :1.18 of volume monitor org.gtk.Private.GPhoto2VolumeMonitor disconnected from the bus; removing drives/volumes/mounts
gnome-session[23552]: Gdk-WARNING: gnome-session: Fatal IO error 11 (Resource temporarily unavailable) on X server :1017.


(gnome-settings-daemon:23571): Gdk-WARNING **: gnome-settings-daemon: Fatal IO error 11 (Resource temporarily unavailable) on X server :1017.

Window manager warning: Fatal IO error 11 (Resource temporarily unavailable) on display ':1017'.
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.

(gnome-panel:23604): Gdk-WARNING **: gnome-panel: Fatal IO error 11 (Resource temporarily unavailable) on X server :1017.

g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
parcellite: Fatal IO error 11 (Resource temporarily unavailable) on X server :1017.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1017"
      after 239 requests (239 known processed) with 1 events remaining.
Terminal: Fatal IO error 11 (Resource temporarily unavailable) on X server :1017.

And finally, an icewm-session in FreeNX, which just works:


********************************************
/usr/local/config/x11/XremoteSession: Openning X session on DISPLAY :1018 - Sun Sep 30 05:46:10 PDT 2012...
/usr/local/config/x11/XremoteSession: Setup done, will execute: icewm-session.
********************************************

icewm-session: using /home/openSUSE/agnelo/.icewm for private configuration files
IceWM: using /home/openSUSE/agnelo/.icewm for private configuration files
icewmbg: using /home/openSUSE/agnelo/.icewm for private configuration files
icewmtray: using /home/openSUSE/agnelo/.icewm for private configuration files
icewmbg: using /home/openSUSE/agnelo/.icewm for private configuration files
Conky: unknown variable nividia
Conky: forked to background, pid is 24849

Conky: desktop window (e3) is root window
Conky: window type - normal
Conky: drawing to created window (0x1600001)
Conky: drawing to double buffer

Well, I can’t explain Gnome, LXDE or the others, but I can say that I have freeNX working with Opensuse 12.2 XFCE on my new server. I had to change a rendering line in node.conf to make it work. Here’s my shortened-for-the-post node.conf file from the server:

ibm-server:~ # cat /etc/nxserver/node.conf
# node.conf.....
.....
#########################################################################
# Forwarding directives
#########################################################################

# FreeNX with ENABLE_SERVER_FORWARD="1" will automatically forward all
# connections to the host specified in SERVER_FORWARD_HOST with the
# secret key SERVER_FORWARD_KEY.
#
# This allows to have a "chain" of NX Servers. Note that you will need to
# use "SSL encryption" for all connections.

#ENABLE_SERVER_FORWARD="0"
#SERVER_FORWARD_HOST=""
#SERVER_FORWARD_PORT=22
#SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"


# FreeNX with ENABLE_NOMACHINE_FORWARD_PORT="1" will automatically forward all
# connections to the commercial NoMachine nxserver installed on the same
# machine, which go in by port NOMACHINE_FORWARD_PORT. This feature is introduced
# to enable the usage of FreeNX and NoMachine NX side by side on the same machine
# without conflicts.
#
# Note: You need to let SSHD listen to several ports to make use of this
#       directive.

#ENABLE_NOMACHINE_FORWARD_PORT="0"
#NOMACHINE_FORWARD_PORT="22"

#NOMACHINE_SERVER="/usr/NX/bin/nxserver"
#NOMACHINE_NX_HOME_DIR="/usr/NX/home/nx"


# LOAD BALANCING
# ==============
#
# To do load balancing setup some hosts in LOAD_BALANCE_SERVERS and
# make:
#
#   - either sure that all incoming connections are sent to the master
#     server by using forwarding directives on the "slave" servers.
#
#   - or share the session database space via NFS between the servers.
#     (not recommended at the moment as race conditions for DISPLAYs can 
#      occur)
#

#LOAD_BALANCE_SERVERS=""

# The following load_balance_algorithms are available at the moment:
#
# "load", "round-robin", "random"
#
# For "load" you need a script called nxcheckload in PATH_BIN.
# 
# A sample script, which you can change to your needs it shipped with
# FreeNX under the name nxcheckload.sample.

#LOAD_BALANCE_ALGORITHM="random"

# By setting ENABLE_LOADBALANCE="1" you can let users choose their
# preferred host, while being forwarded to another server. Of course
# this is just a preference. The loadbalancing algorithm can completely
# choose to ignore the users choice.

#ENABLE_LOAD_BALANCE_PREFERENCE="0"

#########################################################################
# Services directives
#########################################################################

# FreeNX with ENABLE_ESD_PRELOAD="1" will automatically try to setup
# the sound with the help of the esd media helper.
#
# Currently ESD will be used just by the Windows NX Client.
#
# Be sure that $ESD_BIN_PRELOAD is in your path, does exist and work
# before enabling this directive.

#ENABLE_ESD_PRELOAD="0"
#ESD_BIN_PRELOAD="esddsp"

# FreeNX with ENABLE_ARTSD_PRELOAD="1" will automatically try to setup
# the sound with the help of the artsd media helper.
#
# Currently ARTSD will be used just by the Linux NX Client.
#
# Be sure that $ARTSD_BIN_PRELOAD is in your path, does exist and work
# before enabling this directive.

#ENABLE_ARTSD_PRELOAD="0"
#ARTSD_BIN_PRELOAD="artsdsp"

# FreeNX with ENABLE_KDE_CUPS="1" will automatically write 
# $KDE_PRINTRC and put the current used socket into it.
#
# If you additionally enable ENABLE_KDE_CUPS_DYNAMIC it will set the 
# Host entry to the script nxcups-gethost, which dynamically tries all 
# possible entries to find the current printing host.
#
# The order is: CUPS_SERVER (env var), ~/.cups/client.conf, $KDE_PRINTRC,
#               $CUPS_DEFAULT_SOCK, localhost
#
# So this option is most useful with ENABLE_CUPS_SERVER_EXPORT="1".
# 
# $KDE_PRINTRC is automatically calculated if its not set.

#ENABLE_KDE_CUPS="0"
#ENABLE_KDE_CUPS_DYNAMIC="0"
#KDE_PRINTRC="$KDEHOME/share/config/kdeprintrc"

# FreeNX with ENABLE_CUPS_SERVER_EXPORT="1" will automatically
# export the environment variable CUPS_SERVER.

#ENABLE_CUPS_SERVER_EXPORT="1"

# FreeNX with ENABLE_CUPS_SEAMLESS will automatically try to download the 
# necessary ppds from the client.
# 
# As the forwarding is just active as soon as nxagent is started,
# we need a small delay of $CUPS_SEAMLESS_DELAY.
#
# Note: You need to use a patched cupsd on client side.

#ENABLE_CUPS_SEAMLESS="0"
#CUPS_SEAMLESS_DELAY="10"

# FreeNX with ENABLE_FOOMATIC will integrate the foomatic db to the list
# of available ppd drivers via the $COMMAND_FOOMATIC command.

#ENABLE_FOOMATIC="1"
#COMMAND_FOOMATIC="/usr/lib/cups/driver/foomatic-ppdfile"

# CUPS_BACKEND and CUPS_ETC are the corresponding paths of your CUPS 
# installation.

#CUPS_BACKEND="/usr/lib/cups/backend"
#CUPS_IPP_BACKEND="$CUPS_BACKEND/nxipp"
#CUPS_DEFAULT_SOCK="/var/run/cups/cups.sock"
#CUPS_ETC="/etc/cups"

# SAMBA_MOUNT_SHARE_PROTOCOL is a key to configure the supported 
# protocols for mounting shares.
#
# This key can be set to the following values:
#
# both, either SMB and CIFS protocol are supported, this is the default value.
# smbfs, only SMB protocol is supported.
# cifs, only CIFS protocol is supported.
# none, no network file-sharing protocol is supported.

#SAMBA_MOUNT_SHARE_PROTOCOL="both"

# FreeNX with ENABLE_SAMBA_PRELOAD="1" will automatically setup
# port 445 and 139 and forward them to the used samba port.
#
# This enables samba browsing to the local subnet in for example 
# konqueror.
#
#ENABLE_SAMBA_PRELOAD="0"

# FreeNX with ENABLE_SOURCE_BASH_PROFILE="1" will source the users ~/.bash_profile
# before application startup as we are kind of a login shell.
#
# With this key this behaviour can be enabled (default) or disabled.
# 
#ENABLE_SOURCE_BASH_PROFILE="1"

#########################################################################
# Path directives
#########################################################################

# USER_FAKE_HOME is the base directory for the .nx directory. Use this
# parameter instead of the users home directory if $HOME is on a NFS share.
# Note that this directory must be unique for every user! To accomplish this
# it is recommended to include $USER in the path.
#USER_FAKE_HOME=$HOME

# Add the nx libraries to LD_LIBRARY_PATH before starting nx agents.
# WARNING: This will NOT (and should not) affect applications. ONLY Disable
# this if the nx libraries are in a standard system path (such as /usr/lib)!
#SET_LD_LIBRARY_PATH="1"


# The command binary for the default window manager. If set it is run when a
# 'unix-custom' session is requested by the NX Client and an application
# to run is specified. It defaults to empty (ie no WM is run).
# If KILL_DEFAULT_X_WM is set the WM is terminated after the started 
# application finishes. Else FreeNX will wait for the WM to complete.
#DEFAULT_X_WM=""
#KILL_DEFAULT_X_WM="1"

# When a 'unix-default' session is requested by the client the user's X startup
# script will be run if pressent and executable, otherwise the default X
# session will be run.
# Depending on distribution USER_X_STARTUP_SCRIPT might be .Xclients, .xinitrc
# and .Xsession
# Depending on distribution DEFAULT_X_SESSION might be /etc/X11/xdm/Xsession,
# /etc/X11/Sessions/Xsession or /etc/X11/xinit/xinitrc
#USER_X_STARTUP_SCRIPT=.Xclients
DEFAULT_X_SESSION=/etc/X11/xdm/Xsession

# The key that contains the name of the script that starts a KDE session.
# It's run when a 'unix-kde' session is requested by the client.
COMMAND_START_KDE=startxfce4

# The key that contains the name of the script that starts a gnome session.
# It's run when a 'unix-gnome' session is requested by the client.
#COMMAND_START_GNOME=gnome-session

# The key that contains the name of the script that starts a CDE session.
# It's run when a 'unix-cde' session is requested by the client.
#COMMAND_START_CDE=cdwm

# The key that contains the name of the complete path of command name
# 'xterm'. It is run when a unix "xterm" session is requested by the
# client.
#COMMAND_XTERM=xterm

# The key that contains the name of the complete path of command name
# 'xauth'.
#COMMAND_XAUTH=/usr/bin/xauth

# The key that contains the name of the complete path of command name
# 'smbmount'.
#COMMAND_SMBMOUNT=smbmount

# The key that contains the name of the complete path of command name
# 'smbumount'.
#COMMAND_SMBUMOUNT=smbumount

# The key that contains the name of the complete path of command name
# 'mount.cifs'.
#COMMAND_SMBMOUNT_CIFS=/sbin/mount.cifs

# The key that contains the name of the complete path of command name
# 'umount.cifs'.
#COMMAND_SMBUMOUNT_CIFS=/sbin/umount.cifs

# The key that contains the name of the complete path of the 'netcat' command.
#COMMAND_NETCAT=netcat

# The key that contains the name of the complete path of the 'ssh' and
# 'ssh-keygen' command.
#COMMAND_SSH=ssh
#COMMAND_SSH_KEYGEN=ssh-keygen

# The key that contains the name of the complete path of the 'cupsd' command.
#COMMAND_CUPSD=/usr/sbin/cupsd

# The tool to generate md5sums with
COMMAND_MD5SUM="md5sum"

# The key that contains the name of the complete path of the 'rdesktop' command.
#COMMAND_RDESKTOP=rdesktop

# The key that contains the name of the complete path of the 'vncviewer' command.
#COMMAND_VNCVIEWER=vncviewer

# The key that contains the name of the complete path of the 'vncpasswd' command.
# By default the builtin nxpasswd is used.
#COMMAND_VNCPASSWD="$PATH_BIN/nxpasswd"

# The key that contains the name of the complete path of the 'x11vnc' command.
#COMMAND_X11VNC=x11vnc

# The key that contains the name of the complete path of the 'taskset' command.
#COMMAND_TASKSET=taskset

#########################################################################
# Misc directives
#########################################################################

# When you installed an old 1.5.0 NX Backend, set this to 1.
#ENABLE_1_5_0_BACKEND="0"

# When set to 1 this will automatically resume started sessions
#ENABLE_AUTORECONNECT="0"

# When set to 1 this will automatically resume started sessions
# but only if an older client version is used
#ENABLE_AUTORECONNECT_BEFORE_140="1"

# When set to 1 exports NXUSERIP / NXSESSIONID in nxnode
#EXPORT_USERIP="0"
#EXPORT_SESSIONID="1"

# This can be set to any executable, which is started after session startup
# like: $NODE_AUTOSTART {start|restore}
#NODE_AUTOSTART=""

# When set to 1 will start nxagent in rootless mode.
#ENABLE_ROOTLESS_MODE="1"

# If enabled writes entries via the COMMAND_SESSREG program
# into utmp/wtmp/lastlog database.
# Note: You have to make sure that you add the nx user to the
#       utmp or tty group or how its called on your system
#       before this directive works.
#ENABLE_USESSION="1"
#COMMAND_SESSREG="sessreg"

# Extra options sent to the different nx agents. See !M documentation
# for examples of useful parameters.
#AGENT_EXTRA_OPTIONS_RFB=""
#AGENT_EXTRA_OPTIONS_RDP=""
#AGENT_EXTRA_OPTIONS_X="-nolisten tcp"
AGENT_EXTRA_OPTIONS_X="-norender"

# The number of seconds we wait for the nxagent to start before
# deciding startup has failed
#AGENT_STARTUP_TIMEOUT="60"

# The font server the agent will use. If set to "" no font server is used.
# For this to do any good, the client has to have the same font server set
# in /etc/X11/XF86Config
#AGENT_FONT_SERVER=""

# Disable or enable use of 'tcp nodelay' on proxy. Old versions of Linux
# kernels have problems using this option on sockets that will cause a loss
# of TCP connections. This option is not set by default to allow clients to
# specify whether to enable or disable TCP nodelay. Setting this option to
# the value of "0" NX proxy avoids using 'tcp nodelay' but it will cause a
# loss of interaction in sessions.
#PROXY_TCP_NODELAY=""

# Extra options to nxproxy. See !M documentation for useful parameters.
#PROXY_EXTRA_OPTIONS=""

# In case you want to use an external 'rdesktop' command
# set this to "1".
# 
# If nxdesktop cannot be found this is set automatically to "1".
ENABLE_EXTERNAL_NXDESKTOP="1"

# This configuration variable determines if 'rdesktop' command should be run with -k keyboard option
# or if the keyboard should be autodetected.
#
#ENABLE_EXTERNAL_NXDESKTOP_KEYBOARD="1"

# In case you want to use an external 'nxviewer' command
# set this to "1".
# 
# If nxviewer cannot be found this is set automatically to "1".
ENABLE_EXTERNAL_NXVIEWER="1"
ibm-server:~ # 

The “AGENT_EXTRA_OPTIONS_X=”-norender"" line in the file is what got it working. Until adding that line, NX client would make the connection, pass all authentication, then bring up the display window and immediately crash.

All is well now though.

Yes that’s it. I already had too much stuff in AGENT_EXTRA_OPTIONS_X (and it would produce the same result) but never a missing ‘required’ option there. I will add it by default and it will solve the problem.

@shane2943, you saved my sunday, really.

I’m glad I could return the favor to you after all the help you gave me!

Cheers. :slight_smile:

I rebuilt NX with nx-agent-3.5.0-9 - it was using nx-agent-3.5.0-7 before. It seems to have fixed the rendering issue. It doesn’t crash anymore without “-norender”, although this option is still set by default by freenx-setup. You might try with and without -norender and see what is best.