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:


    Make closing of connections robust 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:


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=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
> at System.Net.WebSockets.WinHttpWebSocketState.InterlockedCheckAndUpdateState (System.Net.WebSockets.Client,
Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
> at System.Net.WebSockets.WinHttpWebSocket+<CloseAsync>d__30.MoveNext (System.Net.WebSockets.Client,
Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
> [...]
> at Gremlin.Net.Driver.WebSocketConnection+<CloseAsync>d__4.MoveNext (Gremlin.Net,
Version=, 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

View raw message