On Wed, Aug 8, 2012 at 11:52 AM, Nick Mathewson <ni...@freehaven.net> wrote: > On Mon, Aug 6, 2012 at 2:42 PM, Matthieu Nottale > <mnott...@aldebaran-robotics.com> wrote: >> Hi. >> >> I'm experiencing a deadlock on 2.0.19 while calling bufferevent_free frome >> thread A, while thread B is in event_base_dispatch. >> > > Ouch. This is a known bug. This fix is going to be hard. I wrote > about it here: > http://archives.seul.org/libevent/users/Feb-2012/msg00053.html
This is a pretty scary bug, and trivial to hit. Here are my stack traces: (gdb) bt #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:132 #1 0x00007ffff7bc7080 in _L_lock_903 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007ffff7bc6f19 in __pthread_mutex_lock (mutex=0x7fffb4000e90) at pthread_mutex_lock.c:82 #3 0x00000000007e9948 in _bufferevent_incref_and_lock () #4 0x00000000007f9b7b in be_openssl_writeeventcb (fd=<optimized out>, what=4, ptr=0x7fffb400a640) at bufferevent_openssl.c:933 #5 0x00000000007e5920 in event_base_loop () (gdb) bt #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00000000009cf835 in evthread_posix_cond_wait () #2 0x00000000007e420f in event_del () #3 0x00000000007f3495 in evbuffer_run_callbacks () #4 0x00000000007f5c9f in evbuffer_add () #5 0x00000000007e94c0 in bufferevent_write () What's interesting is that this only happens if I use a socket based bufferevent_openssl. With a filtered openssl bufferevent, I don't hit this deadlock. Also note that I'm not calling bufferevent_free anywhere -- this is just the standard pattern a single writer thread (different than the thread that is running the event loop) is calling bufferevent_write. Diwaker -- http://maginatics.com *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.