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

Re: [Libevent-users] Re: libevent2 stuck in Linux, CPU 100%



On Fri, Jul 19, 2013 at 5:31 PM, Oleg Moskalenko <mom040267@xxxxxxxxx> wrote:
> Thank you Azat for the suggestion. It seems to me that UDP sockets are
> offenders

Could you try turn on libevent internal debug?

event_enable_debug_mode();
event_enable_debug_logging(EVENT_DBG_ALL);

And see what it will print when CPU at 100% ?

> , somehow it happens only in Linux (I know Linux has some weird UDP
> behavior):

Never heard about this.

>
> Process 20828 attached with 5 threads - interrupt to quit

It's pretty much

>
>
> On Fri, Jul 19, 2013 at 6:19 AM, Azat Khuzhin <dohardgopro@xxxxxxxxx> wrote:
>>
>> Hi Oleg,
>>
>> Could you run you program, and when this behavior reproduced run next
>> command, and attach some output here, or to pastebin:
>> strace -f -p PID # warning: may print many lines
>>
>> On Fri, Jul 19, 2013 at 4:41 PM, Oleg Moskalenko <mom040267@xxxxxxxxx>
>> wrote:
>> > I can add that this problem happen after "too many open file
>> > descriptors"
>> > condition reached but it persists even after the sockets are cleaned.
>> >
>> >
>> >
>> > On Fri, Jul 19, 2013 at 5:29 AM, Oleg Moskalenko <mom040267@xxxxxxxxx>
>> > wrote:
>> >>
>> >> Hi
>> >>
>> >> I am the author and developer of the rfc5766-turn-server project:
>> >>
>> >> https://code.google.com/p/rfc5766-turn-server/
>> >>
>> >> I have a strange problem with libevent2 consuming 100% of 100% of CPU
>> >> in
>> >> Linux (any linux) on high load condition, even after the load is back
>> >> to
>> >> normal. Basically, the system is doing nothing, just spinning inside
>> >> libevent loop, indefinitely. The system is responsitive, but CPU is
>> >> consumed
>> >> 100%. When I connect to it with gdb, I always find myself somewhere
>> >> inside
>> >> timing functions in epoll loop, for example:
>> >>
>> >> ==================================
>> >>
>> >> #0  0x00007f33e913a0d3 in epoll_wait () from
>> >> /lib/x86_64-linux-gnu/libc.so.6
>> >> #1  0x00007f33ea3b2f37 in ?? () from
>> >> /usr/lib/x86_64-linux-gnu/libevent_core-2.0.so.5
>> >> #2  0x00007f33ea39ede4 in event_base_loop () from
>> >> /usr/lib/x86_64-linux-gnu/libevent_core-2.0.so.5
>> >> #3  0x000000000040e1ec in run_events (eb=0x14ae060) at
>> >> src/apps/relay/mainrelay.c:1006
>> >> #4  0x000000000040e2dd in run_listener_server (eb=0x14ae060) at
>> >> src/apps/relay/mainrelay.c:1039
>> >> #5  0x0000000000410ebd in main (argc=0, argv=0x7fffffe549d8) at
>> >> src/apps/relay/mainrelay.c:2457
>> >>
>> >> =================================
>> >>
>> >> everything works fine in other OS's (BSD, Solaris). But all Linuxes
>> >> have
>> >> this problem.
>> >>
>> >> I was searching the Internet and I found the thread where people are
>> >> having the exact same problem:
>> >>
>> >>
>> >>
>> >> http://lists.pgfoundry.org/pipermail/pgbouncer-general/2011-May/000805.html
>> >>
>> >> They resolved the problem by not using the libevent. Unfortunately, my
>> >> system is built around libevent2 and I cannot afford that solution.
>> >>
>> >> is there a known bug, and how do I deal with this problem ? Too many
>> >> users
>> >> are using Linux, I cannot tell everybody to switch to BSD.
>> >>
>> >> Thanks
>> >> Oleg
>> >>
>> >
>>
>>
>>
>> --
>> Respectfully
>> Azat Khuzhin
>> Primary email a3at.mail@xxxxxxxxx
>> ***********************************************************************
>> To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
>> unsubscribe libevent-users    in the body.
>
>



--
Respectfully
Azat Khuzhin
Primary email a3at.mail@xxxxxxxxx
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.