zeromq/clrzmq

clrzmq got SendStatus.Interrupted after send/recv several times on windows

apleshi opened this issue · 2 comments

clrzmq got SendStatus.Interrupted after send/recv several times on windows

detail is:
1, clrzmq is checkout from the master branch, libzmq.dll is build from version 2.1.8.
2, VS version is 2012

I kept get Interrupted on SendStatus or RecvStatus after 300+ send/recv calls on my win7, then I have to rejoin the server. I can't find any clue on how this was triggered as the only possibillity is call Context's Dispose().

I was wondering how many files a process can open on windows, are there any chance the context was terminated due to open to many files?

this is an emergency issue on my project,your response is anticipated, please let me know if you need more information.

    public bool JoinClient()
    {
        isServer = false;

        if (Configs != null && Configs.Count > 0)
        {
            if (client == null)
            {
                client = ZmqContext.Create().CreateSocket(SocketType.REQ);
                client.SendHighWatermark = 1;
            }

            try
            {
                foreach (var config in Configs)
                    client.Connect(string.Format("tcp://{0}:{1}", config.IP, config.ClientPort));
                IsConnected = true;
                return true;
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message + ex.StackTrace;
                IsConnected = false;
            }
        }

        return false;
    }

when I got Interrupted I checked the tcp connection, both linux and windows tells me the connection is still on.