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

Executor thread is not returned on channel close

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.4.0, 3.3.5
    • Fix Version/s: None
    • Component/s: driver
    • Labels:
      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

            People

            • Assignee:
              Unassigned
              Reporter:
              divijvaidya Divij Vaidya
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: