Chuck Rolke created PROTON-1483:
-----------------------------------

             Summary: proactor/epoll.c:181: ptimer_callback: Assertion
                 Key: PROTON-1483
                 URL: https://issues.apache.org/jira/browse/PROTON-1483
             Project: Qpid Proton
          Issue Type: Bug
          Components: proton-c
    Affects Versions: 0.18.0
         Environment: Fedora 25
Master source builds of qpid-proton and qpid-dispatch
            Reporter: Chuck Rolke
         Attachments: A.conf, B.conf

Start a dispatch router network of two routers. Send client traffic or not. Let 
it sit for a few minutes.
{noformat}
qdrouterd: /home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c:181: 
ptimer_callback: Assertion `exp_count >= pt->skip_count' failed.
{noformat}

Either router A or B may fail this way. Looking at one core dump the internals 
show:

{noformat}
(gdb) list
176       ssize_t l = read(pt->timerfd, &u_exp_count, sizeof(uint64_t));
177       (void)l; /* Silence compiler complaints in release build */
178       assert(l == sizeof(uint64_t));
179       assert(u_exp_count < INT_MAX);  // or test and log it?
180       int exp_count = (int) u_exp_count;
181       assert(exp_count >= pt->skip_count);
182       assert(exp_count <= pt->pending_count);
183       exp_count -= pt->skip_count;
184       pt->skip_count = 0;
185       pt->pending_count -= exp_count;

(gdb) p exp_count
$1 = 1
(gdb) p pt->skip_count 
$2 = 2

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#1  0x00007fc51c49d51a in __GI_abort () at abort.c:89
#2  0x00007fc51c493da7 in __assert_fail_base (fmt=<optimized out>, 
assertion=assertion@entry=0x7fc51d45fbc2 "exp_count >= pt->skip_count", 
    file=file@entry=0x7fc51d45fb30 
"/home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c", 
line=line@entry=181, 
    function=function@entry=0x7fc51d45fe70 <__PRETTY_FUNCTION__.7041> 
"ptimer_callback") at assert.c:92
#3  0x00007fc51c493e52 in __GI___assert_fail (assertion=0x7fc51d45fbc2 
"exp_count >= pt->skip_count", file=0x7fc51d45fb30 
"/home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c", line=181, 
    function=0x7fc51d45fe70 <__PRETTY_FUNCTION__.7041> "ptimer_callback") at 
assert.c:101
#4  0x00007fc51d45b620 in ptimer_callback (pt=0xfd8db8) at 
/home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c:181
#5  0x00007fc51d45ebae in proactor_process (p=0xfd8d40, timeout=true) at 
/home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c:1537
#6  0x00007fc51d45f0ae in proactor_do_epoll (p=0xfd8d40, can_block=true) at 
/home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c:1657
#7  0x00007fc51d45f196 in pn_proactor_wait (p=0xfd8d40) at 
/home/chug/git/qpid-proton/proton-c/src/proactor/epoll.c:1680
#8  0x00007fc51d901d6a in thread_run (arg=0xfcfdd0) at 
/home/chug/git/qpid-dispatch/src/server.c:817
#9  0x00007fc51d2416ca in start_thread (arg=0x7fc50fd93700) at 
pthread_create.c:333
#10 0x00007fc51c56df7f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:105
{noformat}

The attached conf files are for the test routers.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to