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

stephen mallette commented on TINKERPOP-1978:
---------------------------------------------

The problem with retry is exactly what you're saying - exceptions are graph 
provider specific and therefore by the time the exception gets to the driver 
it's generalized and the driver wouldn't know when to retry. In the future, I 
think we would want to more closely connect {{Graph}} implementations to 
remoting/network/server portions of TinkerPop so that we could better deal with 
this, though in the past, most providers haven't liked TinkerPop forcing them 
down specific exception paths in the test suite as they have found that 
inflexible and onerous - so, we would still need to be sensitive to that.

> Check for Websocket connection state when retrieved from Connection Pool 
> missing
> --------------------------------------------------------------------------------
>
>                 Key: TINKERPOP-1978
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1978
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: dotnet
>    Affects Versions: 3.3.3
>            Reporter: Jamilu Abubakar
>            Priority: Major
>
> When retrieving a connection from the connection pool there is no check to 
> see what the current connection state of the websocket is before it is used.  
> This means that if the websocket were to be closed because the server 
> recycled or the connection was aborted by the server since it was last used 
> and its Send method were to be called the following exception would be thrown:
> {quote}Error during execution ExecuteJObjectQueryAsync method. Exception: 
> System.Net.Http.WinHttpException (0x80072EFF): The connection with the server 
> was terminated abnormally
> at System.Net.WebSockets.WinHttpWebSocket.SendAsync(ArraySegment`1 buffer, 
> WebSocketMessageType messageType, Boolean endOfMessage, CancellationToken 
> cancellationToken)
> at System.Net.WebSockets.WebSocketHandle.SendAsync(ArraySegment`1 buffer, 
> WebSocketMessageType messageType, Boolean endOfMessage, CancellationToken 
> cancellationToken)
> at Gremlin.Net.Driver.WebSocketConnection.<SendMessageAsync>d__5.MoveNext()
> {quote}
>  
> Please add check the Websocket state before use, handle exceptions due to 
> closed or aborted connections and ideally have an extensible retry handler.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to