[zeromq-dev] Assertion failed: !(msg_->flags () & msg_t::more)(session_base.cpp:157)

RohanB rohanb at cs.uchicago.edu
Tue Sep 25 23:30:04 CEST 2012


Ian Barber <ian.barber <at> gmail.com> writes:

> 
> On Mon, Sep 24, 2012 at 7:47 PM, RohanB <rohanb <at> cs.uchicago.edu> wrote:
> >
> >
> > ahh.. I see what you mean. Here's the snippet.... Pretty straightforward...
> >
> > Same code works on 1 box and not the other..... Both boxes are enabled to
> > receive data on that multicast address and there is no other publisher 
currently
> > running.
> 
> Interesting. Could you update to the latest libzmq master, and build
> with the debug flags (--with-debug when configuring the lib), and
> would it be possible to set a break point on those lines and give us a
> backtrace on the crashing machine, and take a look at the state of the
> message? In gdb, that would be
> 
> gdb pgm_sub
> break session_base.cpp:156
> run all
> <when it hits>
> bt
> print *msg_
> 
> Not at all sure why msg flags would be set. I haven't got a 32 bit
> build of anything at the moment by the look of it, but I'll try and
> find one at some point!
> 
> Ian
> 


Here you go....



(gdb) run -f


Starting program: /home/rbe/zeromq/pub_sub_protobuf/pgm_sub -f
[Thread debugging using libthread_db enabled]
[New Thread 0xb7c4dba0 (LWP 25872)]
[New Thread 0xb744cba0 (LWP 25873)]
Assertion failed: !(msg_->flags () & msg_t::more) (session_base.cpp:157)

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb744cba0 (LWP 25873)]
0xffffe410 in __kernel_vsyscall ()
(gdb) whe
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7ca18d0 in raise () from /lib/libc.so.6
#2  0xb7ca2ff3 in abort () from /lib/libc.so.6
#3  0xb7ef6ce7 in zmq::zmq_abort (errmsg_=0xb7f657f8 "!(msg_->flags () & 
msg_t::more)") at err.cpp:76
#4  0xb7f0eef4 in zmq::session_base_t::pull_msg (this=0x80fbde0, 
msg_=0xb744b64c) at session_base.cpp:157
#5  0xb7f0267a in zmq::pgm_receiver_t::drop_subscriptions (this=0x80fad08) at 
pgm_receiver.cpp:277
#6  0xb7f02a86 in zmq::pgm_receiver_t::plug (this=0x80fad08, 
io_thread_=0x80fd840, session_=0x80fbde0) at pgm_receiver.cpp:77
#7  0xb7f0e83c in zmq::session_base_t::process_attach (this=0x80fbde0, 
engine_=0x80fad10) at session_base.cpp:335
#8  0xb7eff165 in zmq::object_t::process_command (this=0x80fbde0, 
cmd_=@0xb744b75c) at object.cpp:86
#9  0xb7ef7b79 in zmq::io_thread_t::in_event (this=0x80fd840) at 
io_thread.cpp:75
#10 0xb7ef61f1 in zmq::epoll_t::loop (this=0x80fc878) at epoll.cpp:161
#11 0xb7ef62a1 in zmq::epoll_t::worker_routine (arg_=0x80fc878) at epoll.cpp:174
#12 0xb7f1d016 in thread_routine (arg_=0x80fc8bc) at thread.cpp:83
#13 0xb7c682ab in start_thread () from /lib/libpthread.so.0
#14 0xb7d38b9e in clone () from /lib/libc.so.6


(gdb) b session_base.cpp:156
Breakpoint 1 at 0xb7f0ee00: file session_base.cpp, line 156.


(gdb) run all


The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/rbe/zeromq/pub_sub_protobuf/pgm_sub all
[Thread debugging using libthread_db enabled]
[New Thread 0xb7bbaba0 (LWP 25986)]
[New Thread 0xb73b9ba0 (LWP 25987)]
[Switching to Thread 0xb73b9ba0 (LWP 25987)]

Breakpoint 1, zmq::session_base_t::pull_msg (this=0x80fbde0, msg_=0xb73b864c) at 
session_base.cpp:156
156	    if (!identity_sent) {
(gdb) print *msg_
$1 = {u = {base = {unused = "x\204��x\204��\b�\017\bx\206;�\027F��x�
\017\b��\017\bK�", type = 230 '�', flags = 183 '�'}, vsm = {
      data = "x\204��x\204��\b�\017\bx\206;�\027F��x�\017\b��\017\bK", 
size = 246 '�', type = 230 '�', flags = 183 '�'}, lmsg = {content = 
0xb7ef8478, 
      unused = "x\204��\b�\017\bx\206;�\027F��x�\017\b��\017\bK�", type = 
230 '�', flags = 183 '�'}, delimiter = {
      unused = "x\204��x\204��\b�\017\bx\206;�\027F��x�\017\b��
\017\bK�", type = 230 '�', flags = 183 '�'}}}
(gdb) 









More information about the zeromq-dev mailing list