[
https://issues.apache.org/jira/browse/GUACAMOLE-1938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17834107#comment-17834107
]
Mike Jumper commented on GUACAMOLE-1938:
----------------------------------------
{quote}
it appears the Guacamole "load balancing" algorithm ... does not try other
connections if a particular connection does not work (such as an invalid
connection address or timeout because it is down).
{quote}
It does, actually:
https://github.com/apache/guacamole-client/blob/83f0f193bd08f328fe43147bbe6787d721628509/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java#L703
Perhaps it's just not patient enough while waiting for those failures?
> 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
> Priority: Trivial
> 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 – which as another
> request it would be nice if that could be a bit randomized to avoid always
> being taken to the same machine) 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)