There is no correlation with deletion of users.
There is, however, a correlation with use of the HTTP tunnel. If a connection fails, or network issues prevent things from working, then the Guacamole client may fallback to the HTTP tunnel. If this happens, but further issues prevent any "read" requests from being made to the HTTP tunnel, then even though guacd will timeout, the HTTP tunnel will never realize this, because it never reads from the socket and thus never encounters any error. The tunnel will just sit there, technically open yet not reading/writing anything.
The WebSocket tunnel is less affected by this, as it has its own read thread and thus does not depend on client interaction for further socket reads.
To fix this, both tunnels should have their own timeouts. Regardless of whether the socket to guacd encounters an error or is closed:
- Tunnels should close themselves if the usual 15 second timeout is reached without any messages received from the client.
- Tunnels should close themselves if the usual 15 second timeout is reached without any messages received from the server.
- Tunnels should not consider messages from the server to be sufficient to satisfy the client timeout, nor messages from the client sufficient to satisfy the server timeout.