Hi Siva: Bear in mind that zmq_disconnect is asynchronous (not well-documented IMO, but e.g., see https://github.com/zeromq/libzmq/issues/2759#issuecomment-389057453 <https://github.com/zeromq/libzmq/issues/2759#issuecomment-389057453>). zmq_connect is also asynchronous in most cases (except inproc). It also takes some time for fd’s to be reclaimed by OS.
- Do fd’s eventually get reclaimed when system is idle? - What state are fd’s in while application is running (e.g., lsof -p <PID> | grep TCP)? - Have you tried using zmq_socket_monitor to trace what is happening under the covers? FWIW, you may want to reconsider the connect/send/disconnect approach - the overhead of connect/disconnect is considerable. If you can connect once to each destination, life will be much simpler. Good luck! Bill > On Nov 14, 2019, at 7:29 AM, donthamsetty sivaprasad via zeromq-dev > <[email protected]> wrote: > > Hi , > thanks for the response. > I have multiple tasks(threads). > Each task has tx and rx ZMQ DEALER sockets with bind to tcp addresses. > Each guy before sending a packet to other one does zmq_connect , zmq_msg_send > and zmq_disconnect. The reason for doing zmq_disconnect is sender's next > packet could be to a different receiver other than the first one. > > Now the first question is does zmq_disconnect destroys tcp sockets underneath > or not ..( for that sender/receiver combo)?? > > When I did lsof it shows very huge number something like 50K.. > > Thanks > Siva > > > > On Thursday, November 14, 2019, 04:57:22 PM GMT+5:30, Arnaud Loonstra > <[email protected]> wrote: > > > On 14-11-2019 10:07, donthamsetty sivaprasad via zeromq-dev wrote: > > Hi , > > I have DEALER sockets with tcp as transport. > > Before sending each packet I do zmq_connect , zmq_msg_send and > > zmq_disconnect since same DEALER can talk to another dealer ( it is many > > to many communication ,but no load bancing or round robin).. > > > > The system is crashing running out of file descriptors in the system.. > > Could you please help me..? > > > > Thanks > > Siva > > > > Please show some code which demonstrates your problem. It sounds like > you are constantly creating new sockets without destroying them. In > general you first connect and then send the message. You only disconnect > if you need to (usually on destroy). Also have you read the zeromq > guide? It shows many examples. > > Rg, > > Arnaud > > _______________________________________________ > zeromq-dev mailing list > [email protected] <mailto:[email protected]> > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > <https://lists.zeromq.org/mailman/listinfo/zeromq-dev> > _______________________________________________ > zeromq-dev mailing list > [email protected] > https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
