-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System.ArgumentException on Ping SendPacket #53
Comments
Sorry, for the multiple edits - was losing characters. |
I'm investigating this now but it may have to do with the PollingXHR.Create's Task.Run never finishing until it runs out of threads and then finally craps out due to exceptions. I think this is due to if incoming messages (data) continuously calling OnData, which then recurses back into a new Poll and a new Task.Run. I'm thinking that Polling._onData should not initiate another Poll, but instead just finish with parsing. |
To recreate this issue, use PollingXHR only and then send socket information from the server every 500ms-1000ms indefinitely. The client will continue to recurse into a new Poll via the _onData function - not allowing the initial PollingXHR.Create's Task.Run to complete. Eventually, due to stack overflow/memory issues, Create's will fail into the general exception try/catch. |
Application: SummitCommunicationService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentException
at System.Collections.Hashtable.Insert(System.Object, System.Object, Boolean)
at System.Collections.Hashtable.Add(System.Object, System.Object)
at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(System.String, System.Object)
at System.Collections.Specialized.NameValueCollection.Add(System.String, System.String)
at System.Net.HttpWebRequest.SetSpecialHeaders(System.String, System.String)
at System.Net.HttpWebRequest.set ContentType(System.String)
at Quobject.EngineIoClientDotNet.Client.Transports.PollingXHR+XHRRequest.Create()
at Quobject.EngineIoClientDotNet.Client.Transports.PollingXHR.DoWrite(Byte[], System.Action)
at Quobject.EngineIoClientDotNet.Client.Transports.Polling+SendEncodeCallback.Call(System.Object)
at Quobject.EngineIoClientDotNet.Parser.Packet.EncodePayload(Quobject.EngineIoClientDotNet.Parser.Packet[], Quobject.EngineIoClientDotNet.Parser.IEncodeCallback)
at Quobject.EngineIoClientDotNet.Client.Transports.Polling.Write(System.Collections.Immutable.ImmutableList
1(Quobject.EngineIoClientDotNet.Parser.Packet)) at Quobject.EngineIoClientDotNet.Client.Transport.Send(System.Collections.Immutable.ImmutableList
1(Quobject.EngineIoClientDotNet.Parser.Packet))at Quobject.EngineIoClientDotNet.Client.Socket.Flush()
at Quobject.EngineIoClientDotNet.Client.Socket.SendPacket(Quobject.EngineIoClientDotNet.Parser.Packet, System.Action)
at Quobject.EngineIoClientDotNet.Client.Socket.(SetPing)b 65 0()
at Quobject.EngineIoClientDotNet.Thread.EasyTimer+()c DisplayClass2 0.(SetTimeout)b 0()
at System.Threading.Tasks.AwaitTaskContinuation.InvokeAction(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback, System.Object, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.AwaitTaskContinuation+()c.(ThrowAsyncIfNecessary)b 18 0(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading. ThreadPoolWaitCallback.PerformWaitCallback()
The text was updated successfully, but these errors were encountered: