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)

Reply via email to