What steps will reproduce the problem? 1. Install from source svn revision 9 2. Install nxclient and nxnode (latest) 3. Try to connect
What is the expected output? What do you see instead?
I expect no errors, but the following error appears in syslog:
Jul 8 23:49:35 descent nxserver-login[19310]: ERROR Caught exception
Jul 8 23:49:35 descent nxserver-login[19310]: Traceback (most recent call
last):
Jul 8 23:49:35 descent nxserver-login[19310]: File "/usr/lib/python2.6/
dist-packages/neatx/cli.py", line 62, in Main
Jul 8 23:49:35 descent nxserver-login[19310]: self.Run()
Jul 8 23:49:35 descent nxserver-login[19310]: File "/usr/lib/python2.6/
dist-packages/neatx/app/nxserver_login.py", line 288, in Run
Jul 8 23:49:35 descent nxserver-login[19310]: LoginServer
(self.cfg).Start()
Jul 8 23:49:35 descent nxserver-login[19310]: File "/usr/lib/python2.6/
dist-packages/neatx/protocol.py", line 135, in Start
Jul 8 23:49:35 descent nxserver-login[19310]: self.SendBanner()
Jul 8 23:49:35 descent nxserver-login[19310]: File "/usr/lib/python2.6/
dist-packages/neatx/app/nxserver_login.py", line 280, in SendBanne
Jul 8 23:49:35 descent nxserver-login[19310]: utils.FormatVersion
(self._cfg.nx_protocol_version, ".",
Jul 8 23:49:35 descent nxserver-login[19310]: File "/usr/lib/python2.6/
dist-packages/neatx/config.py", line 137, in _GetNxProtocolVersion
Jul 8 23:49:35 descent nxserver-login[19310]:
constants.PROTOCOL_VERSION_DIGITS)
Jul 8 23:49:35 descent nxserver-login[19310]: File "/usr/lib/python2.6/
dist-packages/neatx/utils.py", line 820, in ParseVersion
Jul 8 23:49:35 descent nxserver-login[19310]: value = int(parts[idx])
Jul 8 23:49:35 descent nxserver-login[19310]: ValueError: invalid literal
for int() with base 10: '1:3'
What version of the product are you using? On what operating system? ubuntu 9.04 x86-64
Please provide any additional information below. I fixed this by changing File "/usr/lib/python2.6/dist-packages/neatx/utils.py", line 820 to value = 13
Comment #1
Posted on Jul 9, 2009 by Grumpy MonkeyTry adding ":" to constants.NXAGENT_VERSION_SEP: NXAGENT_VERSION_SEP = ".-~:"
If this doesn't help, what's the output of constants.NXAGENT_VERSION_COMMAND (the command is most likely “dpkg-query -W --showformat='${Version}' nxagent”)?
Comment #2
Posted on Jul 9, 2009 by Swift WombatHave the same problema, edited /usr/lib/python2.6/dist-packages/neatx/constants.py and back work! :-)
Anyone can commit this change !?
Comment #3
Posted on Jul 9, 2009 by Happy RhinoAh. I see the issue:
dpkg-query -W --showformat='${Version}' nxagent
1:3.3.0-6-0ubuntu1~hardy1
It looks like that version detection really is just too fragile
Comment #4
Posted on Jul 9, 2009 by Happy RhinoThe fix is to manually set the nx protocol version (e.g. 3.3.0) in neatx.conf:
[global] nx-protocol-version = 3.3.0
Comment #5
Posted on Jul 9, 2009 by Helpful Elephantthis one does not help: [global] nx-protocol-version = 3.3.0
still got the error. The hack for me was to change the command from
dpkg-query -W --showformat='${Version}' nxagent to echo 3.3.0 :)
Comment #6
Posted on Jul 14, 2009 by Happy RhinoHey, I committed a fix to make the nx-protocol-version config entry be parsed properly, i'm wondering if it means you don't need to do the "echo 3.3.0" thing. If you get a chance to test, let me know. Thanks.
Comment #7
Posted on Jul 18, 2009 by Massive HippoIn constants.py, why not detect nx version the same way that freenx does? It would be more generic than finding the correct line for dpkg, rpm, pacman, equery (in my case). Something like this works fine here: NXAGENT_VERSION_COMMAND = ("strings %s|grep 'NXAGENT - Version' | sed -e 's/[^0-9.]*//'" % NXAGENT_PKGNAME)
Comment #8
Posted on Jul 20, 2009 by Happy RhinoThe reason we haven't done that is because it's horrible -)
Comment #9
Posted on Jul 22, 2009 by Happy RabbitHi, I also use a current check-out on Ubuntu.
dpkg-query -W --showformat='${Version}' nxagent 1:3.3.0-6-0ubuntu1
and it doesn’t work
Started 2009-07-22 17:29:39,926: nxserver-login pid=31777 ERROR Caught exception Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/neatx/cli.py", line 58, in Main self.cfg = config.Config(constants.CONFIG_FILE) File "/usr/lib/python2.6/dist-packages/neatx/config.py", line 119, in init constants.PROTOCOL_VERSION_DIGITS) File "/usr/lib/python2.6/dist-packages/neatx/utils.py", line 815, in ParseVersion parts = split_fn(version) File "/usr/lib/python2.6/dist-packages/neatx/utils.py", line 769, in return lambda ver: re_split(ver, count)[:count] TypeError: expected string or buffer EOF on stderr, exiting
The « 1: » in the front is the epoch. cf. http://www.debian.org/doc/debian-policy/ch- controlfields.html#s-f-Version
Comment #10
Posted on Jul 22, 2009 by Happy RhinoYeah, basically the auto-version-detection is badly broken. The best thing to do (and hence it's in the INSTALL file) is to manually set the nx protocol version in neatx.conf.
Comment #11
Posted on Jul 22, 2009 by Happy RhinoOops, actually INSTALL doesn't say that, what i did instead was make the example conf contain the correct setting. I've just sent a patch to remove the automatic version detection, which should fix this permanently.
Comment #12
Posted on Jul 27, 2009 by Happy RhinoPatch committed. The protocol version now defaults to 3.3.0 (see lib/constants.py), and is overridable via neatx.conf
Comment #13
Posted on Aug 12, 2009 by Helpful HorseHi, this traceback is still present on Fedora 11 although all places that mention protocol version have the same value. nx package is nxagent for fedora. I'm using svn revision 40.
rpm -q nx
nx-3.3.0-35.fc11.i586
grep protocol /etc/neatx.conf
nx-protocol-version = 3.3.0
grep protocol -i /usr/lib/python2.6/site-packages/neatx/constants.py
PROTOCOL_VERSION_DIGITS = [2, 2, 4] DEFAULT_NX_PROTOCOL_VERSION = "3.3.0"
Also in lib/constants.py: NXAGENT_PKGNAME = "nxagent"
This should be only "nx" for Fedora if it matters.
Comment #14
Posted on Aug 12, 2009 by Helpful HorseMy traceback is:
Aug 12 09:20:03 hp-dl585g2-01 nxserver-login-wrapper[20816]: ValueError: invalid
literal for int() with base 10: '0nuse'
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: 2009-08-12 09:20:39,630:
nxserver-login pid=20841 ERROR Caught exception
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: Traceback (most recent
call last):
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: File
"/usr/lib/python2.6/site-packages/neatx/cli.py", line 58, in Main
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: self.cfg =
config.Config(constants.CONFIG_FILE)
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: File
"/usr/lib/python2.6/site-packages/neatx/config.py", line 134, in init
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]:
constants.PROTOCOL_VERSION_DIGITS)
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: File
"/usr/lib/python2.6/site-packages/neatx/utils.py", line 820, in ParseVersion
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: value = int(parts[idx])
Aug 12 09:20:39 hp-dl585g2-01 nxserver-login-wrapper[20838]: ValueError: invalid
literal for int() with base 10: '0nuse'
Status: Fixed
Labels:
Type-Defect
Priority-Medium