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

[Libevent-users] 100% cpu utilization with openssl bufferevent.



Hi,

I've encountered a problem with openssl bufferevents where libevent reports fd:s as writeable but no action is being taken.

The program does the following:

An evconnlistener waits for connections and when an connection by a client is made we set up an reading event. When the new connection is readable we peek the data to see if it's tls and if it's tls we set up an openssl bufferevent on that connection. We read the http request and write some data as reply, the bufferevent is then kept as we write commands on this connection when needed.

The issue appears (intermittently) when I'm connecting 20-100 clients and libevent debug output continuously reports:

[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds
[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds
[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds
[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds
[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds
[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds
[debug] epoll_dispatch: epoll_wait reports 78
[debug] timeout_next: in 88 seconds

There is no problem when I'm connecting without tls so I think this is an issue with openssl bufferevents and my guess is that somehow the write events that openssl bufferevents sets up sometimes doesn't get removed or disabled properly.

Is this an issue that someone else has seen and does anyone have any pointers on how to debug this problem?

Best regards,
Sebastian Sjöberg

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