Crash on assert in decref() qpcache.c:711: REQUIRE(*nlocktypep != isc_rwlocktype_none)
Summary
Resolver with minimal load occasionally crashes with assertion failure in decref() function at qpcache.c:711
qpcache.c:711: REQUIRE(*nlocktypep != isc_rwlocktype_none) failed
BIND version affected
- Affects v9.19: commit f8f0f450
Steps to reproduce
Unknown at the moment, but happens after ~ 20 minutes of runtime while the resolver is serving single laptop.
Relevant configuration files
Backtrace
#3 0x000056fe49a3662f in assertion_failed (file=0x7c25fa2a9878 "qpcache.c", line=711, type=isc_assertiontype_require, cond=0x7c25fa2a9b50 "*nlocktypep != isc_rwlocktype_none") at main.c:234
#4 0x00007c25fa529fbd in isc_assertion_failed (file=0x7c25fa2a9878 "qpcache.c", line=711, type=isc_assertiontype_require, cond=0x7c25fa2a9b50 "*nlocktypep != isc_rwlocktype_none") at assertions.c:48
#5 0x00007c25fa120d2c in decref (qpdb=0x7c25f6199600, node=0x7c25f164fee0, nlocktypep=0x7c25f03fa64c, tlocktypep=0x7c25f03fa650, tryupgrade=true) at qpcache.c:711
#6 0x00007c25fa1217f5 in expireheader (header=0x7c25e225e6c0, nlocktypep=0x7c25f03fa64c, tlocktypep=0x7c25f03fa650, reason=dns_expire_ttl) at qpcache.c:959
#7 0x00007c25fa12d56a in expire_ttl_headers (qpdb=0x7c25f6199600, locknum=1, nlocktypep=0x7c25f03fa650, tlocktypep=0x7c25f03fa64c, now=1714634003, cache_is_overmem=false) at qpcache.c:4418
#8 0x00007c25fa12a8cc in addrdataset (db=0x7c25f6199600, node=0x7c25eb161f00, version=0x0, now=1714634003, rdataset=0x7c25eac12bb0, options=0, addedrdataset=0x7c25ef340f20) at qpcache.c:3566
#9 0x00007c25fa053f04 in dns__db_addrdataset (db=0x7c25f6199600, node=0x7c25eb161f00, version=0x0, now=1714634003, rdataset=0x7c25eac12bb0, options=0, addedrdataset=0x7c25ef340f20) at db.c:703
#10 0x00007c25fa1c82b9 in validated (arg=0x7c25eac31a00) at resolver.c:5356
#11 0x00007c25fa52a468 in isc__async_cb (handle=0x7c25f68fcbe8) at async.c:111
Please note the small cache size.
Edited by Petr Špaček