Mark Andrews
cdcfde9e65
Address lock-order-inversion
Obtain references to view->redirect and view->managed_keys then
release view->lock so dns_zone_setviewcommit and dns_zone_setviewrevert
can obtain the view->lock while holding zone->lock.
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=9132)
Cycle in lock order graph: M987831431424375936 (0x000000000000) => M1012319771577875480 (0x000000000000) => M987831431424375936
Mutex M1012319771577875480 acquired here while holding mutex M987831431424375936 in thread T2:
#0 pthread_mutex_lock <null> (named+0x4642a6)
#1 dns_zone_setviewcommit /builds/isc-projects/bind9/lib/dns/zone.c:1571:2 (libdns.so.1110+0x1d74eb)
#2 dns_view_setviewcommit /builds/isc-projects/bind9/lib/dns/view.c:2388:3 (libdns.so.1110+0x1cfe29)
#3 load_configuration /builds/isc-projects/bind9/bin/named/./server.c:8188:3 (named+0x51eadd)
#4 loadconfig /builds/isc-projects/bind9/bin/named/./server.c:9438:11 (named+0x510c66)
#5 ns_server_reconfigcommand /builds/isc-projects/bind9/bin/named/./server.c:9773:2 (named+0x510b41)
#6 ns_control_docommand /builds/isc-projects/bind9/bin/named/control.c:243:12 (named+0x4e451a)
#7 control_recvmessage /builds/isc-projects/bind9/bin/named/controlconf.c:465:13 (named+0x4e9056)
#8 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
#9 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)
Mutex M987831431424375936 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x4642a6)
#1 dns_view_setviewcommit /builds/isc-projects/bind9/lib/dns/view.c:2382:2 (libdns.so.1110+0x1cfde7)
#2 load_configuration /builds/isc-projects/bind9/bin/named/./server.c:8188:3 (named+0x51eadd)
#3 loadconfig /builds/isc-projects/bind9/bin/named/./server.c:9438:11 (named+0x510c66)
#4 ns_server_reconfigcommand /builds/isc-projects/bind9/bin/named/./server.c:9773:2 (named+0x510b41)
#5 ns_control_docommand /builds/isc-projects/bind9/bin/named/control.c:243:12 (named+0x4e451a)
#6 control_recvmessage /builds/isc-projects/bind9/bin/named/controlconf.c:465:13 (named+0x4e9056)
#7 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
#8 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)
Mutex M987831431424375936 acquired here while holding mutex M1012319771577875480 in thread T7:
#0 pthread_mutex_lock <null> (named+0x4642a6)
#1 dns_view_findzonecut2 /builds/isc-projects/bind9/lib/dns/view.c:1300:2 (libdns.so.1110+0x1cc93a)
#2 dns_view_findzonecut /builds/isc-projects/bind9/lib/dns/view.c:1261:9 (libdns.so.1110+0x1cc864)
#3 fctx_create /builds/isc-projects/bind9/lib/dns/resolver.c:4459:13 (libdns.so.1110+0x1779d3)
#4 dns_resolver_createfetch3 /builds/isc-projects/bind9/lib/dns/resolver.c:9628:12 (libdns.so.1110+0x176cb6)
#5 dns_resolver_createfetch /builds/isc-projects/bind9/lib/dns/resolver.c:9504:10 (libdns.so.1110+0x174e17)
#6 zone_refreshkeys /builds/isc-projects/bind9/lib/dns/zone.c:10061:12 (libdns.so.1110+0x2055a5)
#7 zone_maintenance /builds/isc-projects/bind9/lib/dns/zone.c:10274:5 (libdns.so.1110+0x203a78)
#8 zone_timer /builds/isc-projects/bind9/lib/dns/zone.c:13106:2 (libdns.so.1110+0x1e815a)
#9 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
#10 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)
Mutex M1012319771577875480 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (named+0x4642a6)
#1 zone_refreshkeys /builds/isc-projects/bind9/lib/dns/zone.c:9951:2 (libdns.so.1110+0x204dc3)
#2 zone_maintenance /builds/isc-projects/bind9/lib/dns/zone.c:10274:5 (libdns.so.1110+0x203a78)
#3 zone_timer /builds/isc-projects/bind9/lib/dns/zone.c:13106:2 (libdns.so.1110+0x1e815a)
#4 dispatch /builds/isc-projects/bind9/lib/isc/task.c:1157:7 (libisc.so.1107+0x507d5)
#5 run /builds/isc-projects/bind9/lib/isc/task.c:1331:2 (libisc.so.1107+0x4d729)
Thread T2 'isc-worker0001' (tid=9163, running) created by main thread at:
#0 pthread_create <null> (named+0x446edb)
#1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1107+0x726d8)
#2 isc__taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:1468:7 (libisc.so.1107+0x4d635)
#3 isc_taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:2109:11 (libisc.so.1107+0x4f587)
#4 create_managers /builds/isc-projects/bind9/bin/named/./main.c:886:11 (named+0x4f1a97)
#5 setup /builds/isc-projects/bind9/bin/named/./main.c:1305:11 (named+0x4f05ee)
#6 main /builds/isc-projects/bind9/bin/named/./main.c:1556:2 (named+0x4ef12d)
Thread T7 'isc-worker0006' (tid=9168, running) created by main thread at:
#0 pthread_create <null> (named+0x446edb)
#1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:60:8 (libisc.so.1107+0x726d8)
#2 isc__taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:1468:7 (libisc.so.1107+0x4d635)
#3 isc_taskmgr_create /builds/isc-projects/bind9/lib/isc/task.c:2109:11 (libisc.so.1107+0x4f587)
#4 create_managers /builds/isc-projects/bind9/bin/named/./main.c:886:11 (named+0x4f1a97)
#5 setup /builds/isc-projects/bind9/bin/named/./main.c:1305:11 (named+0x4f05ee)
#6 main /builds/isc-projects/bind9/bin/named/./main.c:1556:2 (named+0x4ef12d)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/builds/isc-projects/bind9/bin/named/.libs/named+0x4642a6) in pthread_mutex_lock
2020-09-09 14:08:33 +10:00
..
2020-08-11 11:00:49 +10:00
2020-08-26 15:31:31 +02:00
2020-08-26 15:31:31 +02:00
2020-08-11 11:00:49 +10:00
2020-02-13 15:05:06 -08:00
2020-07-21 08:44:26 +02:00
2020-08-06 09:10:06 +02:00
2020-07-21 08:44:26 +02:00
2020-02-13 15:05:06 -08:00
2020-07-31 10:15:44 +10:00
2020-02-14 09:31:05 +01:00
2020-05-25 16:09:57 -07:00
2020-07-31 10:15:44 +10:00
2020-02-13 15:05:06 -08:00
2020-05-25 16:09:57 -07:00
2020-07-21 08:44:26 +02:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-05-25 16:09:57 -07:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-07-21 08:44:26 +02:00
2020-09-02 12:00:16 +02:00
2020-06-23 20:20:39 +10:00
2020-02-21 15:05:08 +11:00
2020-03-17 09:11:13 +01:00
2020-08-07 11:26:09 +02:00
2020-04-21 14:19:48 +02:00
2020-03-09 16:19:22 +01:00
2020-03-09 16:19:22 +01:00
2020-02-14 09:31:05 +01:00
2020-02-12 15:04:17 +01:00
2020-02-13 15:05:06 -08:00
2020-05-25 16:09:57 -07:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-02-14 09:31:05 +01:00
2020-04-21 14:19:48 +02:00
2020-04-21 14:19:48 +02:00
2020-08-13 23:06:55 +10:00
2020-04-21 14:19:48 +02:00
2020-05-28 08:07:57 +02:00
2020-07-14 08:55:13 +10:00
2020-03-17 09:11:13 +01:00
2020-02-13 15:05:06 -08:00
2020-02-14 09:31:05 +01:00
2020-03-05 17:20:16 -08:00
2020-08-07 11:26:09 +02:00
2020-03-09 16:19:22 +01:00
2020-02-13 15:05:06 -08:00
2020-09-02 12:00:14 +02:00
2020-06-11 16:02:09 +10:00
2020-05-25 16:09:57 -07:00
2020-05-07 11:44:48 -03:00
2020-02-14 09:31:05 +01:00
2020-06-05 13:19:49 +02:00
2020-06-04 16:00:33 +02:00
2020-05-25 16:09:57 -07:00
2020-08-25 14:10:05 +00:00
2020-07-21 08:44:26 +02:00
2020-02-14 09:31:05 +01:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-08-11 11:00:49 +10:00
2020-03-09 16:19:22 +01:00
2020-04-20 11:40:41 +02:00
2020-05-01 10:36:45 +02:00
2020-05-01 14:11:08 +02:00
2020-05-01 10:36:45 +02:00
2020-02-13 15:05:06 -08:00
2020-04-20 08:59:09 +00:00
2020-04-21 14:19:48 +02:00
2020-04-21 14:19:48 +02:00
2020-04-30 18:40:45 +02:00
2020-08-05 15:51:29 +02:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-08-28 16:21:21 +02:00
2020-08-26 21:16:04 +10:00
2020-02-13 22:07:21 +01:00
2020-03-09 16:19:22 +01:00
2020-08-25 16:02:55 +02:00
2020-02-12 15:04:17 +01:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-03-05 17:20:16 -08:00
2020-09-01 22:24:32 +00:00
2020-09-02 18:08:15 +02:00
2020-06-04 16:00:33 +02:00
2020-02-17 14:23:58 -08:00
2020-07-31 10:15:44 +10:00
2020-02-13 15:05:06 -08:00
2020-07-21 08:44:26 +02:00
2020-07-21 08:44:26 +02:00
2020-07-31 10:15:44 +10:00
2020-02-13 15:05:06 -08:00
2020-04-21 14:19:48 +02:00
2020-05-13 15:35:28 +10:00
2020-04-03 09:27:15 +02:00
2020-02-14 09:31:05 +01:00
2020-02-13 15:05:06 -08:00
2020-02-13 15:05:06 -08:00
2020-05-25 16:09:57 -07:00
2020-03-09 16:19:22 +01:00
2020-02-12 15:04:17 +01:00
2020-07-31 10:15:44 +10:00
2020-02-14 09:31:05 +01:00
2020-06-25 12:04:36 +10:00
2020-06-25 13:43:45 +02:00
2020-09-09 14:08:33 +10:00
2020-06-04 16:10:41 +02:00
2020-02-14 09:31:05 +01:00
2020-08-11 00:10:10 +00:00
2020-02-13 15:05:06 -08:00
2020-06-11 16:02:09 +10:00
2020-07-31 10:15:44 +10:00