sbcbus created GUACAMOLE-1938:
---------------------------------
Summary: Try other servers for load balancing group if a server
times out/other connectivity event
Key: GUACAMOLE-1938
URL: https://issues.apache.org/jira/browse/GUACAMOLE-1938
Project: Guacamole
Issue Type: Improvement
Components: guacamole-auth-jdbc
Affects Versions: 1.5.4
Reporter: sbcbus
Attachments: Screenshot 2024-04-04 at 3.04.23 PM.png
Apologies if this issue exists somewhere, but I searched and posted on the
mailing list.
>From trying myself with some test cases, receiving issue reports via my users,
>and discussions on the mailing list, it appears the Guacamole "load balancing"
>algorithm only handles the state where other users are connected and* does not
>try other connections if a particular connection does not work (such as an
>invalid connection address or timeout because it is down).*
I would love for this functionality to exist to greatly reduce scenarios such
as when one machine out of many is down and users seem to always get routed to
that machine (either via affinity, or the LB algorithm) even if many other
working ones exist.
In the scenario with a machine that isn't responding, I get a "connection is
closed because server is taking too long to respond", but others are not tried.
Screenshot is attached, and in the logs I get this:
{noformat}
Exception in thread "Thread-3" java.lang.IllegalStateException: Message will
not be sent because the WebSocket session has been closed
at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:449)
at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:307)
at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:249)
at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:191)
at
org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:36)
at
org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint.sendInstruction(GuacamoleWebSocketTunnelEndpoint.java:152)
at
org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint.sendInstruction(GuacamoleWebSocketTunnelEndpoint.java:172)
at
org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint.access$100(GuacamoleWebSocketTunnelEndpoint.java:53)
at
org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint$2.run(GuacamoleWebSocketTunnelEndpoint.java:238)
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)