The X2Go Client should test if that X2Go Server address works (not the broker).
The broker cannot decide if a machine is down or not. Only the client can.
(Following up on a discussion at https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=691).
We have to think very generically. There may be a scenario where the
broker machine may be on an network segment where it cannot ping/reach
the X2Go Servers.
The X2Go Clients can reach the X2Go Broker. The broker provides an
X2Go Server address on the "selectsession" broker task to the X2Go
Client. Then the X2Go Client should test if that X2Go Server address
works (via a simple ping6/ping command, machines should always be
pingable!!!). If the ping fails, X2Go Client should go back to the
broker and say: hey, that server failed for me, give me another one
(but not the one you already gave me).
I fear we need to do four things for this bug to get fixed:
- extend broker/client communication protocol (second/third/...
selectsession call with a list of hosts that did not work on previous attempts) - extend X2Go Session Broker with an exclude-hosts (or so)
parameter for the selectsession task - Adapt X2Go Client: ping X2Go Server, go back to the broker if
server is down and request another server - Adapt Python X2Go: dito