[zeromq-dev] [PATCH] [Issue 97] Fix assertion in PGM transports on cancel_timer

ntupel at googlemail.com ntupel at googlemail.com
Fri Oct 8 16:34:36 CEST 2010


On Fri, Oct 8, 2010 at 4:02 PM, Steven McCoy <steven.mccoy at miru.hk> wrote:
> Still not overly ideal for performance, a fired timer will re-add itself in
> the callback and then destroy itself in poller_base.
> Fixes early firing timers not re-firing.

This seems to trigger an assertion failure in sender on higher rate
values (e.g. 2048)

...
Trace: Failed to push retransmit request for #518
Trace: Failed to push retransmit request for #519
Trace: Failed to push retransmit request for #520
Trace: Failed to push retransmit request for #521
Trace: Failed to push retransmit request for #522
Trace: Failed to push retransmit request for #523
Trace: Recv again on not-full
Trace: Failed to push retransmit request for #483
Trace: Recv again on not-full
Assertion failed: token == tx_timer_id (pgm_sender.cpp:197)
Aborted

Stack trace:

#0  0x00007ffff6a61565 in raise () from /lib/libc.so.6
#1  0x00007ffff6a629e6 in abort () from /lib/libc.so.6
#2  0x00007ffff7b80ed3 in zmq::pgm_sender_t::timer_event (this=<value
optimized out>, token=<value optimized out>) at pgm_sender.cpp:197
#3  0x00007ffff7b852b1 in zmq::poller_base_t::execute_timers
(this=0x602180) at poller_base.cpp:88
#4  0x00007ffff7b7b588 in zmq::epoll_t::loop (this=0x602180) at epoll.cpp:137
#5  0x00007ffff7b8cc57 in zmq::thread_t::thread_routine
(arg_=0x6021e8) at thread.cpp:79
#6  0x00007ffff7533cb0 in start_thread () from /lib/libpthread.so.0
#7  0x00007ffff6afd7ad in clone () from /lib/libc.so.6
#8  0x0000000000000000 in ?? ()

NB: The receiver gave me once on exiting:

pure virtual method called
terminate called without an active exception
Aborted

However I could not reproduce this so far.

Thanks,
nt



More information about the zeromq-dev mailing list