Assertion failure on TCP read (raw TCP - rndc and stats)
The isc__nm_tcp_resumeread()
could directly process the network manager netievent
causing the read callback to call the isc__nm_alloc_cb()
function before the previous read callback has called isc__nm_free_cb()
causing an assertion failure, because the worker receive buffer would still be marked as "in use".
(gdb) bt
#0 0x00007f5481d0f93f in raise () from /lib64/libc.so.6
#1 0x00007f5481cf9c95 in abort () from /lib64/libc.so.6
#2 0x000000000041427a in assertion_failed (file=<optimized out>, line=<optimized out>, type=isc_assertiontype_insist, cond=0x7f548572b628 "!worker->recvbuf_inuse || sock->type == isc_nm_udpsocket") at main.c:236
#3 0x00007f54856fa16a in isc_assertion_failed (file=file@entry=0x7f548572b314 "netmgr/netmgr.c", line=line@entry=2225, type=type@entry=isc_assertiontype_insist,
cond=cond@entry=0x7f548572b628 "!worker->recvbuf_inuse || sock->type == isc_nm_udpsocket") at assertions.c:47
#4 0x00007f54856e4019 in isc__nm_alloc_cb (handle=<optimized out>, size=65536, buf=0x7f547866f170) at netmgr/netmgr.c:2225
#5 0x00007f5482e8beab in uv.read () from /lib64/libuv.so.1
#6 0x00007f5482e8cbb8 in uv.stream_io () from /lib64/libuv.so.1
#7 0x00007f5482e92888 in uv.io_poll () from /lib64/libuv.so.1
#8 0x00007f5482e82035 in uv_run () from /lib64/libuv.so.1
#9 0x00007f54856ea6af in nm_thread (worker0=0x7f54802b8d90) at netmgr/netmgr.c:689
#10 0x00007f5485720995 in isc__trampoline_run (arg=0x7f5480274760) at trampoline.c:185
#11 0x00007f54820a42de in start_thread () from /lib64/libpthread.so.0
#12 0x00007f5481dd4a63 in clone () from /lib64/libc.so.6
Version: d27d20e6 and later
Edited by Petr Špaček