Update: I was able to fix the issue by replacing C++ calls with raw C calls. Code looks almost 1:1 the same but the difference is - it works!
On Jan 31, 1:20 pm, Marcin Olak <[email protected]> wrote: > Hi, > > In my setup I connect bunch of REQ sockets through a queue device to a > backend service. REQ sockets are torn down on read timeout. If the backend > service becomes unavailable my app eventually runs out of FDs. > > If I connect REQ sockets directly to the backend service - they're being > destroyed gracefully. > > Failing queue device version:http://pastebin.com/AM1fDAVM > > Working direct connection version:http://pastebin.com/3p2Tb2uG > > I traced what's exactly hapenning with socket in these two versions and in > the first version not a single req_t destructor is being called while in > the working version req_t destructors are called. > > Any ideas how could I make the queue version surviving the backend service > unavailability period? I was thinking of using additional heartbeat service > but maybe there's some other, cleaner way. Also connecting backend-service > to the other queue endpoint is not possible in my scenario. > > regards, > Marcin Olak > > _______________________________________________ > zeromq-dev mailing list > [email protected]http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
