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

Sami edited comment on TINKERPOP-2019 at 8/14/18 11:49 PM:
-----------------------------------------------------------

Thank you, Florian. 

Let me share the Stack Trace which may be helpful. 
{code:java}
System.InvalidOperationException:
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.WebSocketConnection+<SendMessageAsync>d__5.MoveNext 
(Gremlin.Net, Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.Connection+<SendAsync>d__13.MoveNext (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.Connection+<SubmitAsync>d__8`1.MoveNext (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.ProxyConnection+<SubmitAsync>d__3`1.MoveNext 
(Gremlin.Net, Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.GremlinClient+<SubmitAsync>d__6`1.MoveNext (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.GremlinClientExtensions+<SubmitAsync>d__4`1.MoveNext 
(Gremlin.Net, Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at SampleProject.Repository.Cosmos.Reader+<ExecuteGremlinQuery>d__14.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at SampleProject.Repository.Cosmos.UnitOfWork+<CreatePersonAsync>d__30.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at SampleProject.Controller.PersonController+<Post>d__5.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeActionMethodAsync>d__12.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeNextActionFilterAsync>d__10.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow 
(Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next 
(Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at 
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeInnerFilterAsync>d__14.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeNextExceptionFilterAsync>d__23.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
{code}
Note in the Stack Trace above that once we make a call to ExecuteGremlinQuery, 
all subsequent calls in the stack are calls within Gremlin.Net.Driver.  
{code:java}
at SampleProject.Repository.Cosmos.Reader+<ExecuteGremlinQuery>d__14.MoveNext 
(<...removed...>){code}
 Given that fact, I'm thinking that this may be a bug of Gremlin.Net. 

 

Also, I implemented a try/catch to catch the InvalidOperationException with a 
retry and now we are getting the following error; basically we run out of 
pooled connections and Gremlin.Net shuts down. (Yikes!)  : )

 
{code:java}
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 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.WebSocketConnection+<CloseAsync>d__4.MoveNext 
(Gremlin.Net, Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.Connection+<CloseAsync>d__10.MoveNext (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.ConnectionPool+<TeardownAsync>d__15.MoveNext 
(Gremlin.Net, Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Process.Utils.WaitUnwrap (Gremlin.Net, Version=3.3.0.0, 
Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at Gremlin.Net.Driver.ConnectionPool.CloseAndRemoveAllConnections (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at Gremlin.Net.Driver.ConnectionPool.AddConnectionIfOpen (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at Gremlin.Net.Driver.ProxyConnection.Dispose (Gremlin.Net, Version=3.3.0.0, 
Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at Gremlin.Net.Driver.GremlinClient+<SubmitAsync>d__6`1.MoveNext (Gremlin.Net, 
Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Gremlin.Net.Driver.GremlinClientExtensions+<SubmitAsync>d__4`1.MoveNext 
(Gremlin.Net, Version=3.3.0.0, Culture=neutral, PublicKeyToken=d2035e9aa387a711)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at SampleProject.Repository.Cosmos.Reader+<ExecuteGremlinQuery>d__14.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
SampleProject.Repository.Cosmos.UnitOfWork+<CreateAddressAsync>d__30.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at SampleProject.Repository.Cosmos.UnitOfWork+<CreatePersonAsync>d__30.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at SampleProject.Controller.PersonController+<Post>d__5.MoveNext 
(<...removed...>)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification
 (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeActionMethodAsync>d__12.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeNextActionFilterAsync>d__10.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow 
(Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next 
(Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at 
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeInnerFilterAsync>d__14.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess 
(System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=7cec85d7bea7798e)
at 
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeNextExceptionFilterAsync>d__23.MoveNext
 (Microsoft.AspNetCore.Mvc.Core, Version=2.0.2.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60)
{code}
 

 

One side note: I did _very slightly_ modify the stack trace just to remove 
personal information and our local class & method names but only any place 
you'd see "SampleProject"

 

At this point, it looks like we need to pursue a solution. Would you please 
help us take a close look? 

Please let me know what I can do on my end to help get this resolved.

Unfortunately the error is very difficult to reproduce. Also, I'm not sure if I 
can abstract out Cosmosdb and only work with the Gremlin server since I don't 
have experience with it. 

 



> Gremlin.Net.Driver.WebSocketConnection throws System.InvalidOperationException
> ------------------------------------------------------------------------------
>
>                 Key: TINKERPOP-2019
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2019
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: dotnet
>    Affects Versions: 3.3.3
>         Environment: Azure App Service
>            Reporter: Sami
>            Priority: Critical
>
> We're getting the following {{System.InvalidOperationException}} error 
> message:
> {code:c#}
> "There is already one outstanding 'SendAsync' call for this WebSocket 
> instance. ReceiveAsync and SendAsync can be called simultaneously, but at 
> most one outstanding operation for each of them is allowed at the same time.
> Problem Id:
> System.InvalidOperationException at 
> Gremlin.Net.Driver.WebSocketConnection+<SendMessageAsync>d__5.MoveNext"{code}
>  
>  We get this exception sporadically and only a few times out of thousands. 
> Unfortunately we have not been able to reproduce it.
>   
>  I understand that when dealing with web sockets, it is allowed to have only 
> a single pending "send" or a single pending "receive".
>   
>  After looking at GitHub's WebSocketConnection class, I don't see any 
> orchestration between SendMessageAsync's {{_client.SendAsync}} (currently 
> line 54) and ReceiveMessageAsync's {{_client.ReceiveAsync}} (currently line 
> 66). 
>   
>  Reference Link: 
>  
> [https://github.com/apache/tinkerpop/blob/master/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs]
>   
>  I'm wondering if not having orchestration in the WebSocketConnection class 
> to keep the single pending "send" or a single pending "receive" rule may be 
> the cause. 
>   
>  In our .NET Core web api application, we create the GremlinConnection as a 
> singleton in Startup.cs and then have one central call that makes Gremlin 
> calls; i.e. it's a very straightforward implementation.
>   
>  Startup.cs:
> {code:c#}
> public void ConfigureServices(IServiceCollection services)
> {
>     //...other stuff removed for brevity
>     services.AddSingleton<IGremlinConnection, GremlinConnection>();
> }{code}
>  
>  Reader.cs:
> {code:c#}
> public async Task<IReadOnlyCollection<dynamic>> ExecuteGremlinQuery(string 
> query)
> {
>     try
>     {
>         return await _gremlinConnection.Client.SubmitAsync<dynamic>(query);
>     }
>     catch (Gremlin.Net.Driver.Exceptions.ResponseException responseException)
>     {
>         //our error handling removed for brevity!    
>     }
> }{code}
>   
>  We use the Gremlin.Net version 3.3.3 nuget package and the 
> Microsoft.NETCore.App SDK
>   
>  Would it be possible to identify if this is indeed a bug on Gremlin.NET? 
>  And if it is, any thoughts on a best-practice (temporary) work-around that 
> we can implement?



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

Reply via email to