[X2go-Dev] 3.99 Testing - Multiple X2goclient instances fail

Daniel Lindgren bd.dali at gmail.com
Fri Jul 29 07:24:40 CEST 2011


2011/7/28 John A. Sullivan III <jsullivan at opensourcedevel.com>:
<snip>
>> > > > > >>> I believe I have tested this on both Linux and Windows - becoming a bit
>> > > > > >>> of a blur after a long hot day!.  In previous versions of X2GoClient, I
>> > > > > >>> could open multiple instances and connect to multiple different X2Go
>> > > > > >>> Server simultaneously.  It was not official and it generated a few
>> > > > > >>> errors but it worked.  This is actually a highly desirable feature for a
>> > > > > >>> possible very large account of ours.
>> > > > > >>>
>> > > > > >>> For some reason, that has stopped working in 3.99.  It did not work in
>> > > > > >>> 3.0.1.18 either.  It does work in Pyhoca so I do not think it is an
>> > > > > >>> impossibility.  If at all possible, we would like to see this
>> > > > > >>> functionality restored - preferably officially but even accidentally as
>> > > > > >>> it was would do :)  Thanks - John

One thing I've had problems with in the past is TCP port conflicts.
When x2go starts a session, it always uses a TCP port above 30000,
decided by x2gostartagent on the server side. If you start multiple
sessions from one client to several different servers, wouldn't that
create a port conflict sooner or later? Maybe that is what you've
seen, with conflicts causing sessions to terminate.

Example, x2go on client CA connects (a ssh tunnel) to server SA on
port 30001 (-L 30001:localhost:30001 user at SA). You then start another
session from client A to server B, also using port 30001 (-L
30001:localhost:30001 user at SB). Doesn't that create a port conflict on
client CA? You have two separate ssh tunnels trying to use the same
TCP port on the client.

The problems I've seen have been when client CA has connected to
server SA, which then has been used as a "gateway client" to connect
to other servers. Sometimes the session between CA and SA used port
30001 and the session(s) between SA and other server SB also used port
30001. I could always set up the sessions, but if I tried to reconnect
from client CA to SA I got an error message about ”the remote proxy
closed the connection while negotiating …”. My workaround was to
separate the port ranges used by x2gostartagent on the servers; server
SA now uses 30001-, server SB uses 30101-, server SC uses 30201- and
so on. No more conflicts.

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.

Cheers,
Daniel



More information about the x2go-dev mailing list