ThreadSanitizer: lock-order-inversion (potential deadlock) - setnsec3parameters vs zone_asyncload
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=17286)
Cycle in lock order graph: M17781 (0x7b780001c818) => M921966132255197904 (0x000000000000) => M17781
Mutex M921966132255197904 acquired here while holding mutex M17781 in thread T15:
#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 setnsec3parameters /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2288:2 (libdns.so.1505+0xec52f)
#3 iszonesecure /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2261:2 (libdns.so.1505+0xec486)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7336:3 (libdns.so.1505+0xdb937)
#5 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301:10 (libdns.so.1505+0x5f3ee)
#6 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554:13 (libdns.so.1505+0x1cfd16)
#7 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138:13 (libdns.so.1505+0x1b6796)
#8 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193:11 (libdns.so.1505+0x1b709c)
#9 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#10 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M17781 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2192:2 (libdns.so.1505+0x1b704b)
#2 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134:7 (libisc.so.1504+0x52007)
#3 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319:2 (libisc.so.1504+0x4f3a8)
Mutex M17781 acquired here while holding mutex M921966132255197904 in thread T9:
#0 pthread_mutex_lock <null> (named+0x45e376)
#1 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8216:3 (libdns.so.1505+0x1e7942)
#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 M921966132255197904 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_current /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:9268:3 (libdns.so.1505+0xefa7a)
#4 dns_dbiterator_current /home/ondrej/Projects/bind9/lib/dns/dbiterator.c:103:10 (libdns.so.1505+0x62a1a)
#5 zone_nsec3chain /home/ondrej/Projects/bind9/lib/dns/zone.c:8253:3 (libdns.so.1505+0x1e7a78)
#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 T15 'isc-worker0006' (tid=17315, 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)
Thread T9 'isc-worker0000' (tid=17309, 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