> How do the failing environment and development environment differ?
I was able to replicate the error by using an iptables rule to drop all
packets going to the port of the server running Tomcat. Once that rule was
set, the Tomcat logs were acting as we expect with the connection to guacd
dropped (see below).
However, the client was not able to close the tunnel properly after the 15
second timeout and disconnect due to the communications drop resulting in
the black screen conditions I described. I was able to resolve this
behavior by patching Tunnel.js to keep trying the reconnect action if the
code was UPSTREAM_TIMEOUT so Guacamole would reconnect properly once the
external comm issue disappeared. This is probably a very edge case
scenario!
/ // Ignore if already closed
if (tunnel.state === Guacamole.Tunnel.State.CLOSED && status.code
!== Guacamole.Status.Code.UPSTREAM_TIMEOUT)
return;/
14:36:58.141 [Thread-11] ERROR o.a.g.w.GuacamoleWebSocketTunnelEndpoint -
Connection to guacd terminated abnormally: Connection to guacd timed out.
14:36:58.154 [Thread-11] DEBUG o.a.g.w.GuacamoleWebSocketTunnelEndpoint -
Internal error during connection to guacd.
org.apache.guacamole.GuacamoleUpstreamTimeoutException: Connection to guacd
timed out.
at
org.apache.guacamole.io.ReaderGuacamoleReader.read(ReaderGuacamoleReader.java:182)
~[guacamole-common-0.9.10-incubating.jar:na]
at
org.apache.guacamole.io.ReaderGuacamoleReader.readInstruction(ReaderGuacamoleReader.java:197)
~[guacamole-common-0.9.10-incubating.jar:na]
at
org.apache.guacamole.protocol.FilteredGuacamoleReader.readInstruction(FilteredGuacamoleReader.java:83)
~[guacamole-common-0.9.10-incubating.jar:na]
at
org.apache.guacamole.protocol.FilteredGuacamoleReader.readInstruction(FilteredGuacamoleReader.java:83)
~[guacamole-common-0.9.10-incubating.jar:na]
at
org.apache.guacamole.protocol.FilteredGuacamoleReader.read(FilteredGuacamoleReader.java:66)
~[guacamole-common-0.9.10-incubating.jar:na]
at
org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint$2.run(GuacamoleWebSocketTunnelEndpoint.java:162)
~[guacamole-common-0.9.10-incubating.jar:na]
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_151]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
~[na:1.8.0_151]
at java.net.SocketInputStream.read(SocketInputStream.java:171)
~[na:1.8.0_151]
at java.net.SocketInputStream.read(SocketInputStream.java:141)
~[na:1.8.0_151]
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
~[na:1.8.0_151]
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
~[na:1.8.0_151]
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[na:1.8.0_151]
at java.io.InputStreamReader.read(InputStreamReader.java:184)
~[na:1.8.0_151]
at
org.apache.guacamole.io.ReaderGuacamoleReader.read(ReaderGuacamoleReader.java:171)
~[guacamole-common-0.9.10-incubating.jar:na]
... 5 common frames omitted
14:36:58.156 [Thread-11] INFO o.a.g.tunnel.TunnelRequestService - User
"bkalb" disconnected from connection group "6". Duration: 78430 milliseconds
14:36:58.157 [Thread-11] DEBUG o.a.g.net.InetGuacamoleSocket - Closing
socket to guacd.
--
Sent from: http://apache-guacamole-incubating-users.2363388.n4.nabble.com/