]> granicus.if.org Git - libevent/commit
buffer: fix incorrect unlock of the buffer mutex (for deferred callbacks)
authorAzat Khuzhin <a3at.mail@gmail.com>
Mon, 12 Feb 2018 16:43:13 +0000 (19:43 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Mon, 12 Feb 2018 16:54:27 +0000 (19:54 +0300)
commit93913da1c4a528e0a832dc8dc163fa30f3e580d4
tree6a38c3a53074d5b04bf99c43c2e53899bf075804
parentf24b28e4aff1dbc3440e283f70ac15aa7cebcc8d
buffer: fix incorrect unlock of the buffer mutex (for deferred callbacks)

TSAN reports:
  WARNING: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (pid=17111)
      #0 pthread_mutex_unlock /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:3621 (libtsan.so.0+0x00000003b71c)
      #1 evbuffer_add <null> (libevent_core-2.2.so.1+0x00000000ddb6)
      ...

    Mutex M392 (0x7b0c00000f00) created at:
      #0 pthread_mutex_init /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:1117 (libtsan.so.0+0x0000000291af)
      #1 <null> <null> (libevent_pthreads-2.2.so.1+0x000000000d46)
      ...

$ addr2line -e /lib/libevent_core-2.2.so.1 0x00000000ddb6
/src/libevent/buffer.c:1815 (discriminator 1)

Introduced-in: ae2b84b2575be93d0aebba5c0b78453836f89f3c ("Replace
deferred_cbs with event_callback-based implementation.")
buffer.c