Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2175

Executor thread is not returned on channel close

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.4.0, 3.3.5
    • 3.5.0, 3.4.5, 3.3.10
    • driver
    • None

    Description

      This issue was originally discussed in https://issues.apache.org/jira/browse/TINKERPOP-2169

      Due to an error (such as CorruptedFrameException) a client might decide to close the Netty channel to the server with a CloseWebsocketFrame. On the server, although the channel gets closed, there might be some executor threads waiting for watermark to clear which will not clear in these cases since client has already given up on these requests. This leads to these executors waiting for the client to consume results till the timeout.

      A simple fix would be to check for channel.isActive() while waiting for channel to become writable at [1] and [2].

      [1]https://github.com/apache/tinkerpop/blob/d1a3fa147d1f009ae57274827c9b59426dfc6e58/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/traversal/TraversalOpProcessor.java#L533
      [2]https://github.com/apache/tinkerpop/blob/d1a3fa147d1f009ae57274827c9b59426dfc6e58/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractOpProcessor.java#L141 

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            spmallette Stephen Mallette
            divijvaidya Divij Vaidya
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment