tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TINKERPOP-2026) Gremlin.Net.Driver should check ClientWebSocket.State before closing
Date Sat, 01 Sep 2018 15:37:00 GMT

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

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

GitHub user FlorianHockmann opened a pull request:

    https://github.com/apache/tinkerpop/pull/925

    Make closing of connections robust TINKERPOP-2026

    https://issues.apache.org/jira/browse/TINKERPOP-2026
    
    This should solve the problem described in the ticket where apparently the server already
initiated closing of the connection when the driver tries to close it which led to an exception.
    
    VOTE +1

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/tinkerpop TINKERPOP-2026

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/tinkerpop/pull/925.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #925
    
----
commit 4965803ae8e9283817e0171e1c463014c9166970
Author: Florian Hockmann <fh@...>
Date:   2018-09-01T15:02:23Z

    Make closing of connections robust TINKERPOP-2026

----


> Gremlin.Net.Driver should check ClientWebSocket.State before closing
> --------------------------------------------------------------------
>
>                 Key: TINKERPOP-2026
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2026
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: dotnet
>    Affects Versions: 3.2.9
>            Reporter: Florian Hockmann
>            Assignee: Florian Hockmann
>            Priority: Minor
>
> User [~samimajed] described in a comment for TINKERPOP-2019 a situation where the Gremlin.Net.Driver
tries to close a {{ClientWebSocket}} which fails because it was apparently already closed:
> {code}
> System.Net.WebSockets.WebSocketException:
> at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState (System.Net.WebSockets.Client,
Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
> at System.Net.WebSockets.WinHttpWebSocketState.InterlockedCheckAndUpdateState (System.Net.WebSockets.Client,
Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
> at System.Net.WebSockets.WinHttpWebSocket+<CloseAsync>d__30.MoveNext (System.Net.WebSockets.Client,
Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
> [...]
> at Gremlin.Net.Driver.WebSocketConnection+<CloseAsync>d__4.MoveNext (Gremlin.Net,
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
> [...]
> {code}
> Gremlin.Net should check the state of the {{ClientWebSocket}} before trying to close
it as the server could have already closed the connection.
> [The implementation for this in SignalR|https://github.com/SignalR/SignalR/blob/1fba14fa3437e24c204dfaf8a18db3fce8acad3c/src/Microsoft.AspNet.SignalR.Core/Owin/WebSockets/WebSocketHandler.cs#L92]
could be a good starting point as it uses the same underlying WebSocket implementation.



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

Mime
View raw message