ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_zone_setviewcommit vs dns_view_setviewcommit
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=1260)
Cycle in lock order graph: M637958001013031032 (0x000000000000) => M423192645322475544 (0x000000000000) => M637958001013031032
Mutex M423192645322475544 acquired here while holding mutex M637958001013031032 in thread T9:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_zone_setviewcommit /home/ondrej/Projects/bind9/lib/dns/zone.c:1530 (libdns.so.1505+0x20b0bf)
#2 dns_view_setviewcommit /home/ondrej/Projects/bind9/lib/dns/view.c:2355 (libdns.so.1505+0x1fd42d)
#3 load_configuration server.c:8971 (named+0x57743)
#4 run_server server.c:9654 (named+0x59a47)
#5 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#6 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#7 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M637958001013031032 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_view_setviewcommit /home/ondrej/Projects/bind9/lib/dns/view.c:2349 (libdns.so.1505+0x1fd3eb)
#2 load_configuration server.c:8971 (named+0x57743)
#3 run_server server.c:9654 (named+0x59a47)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M637958001013031032 acquired here while holding mutex M423192645322475544 in thread T10:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_view_findzonecut /home/ondrej/Projects/bind9/lib/dns/view.c:1242 (libdns.so.1505+0x1f7819)
#2 fctx_create /home/ondrej/Projects/bind9/lib/dns/resolver.c:4890 (libdns.so.1505+0x190c0d)
#3 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10581 (libdns.so.1505+0x1976b1)
#4 zone_refreshkeys /home/ondrej/Projects/bind9/lib/dns/zone.c:10575 (libdns.so.1505+0x22c089)
#5 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10787 (libdns.so.1505+0x249326)
#6 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13652 (libdns.so.1505+0x249326)
#7 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#8 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#9 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M423192645322475544 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 zone_refreshkeys /home/ondrej/Projects/bind9/lib/dns/zone.c:10462 (libdns.so.1505+0x22b945)
#2 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10787 (libdns.so.1505+0x249326)
#3 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13652 (libdns.so.1505+0x249326)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56fa6)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56fa6)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Thread T9 'isc-worker0000' (tid=1327, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7bcc4)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59d63)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
Thread T10 'isc-worker0001' (tid=1329, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x2be1b)
#1 isc_thread_create /home/ondrej/Projects/bind9/lib/isc/pthreads/thread.c:75 (libisc.so.1504+0x7bcc4)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59d63)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock