[ 
https://issues.apache.org/jira/browse/TINKERPOP-2410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17186155#comment-17186155
 ] 

ASF GitHub Bot commented on TINKERPOP-2410:
-------------------------------------------

divijvaidya opened a new pull request #1318:
URL: https://github.com/apache/tinkerpop/pull/1318


   https://issues.apache.org/jira/browse/TINKERPOP-2410
   
   Consider a situation where the server has sent some results back to the 
client and is waiting for Netty channel to be writable again before sending 
rest of the results. Let's assume that the client dies (or is closed) at this 
instant without consuming the entire set of results. In this case, the server 
threads will continue to wait for the channel to become writable (which it 
never will since client is dead) until the timeout is hit.
   
   With this change, if the connection becomes inactive, the loop will break 
and free up the threads.
   
   ## Testing
   We don't have any test mechanism to check the number of busy server threads. 
Hence, no tests are added to repro this case. Any suggestions on how to add 
tests for such scenarios are welcome!


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> Free up server threads when client is closed
> --------------------------------------------
>
>                 Key: TINKERPOP-2410
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2410
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.4.8
>            Reporter: Divij Vaidya
>            Priority: Minor
>
> Consider a situation where the server has sent some results back to the 
> client and is waiting for Netty channel to be writable again before sending 
> rest of the results. Let's assume that the client dies (or is closed) at this 
> instant without consuming the entire set of results.
> In this case, the server threads will continue to wait for the channel to 
> become writable (which it never will since client is dead) until the timeout 
> is hit.
> We need to change the behaviour such that the waiting thread loop breaks if 
> the channel becomes inactive. Such loop exists at TraversalOpProcessor (for 
> bytecode execution) and AbstractOpProcessor(for string execution) in the 
> server.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to