Azat, Could this patch
https://github.com/libevent/libevent/commit/bc79cc5c80ee374dec0e968bc6fdf301d479e133 be related ? On 15 September 2016 at 23:28, sahil aggarwal <sahil.ag...@gmail.com> wrote: > Azat, > > Could this patch > > > On 14 September 2016 at 18:48, sahil aggarwal <sahil.ag...@gmail.com> wrote: >> Azat, >> >> Yes this happens every time server close the connection. To reproduce i : >> * start my client (multiple threads but event_base being exclusive to >> 1 thread handling the events) >> * start server >> * generate some requests from client which succeed >> * stop server >> * generate some requests where now it loops forever. >> >> I can write reproducer and try it with latest libevent too. In the >> mean time i have live GDB attached, if you need any info let me know. >> >> Thanks >> >> On 14 September 2016 at 16:37, Azat Khuzhin <a3at.m...@gmail.com> wrote: >>> 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 majord...@freehaven.net with >>> unsubscribe libevent-users in the body. *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.