Open SteveHarveyUK opened 3 years ago
is there any fix or suggestion for this exception? Facing same issue after some hours of service working, pattern is Dealer router, on Router side this exception happened
Code : smartDeviceRouterServer.Options.RouterHandover = true; smartDeviceRouterServer.Options.IPv4Only = false; smartDeviceRouterServer.ReceiveReady += SmartDeviceRouterServer_ReceiveReady; smartDeviceRouterPoller = new NetMQPoller(); smartDeviceRouterPoller.Add(smartDeviceRouterServer); smartDeviceRouterPoller.RunAsync();
Exception Info: System.Net.Sockets.SocketException at System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags) at NetMQ.Core.Mailbox.TryRecv(Int32, NetMQ.Core.Command ByRef) at NetMQ.Core.SocketBase.ProcessCommands(Int32, Boolean, System.Threading.CancellationToken) at NetMQ.Core.SocketBase.GetSocketOption(NetMQ.Core.ZmqSocketOption) at NetMQ.NetMQSelector.Select(Item[], Int32, Int64) at NetMQ.NetMQPoller.RunPoller() at NetMQ.NetMQPoller.Run(System.Threading.SynchronizationContext) 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.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()
Afternoon @IPMADAR, In my case, I believe that at least some of the issues were caused by cross threaded use of sockets... specifically the Subscribe/Unsubscribe calls on the SubscriberSocket. Presumably they are actually sending data to the PublisherSocket at the other end so have the same prohibition to a single thread.
Environment
Context
I'm using NetMQ for client/server comms for a pricing system using Pub/Sub for price data and Req/Res for C&C. It's working very well except that I'm seeing random and unreproducible exceptions occurring in the bowels of the NetMQ library in my client service.
It's possible that these exceptions are a result of network issues, but even so being able to handle that fault with out the service failing is mission critical.
Expected behaviour
Some way to suppress or handle exceptions within the internal NetMQ stack.
Actual behaviour
Unhandled exceptions causing the service to fail.
Steps to reproduce the behaviour
The client is using the following constructs:
NetMQBeacon in a NetMQPoller via RunAsync. SubscriberSocket in a NetMQPoller via RunAsync. RequestSocket directly via SendMoreFrame/TrySendFrame and TryReceiveFrameString/TryReceiveFrameBytes.
Example Exceptions Seen:
Link to complete list: ExceptionsSpreadsheet
--