Uploaded image for project: 'Apache Guacamole - Contributions'
  1. Apache Guacamole - Contributions
  2. GUAC-1404

Active sessions list sometimes contains closed connections

    Details

      Description

      Though we have not yet been able to reproduce this, it has been reported that the active sessions list sometimes contains connections that are no longer in progress, and which can only be removed from the list by explicitly killing them with the "Kill Sessions" button.

      If this proves to be reproducible, we must determine how active session tracking is failing and address the issue. Sadly, problems with tracking of sessions are notoriously difficult to reproduce.

        Attachments

          Issue Links

            Expenses

              Activity

              Hide
              mike.jumper Michael Jumper added a comment -
              NOTE:

              It has been reported that this problem may correlate with the regular deletion of users, and that this may occur primarily when connections are established and then the corresponding users are deleted prior to disconnect. This has not been confirmed, but is something to keep in mind.

              Show
              mike.jumper Michael Jumper added a comment - NOTE: It has been reported that this problem may correlate with the regular deletion of users, and that this may occur primarily when connections are established and then the corresponding users are deleted prior to disconnect. This has not been confirmed, but is something to keep in mind.
              Hide
              mike.jumper Michael Jumper added a comment -

              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:

              1. Tunnels should close themselves if the usual 15 second timeout is reached without any messages received from the client.
              2. Tunnels should close themselves if the usual 15 second timeout is reached without any messages received from the server.
              3. 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.
              Show
              mike.jumper Michael Jumper added a comment - 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.
              Hide
              mike.jumper Michael Jumper added a comment -

              Handled as a defect for the 0.9.9 release via GUAC-1427.

              Show
              mike.jumper Michael Jumper added a comment - Handled as a defect for the 0.9.9 release via GUAC-1427 .

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  mike.jumper Michael Jumper
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: