ThreadSanitizer: lock-order-inversion (potential deadlock) - findnodeintree vs rss_post
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M18589 (0x7b780002a018) => M33903 (0x7b50000500d0) => M18589
Mutex M33903 acquired here while holding mutex M18589 in thread T12:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2742:2 (libdns.so.1505+0xed3db)
#3 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2804:10 (libdns.so.1505+0xdd39b)
#4 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447:11 (libdns.so.1505+0x5fb68)
#5 resume_addnsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:3573:11 (libdns.so.1505+0x1dda18)
#6 rss_post /home/ondrej/Projects/bind9/lib/dns/zone.c:19952:3 (libdns.so.1505+0x1dd1e8)
#7 setnsec3param /home/ondrej/Projects/bind9/lib/dns/zone.c:19760:3 (libdns.so.1505+0x1ce1fc)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M18589 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 rss_post /home/ondrej/Projects/bind9/lib/dns/zone.c:19951:3 (libdns.so.1505+0x1dd1b4)
#2 setnsec3param /home/ondrej/Projects/bind9/lib/dns/zone.c:19760:3 (libdns.so.1505+0x1ce1fc)
#3 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#4 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M18589 acquired here while holding mutex M33903 in thread T12:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:7991:3 (libdns.so.1505+0x1e6bdb)
#2 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#3 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M33903 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (named+0x442616)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50:3 (libisc.so.1504+0x49521)
#2 resume_iteration /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:8946:2 (libdns.so.1505+0xf01fb)
#3 dbiterator_next /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:9223:3 (libdns.so.1505+0xef82a)
#4 dns_dbiterator_next /home/ondrej/Projects/bind9/lib/dns/dbiterator.c:88:10 (libdns.so.1505+0x62974)
#5 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8127:13 (libdns.so.1505+0x1e6f60)
#6 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10819:4 (libdns.so.1505+0x1e074b)
#7 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650:2 (libdns.so.1505+0x1c4faa)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Thread T12 'isc-worker0003' (tid=17312, running) created by main thread at:
#0 pthread_create <null> (named+0x44011b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75:8 (libisc.so.1504+0x6a9ea)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410:3 (libisc.so.1504+0x4f1b2)
#3 create_managers /home/ondrej/Projects/bind9/bin/named/./main.c:902:11 (named+0x4db206)
#4 setup /home/ondrej/Projects/bind9/bin/named/./main.c:1235:11 (named+0x4d98fe)
#5 main /home/ondrej/Projects/bind9/bin/named/./main.c:1515:2 (named+0x4d85c2)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/home/ondrej/Projects/bind9/bin/named/.libs/named+0x442616) in pthread_rwlock_rdlock