[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] [2.0.19-stable] Infinite loop



On Wed, Sep 14, 2016 at 04:33:41PM +0530, sahil aggarwal wrote:
> Hi,
> 
> Getting stuck in infinite loop after retry on evhttp_connection. After
> attaching GDB this is what i found:
> 
> ----------
> 
> #0  0x00007f9a8f5efdb9 in event_queue_remove (base=base@entry=0x24bf830,
> ev=ev@entry=0x7f9a84006da0, queue=queue@entry=8)
>     at event.c:2495
> #1  0x00007f9a8f5f4040 in event_del_internal (ev=0x7f9a84006da0) at
> event.c:2234
> #2  timeout_process (base=0x24bf830) at event.c:2481
> #3  event_base_loop (base=base@entry=0x24bf830, flags=flags@entry=0) at
> event.c:1614
> 
> 
> ---------
> 
> #0  event_active_nolock (ev=<optimized out>, res=<optimized out>,
> ncalls=<optimized out>) at event.c:2315
> #1  0x00007f9a8f5f3f76 in timeout_process (base=0x24bf830) at event.c:2485
> #2  event_base_loop (base=base@entry=0x24bf830, flags=flags@entry=0) at
> event.c:1614
> 
> 
> So the event is getting removed and queued in active queue. And event given
> by
> 
> ev = min_heap_top(&base->timeheap)
> 
> doesn't have EV_TIMEOUT flag set due which it won't remove from the
> min_heap and it always get the same event on the top hence the infinite
> loop.
> 
> * event_base not being shared across multiple threads.
> 
> * How 1 have event in min_heap without EV_TIMEOUT  flag set and
> e->ev_timeout_pos.min_heap_idx = -1  as on adding we always set the flag ?

Hi,

Does it triggers every time? If so can you please try libevent from
sources (https://github.com/libevent/libevent)? And does you program
single-threaded or multi?

Also if you have a reproducer (~100 lines) it will be useful to see it.

Thanks,
Azat.
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.