[zeromq-dev] Assertion failure in fc.cpp:117

Doron Somech somdoron at gmail.com
Fri Nov 20 20:34:31 CET 2015


So the problem is that router handover is happening during receiving of
multipart message.
I make a fix that if the handover is happening on the current incoming pipe
the termination is delayed until all parts are read.
Maybe the termination should happen only when the pipe is empty? Anyway it
is only happening because sockets are coming and going and using the same
identity.

Fix is here:

https://github.com/somdoron/libzmq/

However now I get too many open files when running the example, I think it
is not related to the current issue.



On Fri, Nov 20, 2015 at 5:02 PM, Pieter Hintjens <ph at imatix.com> wrote:

> Just tested it, it fails the same way.
>
> On Fri, Nov 20, 2015 at 1:08 PM, Doron Somech <somdoron at gmail.com> wrote:
> > Sorry, use this one:
> >
> >
> https://github.com/somdoron/libzmq/commit/0dc48999cbdba83b4f54716102f79f497e315397
> >
> > On Fri, Nov 20, 2015 at 12:51 PM, Doron Somech <somdoron at gmail.com>
> wrote:
> >>
> >> Ok, next try, I think it should solve it:
> >>
> >>
> >>
> https://github.com/somdoron/libzmq/commit/73998cc29ca477d2d1296de4dbc60900f129cc80
> >>
> >>
> >>
> >> On Fri, Nov 20, 2015 at 11:12 AM, Pieter Hintjens <ph at imatix.com>
> wrote:
> >>>
> >>> It still asserts, and in the same place (2 lines further, because of
> the
> >>> patch).
> >>>
> >>> On Fri, Nov 20, 2015 at 10:43 AM, Doron Somech <somdoron at gmail.com>
> >>> wrote:
> >>> > So I suspect the pipe is being terminated before the messaging is
> being
> >>> > read
> >>> > fully.
> >>> >
> >>> > I made this patch to try to find out if the issue actually happen
> while
> >>> > the
> >>> > pipe is being terminated, can you test it? If my guess is correct the
> >>> > code
> >>> > should still assert but in a different place, which will help find
> the
> >>> > problem.
> >>> >
> >>> >
> >>> >
> https://github.com/somdoron/libzmq/commit/ed9368f590b7770560fef0f9c472bb32fe8f4467
> >>> >
> >>> >
> >>> > On Thu, Nov 19, 2015 at 4:58 PM, Pieter Hintjens <ph at imatix.com>
> wrote:
> >>> >>
> >>> >> Seems we hit the same issue already:
> >>> >> https://github.com/zeromq/libzmq/issues/1143 (unresolved)
> >>> >>
> >>> >> On Thu, Nov 19, 2015 at 4:57 PM, Pieter Hintjens <ph at imatix.com>
> >>> >> wrote:
> >>> >> > Here it is:
> >>> >> >
> >>> >> > (gdb) bt
> >>> >> > #0  0x00007fa44048ecc9 in __GI_raise (sig=sig at entry=6) at
> >>> >> > ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> >>> >> > #1  0x00007fa4404920d8 in __GI_abort () at abort.c:89
> >>> >> > #2  0x00007fa440206699 in zmq::zmq_abort
> >>> >> > (errmsg_=errmsg_ at entry=0x7fa44023ed3a "!more") at src/err.cpp:84
> >>> >> > #3  0x00007fa440206c02 in zmq::fq_t::recvpipe
> >>> >> > (this=this at entry=0x7fa4180364f0, msg_=msg_ at entry=0x7fa4180a50e8,
> >>> >> >     pipe_=pipe_ at entry=0x7fa4277fdcc8) at src/fq.cpp:117
> >>> >> > #4  0x00007fa44021c6b3 in zmq::router_t::xrecv
> (this=0x7fa418036060,
> >>> >> > msg_=0x7fa4180a50e8) at src/router.cpp:302
> >>> >> > #5  0x00007fa4402230cf in zmq::socket_base_t::recv
> >>> >> > (this=this at entry=0x7fa418036060, msg_=msg_ at entry=0x7fa4180a50e8,
> >>> >> >     flags_=flags_ at entry=0) at src/socket_base.cpp:1087
> >>> >> > #6  0x00007fa44023c329 in s_recvmsg (s_=s_ at entry=0x7fa418036060,
> >>> >> > msg_=0x7fa4180a50e8, flags_=flags_ at entry=0) at src/zmq.cpp:459
> >>> >> > #7  0x00007fa44023c56a in zmq_msg_recv (msg_=<optimized out>,
> >>> >> > s_=s_ at entry=0x7fa418036060, flags_=flags_ at entry=0) at
> >>> >> > src/zmq.cpp:604
> >>> >> > #8  0x00007fa44023c57e in zmq_recvmsg (s_=s_ at entry
> =0x7fa418036060,
> >>> >> > msg_=<optimized out>, flags_=flags_ at entry=0) at src/zmq.cpp:468
> >>> >> > #9  0x00007fa440a61916 in zframe_recv
> >>> >> > (source=source at entry=0x7fa418036060) at src/zframe.c:120
> >>> >> > #10 0x00007fa440a6b6c4 in zmsg_recv
> >>> >> > (source=source at entry=0x7fa418004da0) at src/zmsg.c:105
> >>> >> > #11 0x00007fa440825ca9 in zre_msg_recv (input=0x7fa418004da0) at
> >>> >> > src/zre_msg.c:674
> >>> >> > #12 0x00007fa440829f55 in zyre_node_recv_peer
> (self=0x7fa41800f480)
> >>> >> > at
> >>> >> > src/zyre_node.c:627
> >>> >> > #13 zyre_node_actor (pipe=<optimized out>, args=<optimized out>)
> at
> >>> >> > src/zyre_node.c:879
> >>> >> > #14 0x00007fa440a526c3 in s_thread_shim (args=0x7fa420011420) at
> >>> >> > src/zactor.c:67
> >>> >> > #15 0x00007fa43ffcf182 in start_thread (arg=0x7fa4277fe700) at
> >>> >> > pthread_create.c:312
> >>> >> > #16 0x00007fa44055247d in clone () at
> >>> >> > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> >>> >> > (gdb)
> >>> >> >
> >>> >> > On Thu, Nov 19, 2015 at 4:56 PM, Doron Somech <somdoron at gmail.com
> >
> >>> >> > wrote:
> >>> >> >> Can you attach the stacktrace?
> >>> >> >>
> >>> >> >> On Nov 19, 2015 16:51, "Pieter Hintjens" <ph at imatix.com> wrote:
> >>> >> >>>
> >>> >> >>> Yes, I did mean fq.cpp, :-)
> >>> >> >>>
> >>> >> >>> The problem affects master and 4.1, and I didn't test older
> >>> >> >>> versions.
> >>> >> >>>
> >>> >> >>> On Thu, Nov 19, 2015 at 4:07 PM, Doron Somech <
> somdoron at gmail.com>
> >>> >> >>> wrote:
> >>> >> >>> > Any chance you meant fq.cpp?
> >>> >> >>> >
> >>> >> >>> > Which libzmq version?
> >>> >> >>> >
> >>> >> >>> > On Thu, Nov 19, 2015 at 10:48 AM, Pieter Hintjens
> >>> >> >>> > <ph at imatix.com>
> >>> >> >>> > wrote:
> >>> >> >>> >>
> >>> >> >>> >> Hi all,
> >>> >> >>> >>
> >>> >> >>> >> I'm wondering if anyone has an idea what could be causing
> this
> >>> >> >>> >> code
> >>> >> >>> >> to
> >>> >> >>> >> fail. The test case is zyre/ztester_gossip; it creates and
> >>> >> >>> >> destroys
> >>> >> >>> >> peers randomly. That could be causing the problem.
> >>> >> >>> >>
> >>> >> >>> >> -Pieter
> >>> >> >>> >> _______________________________________________
> >>> >> >>> >> zeromq-dev mailing list
> >>> >> >>> >> zeromq-dev at lists.zeromq.org
> >>> >> >>> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>> >> >>> >
> >>> >> >>> >
> >>> >> >>> >
> >>> >> >>> > _______________________________________________
> >>> >> >>> > zeromq-dev mailing list
> >>> >> >>> > zeromq-dev at lists.zeromq.org
> >>> >> >>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>> >> >>> >
> >>> >> >>> _______________________________________________
> >>> >> >>> zeromq-dev mailing list
> >>> >> >>> zeromq-dev at lists.zeromq.org
> >>> >> >>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>> >> >>
> >>> >> >>
> >>> >> >> _______________________________________________
> >>> >> >> zeromq-dev mailing list
> >>> >> >> zeromq-dev at lists.zeromq.org
> >>> >> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>> >> >>
> >>> >> _______________________________________________
> >>> >> zeromq-dev mailing list
> >>> >> zeromq-dev at lists.zeromq.org
> >>> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>> >
> >>> >
> >>> >
> >>> > _______________________________________________
> >>> > zeromq-dev mailing list
> >>> > zeromq-dev at lists.zeromq.org
> >>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>> >
> >>> _______________________________________________
> >>> zeromq-dev mailing list
> >>> zeromq-dev at lists.zeromq.org
> >>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >>
> >>
> >
> >
> > _______________________________________________
> > zeromq-dev mailing list
> > zeromq-dev at lists.zeromq.org
> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20151120/a90e51ce/attachment.htm>


More information about the zeromq-dev mailing list