[X2go-Dev] 3.99 Testing - Multiple X2goclient instances fail
Mike Gabriel
mike.gabriel at das-netzwerkteam.de
Fri Jul 29 10:21:25 CEST 2011
Hi Daniel,
On Fr 29 Jul 2011 07:24:40 CEST Daniel Lindgren wrote:
> [...]
>
> I've been trying to think of some way to make x2go automatically only
> use free ports, but since there are possibly several clients and
> servers involved in multiple incoming and outgoing sessions, the only
> safe way I've come up with would be to register used ports (or reserve
> port ranges) on a shared resource somewhere, which would make all x2go
> clients and servers dependent on that one resource.
What you have been describing above is the old, well known
NXServer/NXClient problem.
To my experience it does not exist with X2go (at least not with
pyhoca-gui ;-) ).
The connecting stuff is a bit tricky...
- x2goclient connects via SSH and launches either x2gostartagent or
x2goresume-session
- x2gostartagent will try to detect a free server-side port >30000.
This port is put into the session database table. (Make sure you do
not have other server-side stuff running that claims ports between
30000 and 30000++.
- x2goresume-session will pick the formerly detected port from the session
database table (i.e. SQLite or postgres) and presume it is still unused
(as it should be, unless unused by X2go -> x2gostartagent avoids claiming
ports that are in the database marked with S (suspended) or R (running)
state
- say we detect a free server-side port: 30015: x2gostartagent will
launch the
XNest-like x2goagent XServer, listening for incoming connections on port
localhost:300015.
- x2goclient now tries to set up a forwarding tunnel from
client to server (-L 30000:localhost:30015)
- if the local port 30000 (the first one in the above expression) is already
in use, it simply selects another port. Each selected port is
probed before
usage. That is done by x2goclient.
- say we end up with -L 30028:localhost:30015
The problem you observe: ”the remote proxy closed the connection while
negotiating …” to my point of view stems from uncleanly closed SSH
connections. Try to restart the SSH daemon when this error occurs and
you should be able to connect again. This error can also be caused by
the sound/sshfs tunnels. Here the same cause applies: unclean shutdown
of SSH connections.
Reasons may be:
o unclean x2goclient/pyhoca-gui code
o line failures (so the clients do not get the chance to cancel the port
forwarding requests...)
You may do the following to debug:
o try if the problem occurs in the same way when you use pyhoca-gui/-cli
o pyhoca-gui (i.e. python-x2go) tries to restore the mal-closure of SSH
port forwardings... You may try to resume a session twice, the second
time you should get a session window
The addressed issue was a big problem for Python X2go before version
0.1.0.0. It took me quite some sleepness nights to get rid of it by
90%+.
Greets,
Mike
--
DAS-NETZWERKTEAM
mike gabriel, dorfstr. 27, 24245 barmissen
fon: +49 (4302) 281418, fax: +49 (4302) 281419
GnuPG Key ID 0xB588399B
mail: mike.gabriel at das-netzwerkteam.de, http://das-netzwerkteam.de
freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: Digitale PGP-Unterschrift
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20110729/24877da5/attachment.pgp>
More information about the x2go-dev
mailing list