BIND issues
https://gitlab.isc.org/isc-projects/bind9/-/issues
2019-12-12T13:14:08Z
https://gitlab.isc.org/isc-projects/bind9/-/issues/1494
lock-order-inversion (potential deadlock) - nm_thread vs nm_destroy
2019-12-12T13:14:08Z
Mark Andrews
lock-order-inversion (potential deadlock) - nm_thread vs nm_destroy
Unit tests are generating.
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000002) => M1
Mutex M2 acquired here while holding mutex M1 in thread...
Unit tests are generating.
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000002) => M1
Mutex M2 acquired here while holding mutex M1 in thread T1:
#0 pthread_mutex_lock <null>
#1 nm_thread lib/isc/netmgr/netmgr.c:426:4
Mutex M1 previously acquired by the same thread here:
#0 pthread_mutex_lock <null>
#1 nm_thread lib/isc/netmgr/netmgr.c:424:3
Mutex M1 acquired here while holding mutex M2 in main thread:
#0 pthread_mutex_lock <null>
#1 nm_destroy lib/isc/netmgr/netmgr.c:177:3
#2 isc_nm_detach lib/isc/netmgr/netmgr.c:308:3
#3 cleanup_managers lib/ns/tests/nstest.c:194:3
#4 ns_test_end lib/ns/tests/nstest.c:337:2
#5 _teardown lib/ns/tests/notify_test.c:59:2
#6 <null> <null>
#7 __libc_start_main <null>
Mutex M2 previously acquired by the same thread here:
#0 pthread_mutex_lock <null>
#1 nm_destroy lib/isc/netmgr/netmgr.c:171:2
#2 isc_nm_detach lib/isc/netmgr/netmgr.c:308:3
#3 cleanup_managers lib/ns/tests/nstest.c:194:3
#4 ns_test_end lib/ns/tests/nstest.c:337:2
#5 _teardown lib/ns/tests/notify_test.c:59:2
#6 <null> <null>
#7 __libc_start_main <null>
Thread T1 (running) created by main thread at:
#0 pthread_create <null>
#1 isc_thread_create lib/isc/pthreads/thread.c:75:8
#2 isc_nm_start lib/isc/netmgr/netmgr.c:149:3
#3 create_managers lib/ns/tests/nstest.c:231:7
#4 ns_test_begin lib/ns/tests/nstest.c:316:3
#5 _setup lib/ns/tests/notify_test.c:49:11
#6 <null> <null>
#7 __libc_start_main <null>
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_mutex_lock
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1473
ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr....
2019-12-10T13:00:20Z
Ondřej Surý
ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1027 in nmhandle_free
```
WARNING: ThreadSanitizer: data race (pid=29181)
Write of size 8 at 0x7b90000a0010 by thread T16 (mutexes: write M562522896233146464):
#0 nmhandle_free /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1027 (libisc.so.1504+0x3...
```
WARNING: ThreadSanitizer: data race (pid=29181)
Write of size 8 at 0x7b90000a0010 by thread T16 (mutexes: write M562522896233146464):
#0 nmhandle_free /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1027 (libisc.so.1504+0x3e3b7)
#1 nmhandle_deactivate /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1057 (libisc.so.1504+0x3e59f)
#2 isc_nmhandle_unref /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1108 (libisc.so.1504+0x409f0)
#3 fetch_callback /home/ondrej/Projects/bind9/lib/ns/query.c:5680 (libns.so.1502+0x46b71)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Previous read of size 4 at 0x7b90000a0010 by thread T1:
#0 isc_nmhandle_unref /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1067 (libisc.so.1504+0x4091d)
#1 isc__nm_uvreq_put /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1214 (libisc.so.1504+0x41bef)
#2 udp_send_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:439 (libisc.so.1504+0x46c1d)
#3 <null> <null> (libuv.so.1+0x1d283)
#4 <null> <null> (libtsan.so.0+0x29b3d)
Location is heap block of size 7489 at 0x7b90000a0000 allocated by thread T8:
#0 malloc <null> (libtsan.so.0+0x2b1a3)
#1 default_memalloc /home/ondrej/Projects/bind9/lib/isc/mem.c:685 (libisc.so.1504+0x33fee)
#2 mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:598 (libisc.so.1504+0x34c7e)
#3 mem_allocateunlocked /home/ondrej/Projects/bind9/lib/isc/mem.c:1222 (libisc.so.1504+0x34c7e)
#4 isc___mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:1242 (libisc.so.1504+0x34c7e)
#5 isc__mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:2387 (libisc.so.1504+0x3be64)
#6 isc___mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:1007 (libisc.so.1504+0x3c6ca)
#7 isc__mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:2365 (libisc.so.1504+0x3aef1)
#8 alloc_handle /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:916 (libisc.so.1504+0x40547)
#9 isc__nmhandle_get /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:940 (libisc.so.1504+0x40547)
#10 udp_recv_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:312 (libisc.so.1504+0x46841)
#11 <null> <null> (libuv.so.1+0x1d6d4)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M562522896233146464 is already destroyed.
Thread T16 'isc-worker0007' (tid=29211, 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+0x7bc54)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59cf3)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
Thread T1 'isc-net-0000' (tid=29196, 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+0x7bc54)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:149 (libisc.so.1504+0x3ec4a)
#3 create_managers main.c:895 (named+0x1ae90)
#4 setup main.c:1235 (named+0x1ae90)
#5 main main.c:1515 (named+0x1ae90)
Thread T8 'isc-net-0007' (tid=29203, 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+0x7bc54)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:149 (libisc.so.1504+0x3ec4a)
#3 create_managers main.c:895 (named+0x1ae90)
#4 setup main.c:1235 (named+0x1ae90)
#5 main main.c:1515 (named+0x1ae90)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1027 in nmhandle_free
```
and
```
WARNING: ThreadSanitizer: data race (pid=29181)
Write of size 8 at 0x7b90000a0018 by thread T16 (mutexes: write M562522896233146464):
#0 nmhandle_free /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1027 (libisc.so.1504+0x3e3b7)
#1 nmhandle_deactivate /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1057 (libisc.so.1504+0x3e59f)
#2 isc_nmhandle_unref /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1108 (libisc.so.1504+0x409f0)
#3 fetch_callback /home/ondrej/Projects/bind9/lib/ns/query.c:5680 (libns.so.1502+0x46b71)
#4 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#5 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#6 <null> <null> (libtsan.so.0+0x29b3d)
Previous atomic write of size 8 at 0x7b90000a0018 by thread T1:
#0 __tsan_atomic64_fetch_sub <null> (libtsan.so.0+0x648dd)
#1 isc_nmhandle_unref /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1069 (libisc.so.1504+0x4093c)
#2 isc__nm_uvreq_put /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1214 (libisc.so.1504+0x41bef)
#3 udp_send_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:439 (libisc.so.1504+0x46c1d)
#4 <null> <null> (libuv.so.1+0x1d283)
#5 <null> <null> (libtsan.so.0+0x29b3d)
Location is heap block of size 7489 at 0x7b90000a0000 allocated by thread T8:
#0 malloc <null> (libtsan.so.0+0x2b1a3)
#1 default_memalloc /home/ondrej/Projects/bind9/lib/isc/mem.c:685 (libisc.so.1504+0x33fee)
#2 mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:598 (libisc.so.1504+0x34c7e)
#3 mem_allocateunlocked /home/ondrej/Projects/bind9/lib/isc/mem.c:1222 (libisc.so.1504+0x34c7e)
#4 isc___mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:1242 (libisc.so.1504+0x34c7e)
#5 isc__mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:2387 (libisc.so.1504+0x3be64)
#6 isc___mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:1007 (libisc.so.1504+0x3c6ca)
#7 isc__mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:2365 (libisc.so.1504+0x3aef1)
#8 alloc_handle /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:916 (libisc.so.1504+0x40547)
#9 isc__nmhandle_get /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:940 (libisc.so.1504+0x40547)
#10 udp_recv_cb /home/ondrej/Projects/bind9/lib/isc/netmgr/udp.c:312 (libisc.so.1504+0x46841)
#11 <null> <null> (libuv.so.1+0x1d6d4)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M562522896233146464 is already destroyed.
Thread T16 'isc-worker0007' (tid=29211, 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+0x7bc54)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59cf3)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
Thread T1 'isc-net-0000' (tid=29196, 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+0x7bc54)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:149 (libisc.so.1504+0x3ec4a)
#3 create_managers main.c:895 (named+0x1ae90)
#4 setup main.c:1235 (named+0x1ae90)
#5 main main.c:1515 (named+0x1ae90)
Thread T8 'isc-net-0007' (tid=29203, 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+0x7bc54)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:149 (libisc.so.1504+0x3ec4a)
#3 create_managers main.c:895 (named+0x1ae90)
#4 setup main.c:1235 (named+0x1ae90)
#5 main main.c:1515 (named+0x1ae90)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:1027 in nmhandle_free
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1471
ThreadSanitizer: lock-order-inversion (potential deadlock) - fcount_incr vs. ...
2019-12-12T11:38:28Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - fcount_incr vs. dns_resolver_createfetch
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=21211)
Cycle in lock order graph: M1110 (0x7b7400000008) => M1728 (0x7b4c000001d0) => M1110
Mutex M1728 acquired here while holding mutex M1110 in main thr...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=21211)
Cycle in lock order graph: M1110 (0x7b7400000008) => M1728 (0x7b4c000001d0) => M1110
Mutex M1728 acquired here while holding mutex M1110 in main thread:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 fcount_incr /home/ondrej/Projects/bind9/lib/dns/resolver.c:1525 (libdns.so.1505+0x185598)
#2 fctx_create /home/ondrej/Projects/bind9/lib/dns/resolver.c:4925 (libdns.so.1505+0x190783)
#3 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10581 (libdns.so.1505+0x1976b1)
#4 start_fetch /home/ondrej/Projects/bind9/lib/dns/client.c:777 (libdns.so.1505+0x27d26a)
#5 client_resfind /home/ondrej/Projects/bind9/lib/dns/client.c:862 (libdns.so.1505+0x27d26a)
#6 dns_client_startresolve /home/ondrej/Projects/bind9/lib/dns/client.c:1388 (libdns.so.1505+0x281c0c)
#7 dns_client_resolve /home/ondrej/Projects/bind9/lib/dns/client.c:1249 (libdns.so.1505+0x283501)
#8 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1788 (delv+0x5d92)
Mutex M1110 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10538 (libdns.so.1505+0x196da5)
#2 start_fetch /home/ondrej/Projects/bind9/lib/dns/client.c:777 (libdns.so.1505+0x27d26a)
#3 client_resfind /home/ondrej/Projects/bind9/lib/dns/client.c:862 (libdns.so.1505+0x27d26a)
#4 dns_client_startresolve /home/ondrej/Projects/bind9/lib/dns/client.c:1388 (libdns.so.1505+0x281c0c)
#5 dns_client_resolve /home/ondrej/Projects/bind9/lib/dns/client.c:1249 (libdns.so.1505+0x283501)
#6 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1788 (delv+0x5d92)
Mutex M1110 acquired here while holding mutex M1728 in main thread:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_shutdown /home/ondrej/Projects/bind9/lib/dns/resolver.c:10305 (libdns.so.1505+0x196844)
#2 view_flushanddetach /home/ondrej/Projects/bind9/lib/dns/view.c:582 (libdns.so.1505+0x1fc44d)
#3 dns_view_detach /home/ondrej/Projects/bind9/lib/dns/view.c:635 (libdns.so.1505+0x1fc53e)
#4 destroyclient /home/ondrej/Projects/bind9/lib/dns/client.c:611 (libdns.so.1505+0x2810ec)
#5 dns_client_destroy /home/ondrej/Projects/bind9/lib/dns/client.c:652 (libdns.so.1505+0x2810ec)
#6 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1827 (delv+0x3bf2)
Mutex M1728 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_shutdown /home/ondrej/Projects/bind9/lib/dns/resolver.c:10300 (libdns.so.1505+0x196777)
#2 view_flushanddetach /home/ondrej/Projects/bind9/lib/dns/view.c:582 (libdns.so.1505+0x1fc44d)
#3 dns_view_detach /home/ondrej/Projects/bind9/lib/dns/view.c:635 (libdns.so.1505+0x1fc53e)
#4 destroyclient /home/ondrej/Projects/bind9/lib/dns/client.c:611 (libdns.so.1505+0x2810ec)
#5 dns_client_destroy /home/ondrej/Projects/bind9/lib/dns/client.c:652 (libdns.so.1505+0x2810ec)
#6 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1827 (delv+0x3bf2)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1469
ThreadSanitizer: lock-order-inversion (potential deadlock) - isc__nm_enqueue_...
2019-12-12T13:13:50Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) - isc__nm_enqueue_ievent vs isc_nm_listentcp
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=18511)
Cycle in lock order graph: M596862637233476224 (0x000000000000) => M1105 (0x7fbaf719dcd0) => M596862637233476224
Mutex M1105 acquired here while hol...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=18511)
Cycle in lock order graph: M596862637233476224 (0x000000000000) => M1105 (0x7fbaf719dcd0) => M596862637233476224
Mutex M1105 acquired here while holding mutex M596862637233476224 in thread T9:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 isc__nm_enqueue_ievent /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:601 (libisc.so.1504+0x3f20c)
#2 isc_nm_listentcp /home/ondrej/Projects/bind9/lib/isc/netmgr/tcp.c:190 (libisc.so.1504+0x452ab)
#3 isc_nm_listentcpdns /home/ondrej/Projects/bind9/lib/isc/netmgr/tcpdns.c:299 (libisc.so.1504+0x4899f)
#4 ns_interface_listentcp /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:463 (libns.so.1502+0x1b0d3)
#5 ns_interface_setup /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:516 (libns.so.1502+0x1b0d3)
#6 do_scan /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:1070 (libns.so.1502+0x1c023)
#7 ns_interfacemgr_scan0 /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:1130 (libns.so.1502+0x1c8fd)
#8 ns_interfacemgr_scan /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:1177 (libns.so.1502+0x1ca72)
#9 load_configuration server.c:8712 (named+0x53e83)
#10 run_server server.c:9654 (named+0x59a47)
#11 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#12 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#13 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M596862637233476224 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 isc_nm_listentcp /home/ondrej/Projects/bind9/lib/isc/netmgr/tcp.c:189 (libisc.so.1504+0x4526b)
#2 isc_nm_listentcpdns /home/ondrej/Projects/bind9/lib/isc/netmgr/tcpdns.c:299 (libisc.so.1504+0x4899f)
#3 ns_interface_listentcp /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:463 (libns.so.1502+0x1b0d3)
#4 ns_interface_setup /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:516 (libns.so.1502+0x1b0d3)
#5 do_scan /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:1070 (libns.so.1502+0x1c023)
#6 ns_interfacemgr_scan0 /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:1130 (libns.so.1502+0x1c8fd)
#7 ns_interfacemgr_scan /home/ondrej/Projects/bind9/lib/ns/interfacemgr.c:1177 (libns.so.1502+0x1ca72)
#8 load_configuration server.c:8712 (named+0x53e83)
#9 run_server server.c:9654 (named+0x59a47)
#10 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x56f36)
#11 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x56f36)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M596862637233476224 acquired here while holding mutex M1105 in thread T3:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 isc__nm_async_tcplisten /home/ondrej/Projects/bind9/lib/isc/netmgr/tcp.c:338 (libisc.so.1504+0x44e9b)
#2 process_queue /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:538 (libisc.so.1504+0x41fd5)
#3 nm_thread /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:438 (libisc.so.1504+0x422b1)
#4 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M1105 previously acquired by the same thread here:
#0 pthread_cond_wait <null> (libtsan.so.0+0x48e9e)
#1 nm_thread /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:435 (libisc.so.1504+0x4228e)
#2 <null> <null> (libtsan.so.0+0x29b3d)
Thread T9 'isc-worker0000' (tid=18534, 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+0x7bc54)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x59cf3)
#3 create_managers main.c:902 (named+0x1aeec)
#4 setup main.c:1235 (named+0x1aeec)
#5 main main.c:1515 (named+0x1aeec)
Thread T3 'isc-net-0002' (tid=18528, 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+0x7bc54)
#2 isc_nm_start /home/ondrej/Projects/bind9/lib/isc/netmgr/netmgr.c:149 (libisc.so.1504+0x3ec4a)
#3 create_managers main.c:895 (named+0x1ae90)
#4 setup main.c:1235 (named+0x1ae90)
#5 main main.c:1515 (named+0x1ae90)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
Witold Krecicki
Witold Krecicki
https://gitlab.isc.org/isc-projects/bind9/-/issues/1444
ThreadSanitizer: data race lib/dns/geoip2.c:118 in state_key_init
2019-12-04T22:07:56Z
Ondřej Surý
ThreadSanitizer: data race lib/dns/geoip2.c:118 in state_key_init
* Binary: `named`
* Tests: geoip2
```
WARNING: ThreadSanitizer: data race (pid=8377)
Write of size 1 at 0x7f7b65a4ed50 by thread T12 (mutexes: write M56430750668493848, write M701857284902677856):
#0 state_key_init /home/ondrej/Pr...
* Binary: `named`
* Tests: geoip2
```
WARNING: ThreadSanitizer: data race (pid=8377)
Write of size 1 at 0x7f7b65a4ed50 by thread T12 (mutexes: write M56430750668493848, write M701857284902677856):
#0 state_key_init /home/ondrej/Projects/bind9/lib/dns/geoip2.c:118 (libdns.so.1505+0x28b170)
#1 state_key_init /home/ondrej/Projects/bind9/lib/dns/geoip2.c:97 (libdns.so.1505+0x28b170)
#2 get_entry_for /home/ondrej/Projects/bind9/lib/dns/geoip2.c:176 (libdns.so.1505+0x28b309)
#3 dns_geoip_match /home/ondrej/Projects/bind9/lib/dns/geoip2.c:341 (libdns.so.1505+0x28b309)
#4 dns_aclelement_match /home/ondrej/Projects/bind9/lib/dns/acl.c:399 (libdns.so.1505+0x3837a)
#5 dns_acl_match /home/ondrej/Projects/bind9/lib/dns/acl.c:229 (libdns.so.1505+0x3878e)
#6 dns_acl_allowed /home/ondrej/Projects/bind9/lib/dns/acl.c:601 (libdns.so.1505+0x3960e)
#7 isself /home/ondrej/Projects/bind9/bin/named/zoneconf.c:800 (named+0x739df)
#8 notify_isself /home/ondrej/Projects/bind9/lib/dns/zone.c:11569 (libdns.so.1505+0x2120b7)
#9 notify_send /home/ondrej/Projects/bind9/lib/dns/zone.c:11892 (libdns.so.1505+0x2120b7)
#10 notify_find_address /home/ondrej/Projects/bind9/lib/dns/zone.c:11690 (libdns.so.1505+0x2127f3)
#11 zone_notify /home/ondrej/Projects/bind9/lib/dns/zone.c:12126 (libdns.so.1505+0x22be46)
#12 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10774 (libdns.so.1505+0x249aa0)
#13 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650 (libdns.so.1505+0x249aa0)
#14 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#15 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#16 <null> <null> (libtsan.so.0+0x29b3d)
Previous read of size 1 at 0x7f7b65a4ed50 by thread T16 (mutexes: write M35522):
#0 state_key_init /home/ondrej/Projects/bind9/lib/dns/geoip2.c:105 (libdns.so.1505+0x28b0ba)
#1 get_entry_for /home/ondrej/Projects/bind9/lib/dns/geoip2.c:176 (libdns.so.1505+0x28b309)
#2 dns_geoip_match /home/ondrej/Projects/bind9/lib/dns/geoip2.c:341 (libdns.so.1505+0x28b309)
#3 dns_aclelement_match /home/ondrej/Projects/bind9/lib/dns/acl.c:399 (libdns.so.1505+0x3837a)
#4 dns_acl_match /home/ondrej/Projects/bind9/lib/dns/acl.c:229 (libdns.so.1505+0x3878e)
#5 dns_acl_allowed /home/ondrej/Projects/bind9/lib/dns/acl.c:601 (libdns.so.1505+0x3960e)
#6 isself /home/ondrej/Projects/bind9/bin/named/zoneconf.c:800 (named+0x739df)
#7 notify_isself /home/ondrej/Projects/bind9/lib/dns/zone.c:11569 (libdns.so.1505+0x2120b7)
#8 notify_send /home/ondrej/Projects/bind9/lib/dns/zone.c:11892 (libdns.so.1505+0x2120b7)
#9 notify_find_address /home/ondrej/Projects/bind9/lib/dns/zone.c:11690 (libdns.so.1505+0x2127f3)
#10 zone_notify /home/ondrej/Projects/bind9/lib/dns/zone.c:12126 (libdns.so.1505+0x22be46)
#11 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10774 (libdns.so.1505+0x249aa0)
#12 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650 (libdns.so.1505+0x249aa0)
#13 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#14 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#15 <null> <null> (libtsan.so.0+0x29b3d)
Location is global 'state_key_initialized' of size 1 at 0x7f7b65a4ed50 (libdns.so.1505+0x0000002f8d50)
Mutex M56430750668493848 is already destroyed.
Mutex M701857284902677856 is already destroyed.
Mutex M35522 (0x7b7800014418) created at:
#0 pthread_mutex_init <null> (libtsan.so.0+0x2c5ad)
#1 isc__mutex_init /home/ondrej/Projects/bind9/lib/isc/pthreads/mutex.c:284 (libisc.so.1504+0x7a266)
#2 dns_zone_create /home/ondrej/Projects/bind9/lib/dns/zone.c:910 (libdns.so.1505+0x20a53a)
#3 dns_zonemgr_createzone /home/ondrej/Projects/bind9/lib/dns/zone.c:16931 (libdns.so.1505+0x232b69)
#4 configure_zone server.c:6326 (named+0x330fe)
#5 configure_view server.c:4026 (named+0x3a2fc)
#6 load_configuration server.c:8903 (named+0x57431)
#7 run_server server.c:9639 (named+0x59a37)
#8 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#9 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#10 <null> <null> (libtsan.so.0+0x29b3d)
Thread T12 'isc-worker0003' (tid=8406, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
Thread T16 'isc-worker0007' (tid=8410, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/dns/geoip2.c:118 in state_key_init
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
Ondřej Surý
Ondřej Surý
https://gitlab.isc.org/isc-projects/bind9/-/issues/1443
ThreadSanitizer: data race lib/dns/rbtdb.c:1960 in decrement_reference
2020-01-13T14:47:15Z
Ondřej Surý
ThreadSanitizer: data race lib/dns/rbtdb.c:1960 in decrement_reference
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: dsdigest
```
WARNING: ThreadSanitizer: data race (pid=12571)
Read of size 8 at 0x7b200001ffc8 by thread T10 (mutexes: write M138902901664845416, read M44045...
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: dsdigest
```
WARNING: ThreadSanitizer: data race (pid=12571)
Read of size 8 at 0x7b200001ffc8 by thread T10 (mutexes: write M138902901664845416, read M44045782973743632):
#0 decrement_reference /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:1960 (libdns.so.1505+0x110730)
#1 detachnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:5202 (libdns.so.1505+0x1140b8)
#2 dns_db_detachnode /home/ondrej/Projects/bind9/lib/dns/db.c:606 (libdns.so.1505+0x66e34)
#3 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:6388 (libdns.so.1505+0x1946d7)
#4 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#5 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#6 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#7 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#8 <null> <null> (libtsan.so.0+0x29b3d)
Previous write of size 8 at 0x7b200001ffc8 by thread T11 (mutexes: write M167050399335913016, write M37290280453474000):
#0 addonlevel /home/ondrej/Projects/bind9/lib/dns/rbt.c:2445 (libdns.so.1505+0xf7891)
#1 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1391 (libdns.so.1505+0xf7891)
#2 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1104 (libdns.so.1505+0xfa115)
#3 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2744 (libdns.so.1505+0x10e686)
#4 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2789 (libdns.so.1505+0x10ec6b)
#5 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447 (libdns.so.1505+0x6640f)
#6 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:435 (libdns.so.1505+0x6640f)
#7 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:5996 (libdns.so.1505+0x19413f)
#8 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#9 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#10 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#11 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Location is heap block of size 124 at 0x7b200001ff80 allocated by thread T10:
#0 malloc <null> (libtsan.so.0+0x2b1a3)
#1 default_memalloc /home/ondrej/Projects/bind9/lib/isc/mem.c:685 (libisc.so.1504+0x33f1e)
#2 mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:598 (libisc.so.1504+0x34bae)
#3 mem_allocateunlocked /home/ondrej/Projects/bind9/lib/isc/mem.c:1222 (libisc.so.1504+0x34bae)
#4 isc___mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:1242 (libisc.so.1504+0x34bae)
#5 isc__mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:2387 (libisc.so.1504+0x3bd94)
#6 isc___mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:1007 (libisc.so.1504+0x3c5fa)
#7 isc__mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:2365 (libisc.so.1504+0x3ae21)
#8 create_node /home/ondrej/Projects/bind9/lib/dns/rbt.c:2189 (libdns.so.1505+0xf584c)
#9 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1146 (libdns.so.1505+0xf7ce5)
#10 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1104 (libdns.so.1505+0xfa115)
#11 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2744 (libdns.so.1505+0x10e686)
#12 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2789 (libdns.so.1505+0x10ec6b)
#13 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447 (libdns.so.1505+0x6640f)
#14 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:435 (libdns.so.1505+0x6640f)
#15 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:5996 (libdns.so.1505+0x19413f)
#16 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#17 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#18 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#19 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#20 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M138902901664845416 is already destroyed.
Mutex M44045782973743632 is already destroyed.
Mutex M167050399335913016 is already destroyed.
Mutex M37290280453474000 is already destroyed.
Thread T10 'isc-worker0001' (tid=12652, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
Thread T11 'isc-worker0002' (tid=12653, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:1960 in decrement_reference
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
Mark Andrews
Mark Andrews
https://gitlab.isc.org/isc-projects/bind9/-/issues/1442
ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-l...
2019-12-10T02:19:49Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2d229) in pthread_rwlock_wrlock
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: addzone, autosign, dnssec, ...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=3749)
Cycle in lock order graph: M33356 (0x7b540...
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: addzone, autosign, dnssec, ...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=3749)
Cycle in lock order graph: M33356 (0x7b54000218a0) => M33330 (0x7b5000020490) => M33331 (0x7b50000204d0) => M33356
Mutex M33330 acquired here while holding mutex M33356 in thread T13:
#0 pthread_rwlock_wrlock <null> (libtsan.so.0+0x2d229)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:54 (libisc.so.1504+0x5078f)
#2 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:47 (libisc.so.1504+0x5078f)
#3 add_changed /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:1359 (libdns.so.1505+0x1020ab)
#4 subtractrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:6680 (libdns.so.1505+0x10d7d0)
#5 subtractrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:6622 (libdns.so.1505+0x10d7d0)
#6 dns_db_subtractrdataset /home/ondrej/Projects/bind9/lib/dns/db.c:768 (libdns.so.1505+0x67909)
#7 diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:371 (libdns.so.1505+0x6ac8e)
#8 dns_diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:452 (libdns.so.1505+0x6c0a1)
#9 do_one_tuple /home/ondrej/Projects/bind9/lib/dns/zone.c:4089 (libdns.so.1505+0x20379e)
#10 update_one_rr /home/ondrej/Projects/bind9/lib/dns/zone.c:4118 (libdns.so.1505+0x203acf)
#11 del_sigs /home/ondrej/Projects/bind9/lib/dns/zone.c:6371 (libdns.so.1505+0x22a21e)
#12 zone_resigninc /home/ondrej/Projects/bind9/lib/dns/zone.c:6864 (libdns.so.1505+0x2412dd)
#13 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10815 (libdns.so.1505+0x24a063)
#14 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650 (libdns.so.1505+0x24a063)
#15 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#16 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#17 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M33356 previously acquired by the same thread here:
#0 pthread_rwlock_wrlock <null> (libtsan.so.0+0x2d229)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:54 (libisc.so.1504+0x5078f)
#2 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:47 (libisc.so.1504+0x5078f)
#3 subtractrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:6677 (libdns.so.1505+0x10d7b5)
#4 subtractrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:6622 (libdns.so.1505+0x10d7b5)
#5 dns_db_subtractrdataset /home/ondrej/Projects/bind9/lib/dns/db.c:768 (libdns.so.1505+0x67909)
#6 diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:371 (libdns.so.1505+0x6ac8e)
#7 dns_diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:452 (libdns.so.1505+0x6c0a1)
#8 do_one_tuple /home/ondrej/Projects/bind9/lib/dns/zone.c:4089 (libdns.so.1505+0x20379e)
#9 update_one_rr /home/ondrej/Projects/bind9/lib/dns/zone.c:4118 (libdns.so.1505+0x203acf)
#10 del_sigs /home/ondrej/Projects/bind9/lib/dns/zone.c:6371 (libdns.so.1505+0x22a21e)
#11 zone_resigninc /home/ondrej/Projects/bind9/lib/dns/zone.c:6864 (libdns.so.1505+0x2412dd)
#12 zone_maintenance /home/ondrej/Projects/bind9/lib/dns/zone.c:10815 (libdns.so.1505+0x24a063)
#13 zone_timer /home/ondrej/Projects/bind9/lib/dns/zone.c:13650 (libdns.so.1505+0x24a063)
#14 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#15 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#16 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M33331 acquired here while holding mutex M33330 in thread T14:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x507f7)
#2 setnsec3parameters /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2273 (libdns.so.1505+0x103102)
#3 iszonesecure /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2246 (libdns.so.1505+0x103102)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7317 (libdns.so.1505+0x108947)
#5 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7294 (libdns.so.1505+0x108947)
#6 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301 (libdns.so.1505+0x65c10)
#7 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:285 (libdns.so.1505+0x65c10)
#8 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554 (libdns.so.1505+0x2523d3)
#9 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138 (libdns.so.1505+0x2523d3)
#10 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193 (libdns.so.1505+0x252655)
#11 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#12 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#13 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M33330 previously acquired by the same thread here:
#0 pthread_rwlock_wrlock <null> (libtsan.so.0+0x2d229)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:54 (libisc.so.1504+0x5078f)
#2 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:47 (libisc.so.1504+0x5078f)
#3 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7304 (libdns.so.1505+0x1088ae)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7294 (libdns.so.1505+0x1088ae)
#5 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301 (libdns.so.1505+0x65c10)
#6 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:285 (libdns.so.1505+0x65c10)
#7 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554 (libdns.so.1505+0x2523d3)
#8 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138 (libdns.so.1505+0x2523d3)
#9 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193 (libdns.so.1505+0x252655)
#10 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#11 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M33356 acquired here while holding mutex M33331 in thread T14:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x507f7)
#2 setnsec3parameters /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2276 (libdns.so.1505+0x10318d)
#3 iszonesecure /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2246 (libdns.so.1505+0x10318d)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7317 (libdns.so.1505+0x108947)
#5 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7294 (libdns.so.1505+0x108947)
#6 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301 (libdns.so.1505+0x65c10)
#7 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:285 (libdns.so.1505+0x65c10)
#8 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554 (libdns.so.1505+0x2523d3)
#9 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138 (libdns.so.1505+0x2523d3)
#10 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193 (libdns.so.1505+0x252655)
#11 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#12 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#13 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M33331 previously acquired by the same thread here:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x507f7)
#2 setnsec3parameters /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2273 (libdns.so.1505+0x103102)
#3 iszonesecure /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2246 (libdns.so.1505+0x103102)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7317 (libdns.so.1505+0x108947)
#5 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7294 (libdns.so.1505+0x108947)
#6 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301 (libdns.so.1505+0x65c10)
#7 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:285 (libdns.so.1505+0x65c10)
#8 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554 (libdns.so.1505+0x2523d3)
#9 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138 (libdns.so.1505+0x2523d3)
#10 zone_asyncload /home/ondrej/Projects/bind9/lib/dns/zone.c:2193 (libdns.so.1505+0x252655)
#11 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#12 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#13 <null> <null> (libtsan.so.0+0x29b3d)
Thread T13 'isc-worker0004' (tid=3779, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
Thread T14 'isc-worker0005' (tid=3780, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2d229) in pthread_rwlock_wrlock
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1441
ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-l...
2019-12-10T20:23:43Z
Ondřej Surý
ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2cf99) in pthread_rwlock_rdlock
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: acl, additional, addzone, auth, autosign, builtin, cacheclean, case, catz, cds, chain, dnssec, rpzrecurse, serve-stale, ...
```
WARNING: ThreadSanitizer: lock...
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: acl, additional, addzone, auth, autosign, builtin, cacheclean, case, catz, cds, chain, dnssec, rpzrecurse, serve-stale, ...
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=21666)
Cycle in lock order graph: M751673771345120912 (0x000000000000) => M755051488245546000 (0x000000000000) => M751673771345120912
Mutex M755051488245546000 acquired here while holding mutex M751673771345120912 in thread T9:
#0 pthread_rwlock_rdlock <null> (libtsan.so.0+0x2cf99)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:50 (libisc.so.1504+0x507f7)
#2 zone_findrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:5445 (libdns.so.1505+0x122ed6)
#3 dns_db_findrdataset /home/ondrej/Projects/bind9/lib/dns/db.c:700 (libdns.so.1505+0x67390)
#4 iszonesecure /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2213 (libdns.so.1505+0x102ef8)
#5 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7317 (libdns.so.1505+0x108947)
#6 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7294 (libdns.so.1505+0x108947)
#7 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301 (libdns.so.1505+0x65c10)
#8 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:285 (libdns.so.1505+0x65c10)
#9 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554 (libdns.so.1505+0x2523d3)
#10 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138 (libdns.so.1505+0x2523d3)
#11 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x252561)
#12 load_zones server.c:9533 (named+0x2e62a)
#13 run_server server.c:9642 (named+0x59a4a)
#14 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#15 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#16 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M751673771345120912 previously acquired by the same thread here:
#0 pthread_rwlock_wrlock <null> (libtsan.so.0+0x2d229)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:54 (libisc.so.1504+0x5078f)
#2 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:47 (libisc.so.1504+0x5078f)
#3 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7304 (libdns.so.1505+0x1088ae)
#4 endload /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:7294 (libdns.so.1505+0x1088ae)
#5 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:301 (libdns.so.1505+0x65c10)
#6 dns_db_endload /home/ondrej/Projects/bind9/lib/dns/db.c:285 (libdns.so.1505+0x65c10)
#7 zone_startload /home/ondrej/Projects/bind9/lib/dns/zone.c:2554 (libdns.so.1505+0x2523d3)
#8 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2138 (libdns.so.1505+0x2523d3)
#9 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x252561)
#10 load_zones server.c:9533 (named+0x2e62a)
#11 run_server server.c:9642 (named+0x59a4a)
#12 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#13 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#14 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M751673771345120912 acquired here while holding mutex M755051488245546000 in thread T9:
#0 pthread_rwlock_wrlock <null> (libtsan.so.0+0x2d229)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:54 (libisc.so.1504+0x5078f)
#2 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:47 (libisc.so.1504+0x5078f)
#3 add_changed /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:1359 (libdns.so.1505+0x1020ab)
#4 add32 /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:5813 (libdns.so.1505+0x11691c)
#5 addrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:6600 (libdns.so.1505+0x119ed8)
#6 dns_db_addrdataset /home/ondrej/Projects/bind9/lib/dns/db.c:744 (libdns.so.1505+0x676af)
#7 diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:364 (libdns.so.1505+0x6ae0e)
#8 dns_diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:452 (libdns.so.1505+0x6c0a1)
#9 do_one_tuple /home/ondrej/Projects/bind9/lib/dns/zone.c:4089 (libdns.so.1505+0x20379e)
#10 update_one_rr /home/ondrej/Projects/bind9/lib/dns/zone.c:4118 (libdns.so.1505+0x203acf)
#11 add_soa /home/ondrej/Projects/bind9/lib/dns/zone.c:4222 (libdns.so.1505+0x24dc95)
#12 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4585 (libdns.so.1505+0x24dc95)
#13 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163 (libdns.so.1505+0x251ec9)
#14 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x252561)
#15 load_zones server.c:9533 (named+0x2e62a)
#16 run_server server.c:9642 (named+0x59a4a)
#17 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#18 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#19 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M755051488245546000 previously acquired by the same thread here:
#0 pthread_rwlock_wrlock <null> (libtsan.so.0+0x2d229)
#1 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:54 (libisc.so.1504+0x5078f)
#2 isc_rwlock_lock /home/ondrej/Projects/bind9/lib/isc/rwlock.c:47 (libisc.so.1504+0x5078f)
#3 addrdataset /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:6555 (libdns.so.1505+0x119a72)
#4 dns_db_addrdataset /home/ondrej/Projects/bind9/lib/dns/db.c:744 (libdns.so.1505+0x676af)
#5 diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:364 (libdns.so.1505+0x6ae0e)
#6 dns_diff_apply /home/ondrej/Projects/bind9/lib/dns/diff.c:452 (libdns.so.1505+0x6c0a1)
#7 do_one_tuple /home/ondrej/Projects/bind9/lib/dns/zone.c:4089 (libdns.so.1505+0x20379e)
#8 update_one_rr /home/ondrej/Projects/bind9/lib/dns/zone.c:4118 (libdns.so.1505+0x203acf)
#9 add_soa /home/ondrej/Projects/bind9/lib/dns/zone.c:4222 (libdns.so.1505+0x24dc95)
#10 zone_postload /home/ondrej/Projects/bind9/lib/dns/zone.c:4585 (libdns.so.1505+0x24dc95)
#11 zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2163 (libdns.so.1505+0x251ec9)
#12 dns_zone_load /home/ondrej/Projects/bind9/lib/dns/zone.c:2177 (libdns.so.1505+0x252561)
#13 load_zones server.c:9533 (named+0x2e62a)
#14 run_server server.c:9642 (named+0x59a4a)
#15 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#16 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#17 <null> <null> (libtsan.so.0+0x29b3d)
Thread T9 'isc-worker0000' (tid=21692, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2cf99) in pthread_rwlock_rdlock
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1437
ThreadSanitizer: data race lib/dns/rbtdb.c:2027 in decrement_reference
2019-12-05T04:09:00Z
Ondřej Surý
ThreadSanitizer: data race lib/dns/rbtdb.c:2027 in decrement_reference
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=31123)
Read of size 8 at 0x7b200001d0c8 by thread T9 (mutexes: write M208427220912378008, write M1079406...
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=31123)
Read of size 8 at 0x7b200001d0c8 by thread T9 (mutexes: write M208427220912378008, write M107940602687063184):
#0 decrement_reference /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2027 (libdns.so.1505+0x110ae8)
#1 detachnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:5202 (libdns.so.1505+0x1140b8)
#2 dns_db_detachnode /home/ondrej/Projects/bind9/lib/dns/db.c:606 (libdns.so.1505+0x66e34)
#3 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:6388 (libdns.so.1505+0x1946d7)
#4 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#5 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#6 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#7 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#8 <null> <null> (libtsan.so.0+0x29b3d)
Previous write of size 8 at 0x7b200001d0c8 by thread T12 (mutexes: write M220812119887647752, write M98933300353108688):
#0 addonlevel /home/ondrej/Projects/bind9/lib/dns/rbt.c:2445 (libdns.so.1505+0xf7891)
#1 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1391 (libdns.so.1505+0xf7891)
#2 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1104 (libdns.so.1505+0xfa115)
#3 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2744 (libdns.so.1505+0x10e686)
#4 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2789 (libdns.so.1505+0x10ec6b)
#5 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447 (libdns.so.1505+0x6640f)
#6 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:435 (libdns.so.1505+0x6640f)
#7 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:5996 (libdns.so.1505+0x19413f)
#8 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#9 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#10 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#11 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Location is heap block of size 124 at 0x7b200001d080 allocated by thread T9:
#0 malloc <null> (libtsan.so.0+0x2b1a3)
#1 default_memalloc /home/ondrej/Projects/bind9/lib/isc/mem.c:685 (libisc.so.1504+0x33f1e)
#2 mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:598 (libisc.so.1504+0x34bae)
#3 mem_allocateunlocked /home/ondrej/Projects/bind9/lib/isc/mem.c:1222 (libisc.so.1504+0x34bae)
#4 isc___mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:1242 (libisc.so.1504+0x34bae)
#5 isc__mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:2387 (libisc.so.1504+0x3bd94)
#6 isc___mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:1007 (libisc.so.1504+0x3c5fa)
#7 isc__mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:2365 (libisc.so.1504+0x3ae21)
#8 create_node /home/ondrej/Projects/bind9/lib/dns/rbt.c:2189 (libdns.so.1505+0xf584c)
#9 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1146 (libdns.so.1505+0xf7ce5)
#10 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1104 (libdns.so.1505+0xfa115)
02-Dec-2019 10:53:06.439 fctx 0x7b6800029410(secure.example/NSEC): cache_name
#11 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2744 (libdns.so.1505+0x10e686)
#12 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2789 (libdns.so.1505+0x10ec6b)
#13 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447 (libdns.so.1505+0x6640f)
#14 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:435 (libdns.so.1505+0x6640f)
#15 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:5996 (libdns.so.1505+0x19413f)
#16 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#17 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#18 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#19 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#20 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M208427220912378008 is already destroyed.
Mutex M107940602687063184 is already destroyed.
Mutex M220812119887647752 is already destroyed.
Mutex M98933300353108688 is already destroyed.
Thread T9 'isc-worker0000' (tid=31146, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
Thread T12 'isc-worker0003' (tid=31149, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2027 in decrement_reference
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1436
ThreadSanitizer: data race lib/dns/rbt.c:2445 in addonlevel
2019-12-05T04:07:22Z
Ondřej Surý
ThreadSanitizer: data race lib/dns/rbt.c:2445 in addonlevel
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=31123)
Write of size 8 at 0x7b200001d0c8 by thread T12 (mutexes: write M220812119887647752, write M98933...
* Binary: `named`
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=31123)
Write of size 8 at 0x7b200001d0c8 by thread T12 (mutexes: write M220812119887647752, write M98933300353108688):
#0 addonlevel /home/ondrej/Projects/bind9/lib/dns/rbt.c:2445 (libdns.so.1505+0xf7891)
#1 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1391 (libdns.so.1505+0xf7891)
#2 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1104 (libdns.so.1505+0xfa115)
#3 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2744 (libdns.so.1505+0x10e686)
#4 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2789 (libdns.so.1505+0x10ec6b)
#5 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447 (libdns.so.1505+0x6640f)
#6 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:435 (libdns.so.1505+0x6640f)
#7 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:5996 (libdns.so.1505+0x19413f)
#8 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#9 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#10 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#11 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#12 <null> <null> (libtsan.so.0+0x29b3d)
Previous read of size 8 at 0x7b200001d0c8 by thread T9 (mutexes: write M208427220912378008, read M107940602687063184):
#0 decrement_reference /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:1960 (libdns.so.1505+0x110730)
#1 detachnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:5202 (libdns.so.1505+0x1140b8)
#2 dns_db_detachnode /home/ondrej/Projects/bind9/lib/dns/db.c:606 (libdns.so.1505+0x66e34)
#3 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:6388 (libdns.so.1505+0x1946d7)
#4 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#5 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#6 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#7 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#8 <null> <null> (libtsan.so.0+0x29b3d)
Location is heap block of size 124 at 0x7b200001d080 allocated by thread T9:
#0 malloc <null> (libtsan.so.0+0x2b1a3)
#1 default_memalloc /home/ondrej/Projects/bind9/lib/isc/mem.c:685 (libisc.so.1504+0x33f1e)
#2 mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:598 (libisc.so.1504+0x34bae)
#3 mem_allocateunlocked /home/ondrej/Projects/bind9/lib/isc/mem.c:1222 (libisc.so.1504+0x34bae)
#4 isc___mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:1242 (libisc.so.1504+0x34bae)
#5 isc__mem_allocate /home/ondrej/Projects/bind9/lib/isc/mem.c:2387 (libisc.so.1504+0x3bd94)
#6 isc___mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:1007 (libisc.so.1504+0x3c5fa)
#7 isc__mem_get /home/ondrej/Projects/bind9/lib/isc/mem.c:2365 (libisc.so.1504+0x3ae21)
#8 create_node /home/ondrej/Projects/bind9/lib/dns/rbt.c:2189 (libdns.so.1505+0xf584c)
#9 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1146 (libdns.so.1505+0xf7ce5)
#10 dns_rbt_addnode /home/ondrej/Projects/bind9/lib/dns/rbt.c:1104 (libdns.so.1505+0xfa115)
#11 findnodeintree /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2744 (libdns.so.1505+0x10e686)
#12 findnode /home/ondrej/Projects/bind9/lib/dns/rbtdb.c:2789 (libdns.so.1505+0x10ec6b)
#13 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:447 (libdns.so.1505+0x6640f)
#14 dns_db_findnode /home/ondrej/Projects/bind9/lib/dns/db.c:435 (libdns.so.1505+0x6640f)
#15 cache_name /home/ondrej/Projects/bind9/lib/dns/resolver.c:5996 (libdns.so.1505+0x19413f)
#16 cache_message /home/ondrej/Projects/bind9/lib/dns/resolver.c:6416 (libdns.so.1505+0x1aefe3)
#17 resquery_response /home/ondrej/Projects/bind9/lib/dns/resolver.c:7634 (libdns.so.1505+0x1aefe3)
#18 dispatch /home/ondrej/Projects/bind9/lib/isc/task.c:1134 (libisc.so.1504+0x55606)
#19 run /home/ondrej/Projects/bind9/lib/isc/task.c:1319 (libisc.so.1504+0x55606)
#20 <null> <null> (libtsan.so.0+0x29b3d)
Mutex M220812119887647752 is already destroyed.
Mutex M98933300353108688 is already destroyed.
Mutex M208427220912378008 is already destroyed.
Mutex M107940602687063184 is already destroyed.
Thread T12 'isc-worker0003' (tid=31149, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
Thread T9 'isc-worker0000' (tid=31146, 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+0x7a324)
#2 isc_taskmgr_create /home/ondrej/Projects/bind9/lib/isc/task.c:1410 (libisc.so.1504+0x583c3)
#3 create_managers main.c:902 (named+0x1af1c)
#4 setup main.c:1235 (named+0x1af1c)
#5 main main.c:1513 (named+0x1af1c)
SUMMARY: ThreadSanitizer: data race /home/ondrej/Projects/bind9/lib/dns/rbt.c:2445 in addonlevel
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1435
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib...
2019-12-10T14:11:10Z
Ondřej Surý
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock
* Binary: `named`, `delv`, `dig`, `dnssec-signzone`, ...
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: all of them
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=22334)
Cycle in lock order g...
* Binary: `named`, `delv`, `dig`, `dnssec-signzone`, ...
* Commit: 289f143d8a2a248333ace4d1d43ab388c7405a73
* Tests: all of them
```
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=22334)
Cycle in lock order graph: M1113 (0x7b7400000058) => M1728 (0x7b4c000001d0) => M1113
Mutex M1728 acquired here while holding mutex M1113 in main thread:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 fcount_incr /home/ondrej/Projects/bind9/lib/dns/resolver.c:1524 (libdns.so.1505+0x185f18)
#2 fctx_create /home/ondrej/Projects/bind9/lib/dns/resolver.c:4928 (libdns.so.1505+0x191103)
#3 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10584 (libdns.so.1505+0x198031)
#4 start_fetch /home/ondrej/Projects/bind9/lib/dns/client.c:777 (libdns.so.1505+0x27dbea)
#5 client_resfind /home/ondrej/Projects/bind9/lib/dns/client.c:862 (libdns.so.1505+0x27dbea)
#6 dns_client_startresolve /home/ondrej/Projects/bind9/lib/dns/client.c:1388 (libdns.so.1505+0x28258c)
#7 dns_client_resolve /home/ondrej/Projects/bind9/lib/dns/client.c:1249 (libdns.so.1505+0x283e81)
#8 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1788 (delv+0x5d92)
Mutex M1113 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_createfetch /home/ondrej/Projects/bind9/lib/dns/resolver.c:10541 (libdns.so.1505+0x197725)
#2 start_fetch /home/ondrej/Projects/bind9/lib/dns/client.c:777 (libdns.so.1505+0x27dbea)
#3 client_resfind /home/ondrej/Projects/bind9/lib/dns/client.c:862 (libdns.so.1505+0x27dbea)
#4 dns_client_startresolve /home/ondrej/Projects/bind9/lib/dns/client.c:1388 (libdns.so.1505+0x28258c)
#5 dns_client_resolve /home/ondrej/Projects/bind9/lib/dns/client.c:1249 (libdns.so.1505+0x283e81)
#6 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1788 (delv+0x5d92)
Mutex M1113 acquired here while holding mutex M1728 in main thread:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_shutdown /home/ondrej/Projects/bind9/lib/dns/resolver.c:10308 (libdns.so.1505+0x1971c4)
#2 view_flushanddetach /home/ondrej/Projects/bind9/lib/dns/view.c:582 (libdns.so.1505+0x1fcdcd)
#3 dns_view_detach /home/ondrej/Projects/bind9/lib/dns/view.c:635 (libdns.so.1505+0x1fcebe)
#4 destroyclient /home/ondrej/Projects/bind9/lib/dns/client.c:611 (libdns.so.1505+0x281a6c)
#5 dns_client_destroy /home/ondrej/Projects/bind9/lib/dns/client.c:652 (libdns.so.1505+0x281a6c)
#6 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1827 (delv+0x3bf2)
Mutex M1728 previously acquired by the same thread here:
#0 pthread_mutex_lock <null> (libtsan.so.0+0x3d62b)
#1 dns_resolver_shutdown /home/ondrej/Projects/bind9/lib/dns/resolver.c:10303 (libdns.so.1505+0x1970f7)
#2 view_flushanddetach /home/ondrej/Projects/bind9/lib/dns/view.c:582 (libdns.so.1505+0x1fcdcd)
#3 dns_view_detach /home/ondrej/Projects/bind9/lib/dns/view.c:635 (libdns.so.1505+0x1fcebe)
#4 destroyclient /home/ondrej/Projects/bind9/lib/dns/client.c:611 (libdns.so.1505+0x281a6c)
#5 dns_client_destroy /home/ondrej/Projects/bind9/lib/dns/client.c:652 (libdns.so.1505+0x281a6c)
#6 main /home/ondrej/Projects/bind9/bin/delv/delv.c:1827 (delv+0x3bf2)
SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x3d62b) in pthread_mutex_lock
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1419
ThreadSanitizer: data race rbtdb.c:7568 in issecure
2019-12-03T05:50:45Z
Ondřej Surý
ThreadSanitizer: data race rbtdb.c:7568 in issecure
Binary: `named`
Commit: d744a6fc238fc685411d8bc673c951cb80d6cb81
Tests: autosign
```
WARNING: ThreadSanitizer: data race (pid=95328)
Read of size 8 at 0x7b5c00031600 by thread T1 (mutexes: read M6328084555044064):
#0 issecure rbtd...
Binary: `named`
Commit: d744a6fc238fc685411d8bc673c951cb80d6cb81
Tests: autosign
```
WARNING: ThreadSanitizer: data race (pid=95328)
Read of size 8 at 0x7b5c00031600 by thread T1 (mutexes: read M6328084555044064):
#0 issecure rbtdb.c:7568 (libdns.1505.dylib:x86_64+0xbc0cd)
#1 dns_db_issecure db.c:235 (libdns.1505.dylib:x86_64+0x2b1f9)
#2 query_lookup query.c:5490 (libns.1502.dylib:x86_64+0x132d7)
#3 ns__query_start query.c:5441 (libns.1502.dylib:x86_64+0x1144c)
#4 ns_query_start query.c:5162 (libns.1502.dylib:x86_64+0x172a8)
#5 ns__client_request client.c:2157 (libns.1502.dylib:x86_64+0x5dd2)
#6 processbuffer tcpdns.c:175 (libisc.1504.dylib:x86_64+0x2cb6d)
#7 dnslisten_readcb tcpdns.c:228 (libisc.1504.dylib:x86_64+0x2c95b)
#8 read_cb tcp.c:399 (libisc.1504.dylib:x86_64+0x28dc9)
#9 uv__stream_io <null>:1547888 (libuv.1.dylib:x86_64+0xeda1)
Previous write of size 8 at 0x7b5c00031600 by thread T5 (mutexes: write M6046609578333200):
#0 closeversion rbtdb.c:2470 (libdns.1505.dylib:x86_64+0xb5683)
#1 dns_db_closeversion db.c:418 (libdns.1505.dylib:x86_64+0x2bb77)
#2 zone_sign zone.c:9369 (libdns.1505.dylib:x86_64+0x1d26da)
#3 zone_maintenance zone.c:10826 (libdns.1505.dylib:x86_64+0x1cb6bd)
#4 zone_timer zone.c:13673 (libdns.1505.dylib:x86_64+0x1abb75)
#5 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 785 at 0x7b5c00031380 allocated by thread T6:
#0 malloc <null>:1547920 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 dns_rbtdb_create rbtdb.c:8066 (libdns.1505.dylib:x86_64+0xb184b)
#6 dns_db_create db.c:118 (libdns.1505.dylib:x86_64+0x2ac1c)
#7 zone_load zone.c:2108 (libdns.1505.dylib:x86_64+0x19b582)
#8 zone_asyncload zone.c:2192 (libdns.1505.dylib:x86_64+0x19c802)
#9 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Mutex M6328084555044064 is already destroyed.
Mutex M6046609578333200 is already destroyed.
Thread T1 (tid=2149170, running) created by main thread at:
#0 pthread_create <null>:1547968 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000debe)
Thread T5 (tid=2149174, running) created by main thread at:
#0 pthread_create <null>:1547968 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000df16)
Thread T6 (tid=2149175, running) created by main thread at:
#0 pthread_create <null>:1547872 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000df16)
SUMMARY: ThreadSanitizer: data race rbtdb.c:7568 in issecure
```
and second occurence immediately after:
```
WARNING: ThreadSanitizer: data race (pid=95328)
Read of size 4 at 0x7b5c00026bd8 by thread T1 (mutexes: read M6328084555044064):
#0 issecure rbtdb.c:7568 (libdns.1505.dylib:x86_64+0xbc0dd)
#1 dns_db_issecure db.c:235 (libdns.1505.dylib:x86_64+0x2b1f9)
#2 query_lookup query.c:5490 (libns.1502.dylib:x86_64+0x132d7)
#3 ns__query_start query.c:5441 (libns.1502.dylib:x86_64+0x1144c)
#4 ns_query_start query.c:5162 (libns.1502.dylib:x86_64+0x172a8)
#5 ns__client_request client.c:2157 (libns.1502.dylib:x86_64+0x5dd2)
#6 processbuffer tcpdns.c:175 (libisc.1504.dylib:x86_64+0x2cb6d)
#7 dnslisten_readcb tcpdns.c:228 (libisc.1504.dylib:x86_64+0x2c95b)
#8 read_cb tcp.c:399 (libisc.1504.dylib:x86_64+0x28dc9)
#9 uv__stream_io <null>:1547888 (libuv.1.dylib:x86_64+0xeda1)
Previous write of size 4 at 0x7b5c00026bd8 by thread T5:
#0 iszonesecure rbtdb.c:2253 (libdns.1505.dylib:x86_64+0xc8dc6)
#1 closeversion rbtdb.c:2407 (libdns.1505.dylib:x86_64+0xb4ea5)
#2 dns_db_closeversion db.c:418 (libdns.1505.dylib:x86_64+0x2bb77)
#3 zone_sign zone.c:9369 (libdns.1505.dylib:x86_64+0x1d26da)
#4 zone_maintenance zone.c:10826 (libdns.1505.dylib:x86_64+0x1cb6bd)
#5 zone_timer zone.c:13673 (libdns.1505.dylib:x86_64+0x1abb75)
#6 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 817 at 0x7b5c00026b80 allocated by thread T5:
#0 malloc <null>:1547920 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 allocate_version rbtdb.c:1239 (libdns.1505.dylib:x86_64+0xb3b67)
#6 newversion rbtdb.c:1280 (libdns.1505.dylib:x86_64+0xb48ae)
#7 dns_db_newversion db.c:383 (libdns.1505.dylib:x86_64+0x2b93f)
#8 zone_sign zone.c:8900 (libdns.1505.dylib:x86_64+0x1cf5e8)
#9 zone_maintenance zone.c:10826 (libdns.1505.dylib:x86_64+0x1cb6bd)
#10 zone_timer zone.c:13673 (libdns.1505.dylib:x86_64+0x1abb75)
#11 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Mutex M6328084555044064 is already destroyed.
Thread T1 (tid=2149170, running) created by main thread at:
#0 pthread_create <null>:1547968 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000debe)
Thread T5 (tid=2149174, running) created by main thread at:
#0 pthread_create <null>:1547968 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000df16)
SUMMARY: ThreadSanitizer: data race rbtdb.c:7568 in issecure
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1417
ThreadSanitizer: data race rbtdb.c:1535 in add32
2019-11-28T20:13:06Z
Ondřej Surý
ThreadSanitizer: data race rbtdb.c:1535 in add32
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Test: zero
```
WARNING: ThreadSanitizer: data race (pid=21745)
Write of size 2 at 0x7b44000503dc by thread T6 (mutexes: write M1003031114526233856, write M88453014...
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Test: zero
```
WARNING: ThreadSanitizer: data race (pid=21745)
Write of size 2 at 0x7b44000503dc by thread T6 (mutexes: write M1003031114526233856, write M884530149331044048):
#0 add32 rbtdb.c:1535 (libdns.1505.dylib:x86_64+0xbffd1)
#1 addrdataset rbtdb.c:6591 (libdns.1505.dylib:x86_64+0xbab25)
#2 dns_db_addrdataset db.c:744 (libdns.1505.dylib:x86_64+0x2ce6e)
#3 resquery_response resolver.c:6344 (libdns.1505.dylib:x86_64+0x143237)
#4 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Previous read of size 2 at 0x7b44000503dc by thread T4:
#0 rdataset_getownercase rbtdb.c:9416 (libdns.1505.dylib:x86_64+0xc2155)
#1 towiresorted rdataset.c:721 (libdns.1505.dylib:x86_64+0x121601)
#2 dns_rdataset_towiresorted rdataset.c:566 (libdns.1505.dylib:x86_64+0x12136e)
#3 dns_message_rendersection message.c:2080 (libdns.1505.dylib:x86_64+0x762a3)
#4 ns_client_send client.c:517 (libns.1502.dylib:x86_64+0x1d8c)
#5 query_send query.c:562 (libns.1502.dylib:x86_64+0x162ea)
#6 ns_query_done query.c:10868 (libns.1502.dylib:x86_64+0x11ee2)
#7 query_prepresponse query.c (libns.1502.dylib:x86_64+0x20769)
#8 query_gotanswer query.c (libns.1502.dylib:x86_64+0x18839)
#9 query_lookup query.c:5562 (libns.1502.dylib:x86_64+0x136f7)
#10 ns__query_start query.c:5441 (libns.1502.dylib:x86_64+0x1144c)
#11 ns_query_start query.c:5162 (libns.1502.dylib:x86_64+0x172a8)
#12 ns__client_request client.c:2154 (libns.1502.dylib:x86_64+0x5dd2)
#13 udp_recv_cb udp.c:318 (libisc.1504.dylib:x86_64+0x2aa91)
#14 uv__udp_io <null>:6886864 (libuv.1.dylib:x86_64+0x13244)
Location is heap block of size 271 at 0x7b44000503c0 allocated by thread T6:
#0 malloc <null>:6886896 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 dns_rdataslab_fromrdataset rdataslab.c:266 (libdns.1505.dylib:x86_64+0x123903)
#6 addrdataset rbtdb.c:6441 (libdns.1505.dylib:x86_64+0xb9931)
#7 dns_db_addrdataset db.c:744 (libdns.1505.dylib:x86_64+0x2ce6e)
#8 resquery_response resolver.c:6344 (libdns.1505.dylib:x86_64+0x143237)
#9 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Mutex M1003031114526233856 is already destroyed.
Mutex M884530149331044048 is already destroyed.
Thread T6 (tid=1725576, running) created by main thread at:
#0 pthread_create <null>:6886944 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T4 (tid=1725574, running) created by main thread at:
#0 pthread_create <null>:6886944 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000df4e)
SUMMARY: ThreadSanitizer: data race rbtdb.c:1535 in add32
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1416
ThreadSanitizer: data race resolver.c:3384 in findname
2023-03-16T11:03:07Z
Ondřej Surý
ThreadSanitizer: data race resolver.c:3384 in findname
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: mkeys
```
WARNING: ThreadSanitizer: data race (pid=54848)
Read of size 8 at 0x7b6800050398 by thread T5:
#0 findname resolver.c:3384 (libdns.1505.dylib:...
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: mkeys
```
WARNING: ThreadSanitizer: data race (pid=54848)
Read of size 8 at 0x7b6800050398 by thread T5:
#0 findname resolver.c:3384 (libdns.1505.dylib:x86_64+0x13bc57)
#1 fctx_try resolver.c:3663 (libdns.1505.dylib:x86_64+0x137192)
#2 fctx_start resolver.c:4650 (libdns.1505.dylib:x86_64+0x1300d3)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Previous write of size 8 at 0x7b6800050398 by thread T8 (mutexes: read M670890401489730024, write M1043563511172569464):
#0 fctx_join resolver.c:4705 (libdns.1505.dylib:x86_64+0x12fcd0)
#1 dns_resolver_createfetch resolver.c:10638 (libdns.1505.dylib:x86_64+0x12cbe9)
#2 dotat server.c:6978 (named:x86_64+0x100026d80)
#3 dns_keytable_forall keytable.c:901 (libdns.1505.dylib:x86_64+0x5c0bb)
#4 tat_timer_tick server.c:7036 (named:x86_64+0x10001fc27)
#5 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 1449 at 0x7b680004fe00 allocated by thread T8:
#0 malloc <null>:5828960 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 dns_resolver_createfetch resolver.c:4748 (libdns.1505.dylib:x86_64+0x12cc41)
#6 dotat server.c:6978 (named:x86_64+0x100026d80)
#7 dns_keytable_forall keytable.c:901 (libdns.1505.dylib:x86_64+0x5c0bb)
#8 tat_timer_tick server.c:7036 (named:x86_64+0x10001fc27)
#9 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Mutex M670890401489730024 is already destroyed.
Mutex M1043563511172569464 is already destroyed.
Thread T5 (tid=1518630, running) created by main thread at:
#0 pthread_create <null>:5829008 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T8 (tid=1518633, running) created by main thread at:
#0 pthread_create <null>:5829008 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
SUMMARY: ThreadSanitizer: data race resolver.c:3384 in findname
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1415
ThreadSanitizer: data race rbt.c:2495 in dns_rbt_addnode
2019-11-28T00:10:55Z
Ondřej Surý
ThreadSanitizer: data race rbt.c:2495 in dns_rbt_addnode
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: mirror
```
WARNING: ThreadSanitizer: data race (pid=47813)
Write of size 4 at 0x7b200002a914 by thread T5 (mutexes: write M182250082437959608, write M693784...
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: mirror
```
WARNING: ThreadSanitizer: data race (pid=47813)
Write of size 4 at 0x7b200002a914 by thread T5 (mutexes: write M182250082437959608, write M69378479338097504):
#0 dns_rbt_addnode rbt.c:2495 (libdns.1505.dylib:x86_64+0xab547)
#1 findnodeintree rbtdb.c:2738 (libdns.1505.dylib:x86_64+0xc965a)
#2 findnode rbtdb.c:2783 (libdns.1505.dylib:x86_64+0xb641b)
#3 dns_db_findnode db.c:447 (libdns.1505.dylib:x86_64+0x2bcd8)
#4 validated resolver.c:5564 (libdns.1505.dylib:x86_64+0x14bcba)
#5 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Previous read of size 4 at 0x7b200002a914 by thread T8 (mutexes: write M194634981413229616):
#0 addrdataset rbtdb.c:6524 (libdns.1505.dylib:x86_64+0xb9fe7)
#1 dns_db_addrdataset db.c:744 (libdns.1505.dylib:x86_64+0x2ce6e)
#2 validated resolver.c:5716 (libdns.1505.dylib:x86_64+0x14c57b)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 126 at 0x7b200002a900 allocated by thread T8:
#0 malloc <null>:5827872 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 create_node rbt.c:2189 (libdns.1505.dylib:x86_64+0xabcc5)
#6 dns_rbt_addnode rbt.c:1274 (libdns.1505.dylib:x86_64+0xaa9ea)
#7 findnodeintree rbtdb.c:2738 (libdns.1505.dylib:x86_64+0xc965a)
#8 findnode rbtdb.c:2783 (libdns.1505.dylib:x86_64+0xb641b)
#9 dns_db_findnode db.c:447 (libdns.1505.dylib:x86_64+0x2bcd8)
#10 validated resolver.c:5708 (libdns.1505.dylib:x86_64+0x14c4b7)
#11 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Mutex M182250082437959608 is already destroyed.
Mutex M69378479338097504 is already destroyed.
Mutex M194634981413229616 is already destroyed.
Thread T5 (tid=1498349, running) created by main thread at:
#0 pthread_create <null>:5827920 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T8 (tid=1498352, running) created by main thread at:
#0 pthread_create <null>:5827920 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
SUMMARY: ThreadSanitizer: data race rbt.c:2495 in dns_rbt_addnode
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1412
ThreadSanitizer: data race resolver.c:7030 in fctx_decreference
2019-12-02T23:52:18Z
Ondřej Surý
ThreadSanitizer: data race resolver.c:7030 in fctx_decreference
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: fetchlimit
```
WARNING: ThreadSanitizer: data race (pid=66438)
Read of size 4 at 0x7b680015c1f0 by thread T5 (mutexes: write M22372295666377800):
#0 fct...
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: fetchlimit
```
WARNING: ThreadSanitizer: data race (pid=66438)
Read of size 4 at 0x7b680015c1f0 by thread T5 (mutexes: write M22372295666377800):
#0 fctx_decreference resolver.c:7030 (libdns.1505.dylib:x86_64+0x131a42)
#1 dns_resolver_destroyfetch resolver.c:10758 (libdns.1505.dylib:x86_64+0x1318a0)
#2 fetch_callback query.c:5679 (libns.1502.dylib:x86_64+0x153d8)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Previous write of size 4 at 0x7b680015c1f0 by thread T7:
#0 fctx_nextaddress resolver.c:3872 (libdns.1505.dylib:x86_64+0x1391de)
#1 fctx_try resolver.c:4012 (libdns.1505.dylib:x86_64+0x136638)
#2 fctx_timeout resolver.c:4462 (libdns.1505.dylib:x86_64+0x134b1d)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 1449 at 0x7b680015c000 allocated by thread T4:
#0 malloc <null>:5823072 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 dns_resolver_createfetch resolver.c:4748 (libdns.1505.dylib:x86_64+0x12cc41)
#6 ns_query_recurse query.c:5858 (libns.1502.dylib:x86_64+0x13ed3)
#7 query_delegation query.c (libns.1502.dylib:x86_64+0x21ed1)
#8 query_gotanswer query.c (libns.1502.dylib:x86_64+0x18b2f)
#9 query_lookup query.c:5562 (libns.1502.dylib:x86_64+0x136f7)
#10 ns__query_start query.c:5441 (libns.1502.dylib:x86_64+0x1144c)
#11 ns_query_start query.c:5162 (libns.1502.dylib:x86_64+0x172a8)
#12 ns__client_request client.c:2154 (libns.1502.dylib:x86_64+0x5dd2)
#13 udp_recv_cb udp.c:318 (libisc.1504.dylib:x86_64+0x2aa91)
#14 uv__udp_io <null>:5823072 (libuv.1.dylib:x86_64+0x13244)
Mutex M22372295666377800 is already destroyed.
Thread T5 (tid=1295632, running) created by main thread at:
#0 pthread_create <null>:5823120 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T7 (tid=1295634, running) created by main thread at:
#0 pthread_create <null>:5823120 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T4 (tid=1295631, running) created by main thread at:
#0 pthread_create <null>:5823024 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000df4e)
SUMMARY: ThreadSanitizer: data race resolver.c:7030 in fctx_decreference
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1411
ThreadSanitizer: data race resolver.c:2153 in fctx_query
2019-12-11T00:08:39Z
Ondřej Surý
ThreadSanitizer: data race resolver.c:2153 in fctx_query
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: fetchlimit
```
WARNING: ThreadSanitizer: data race (pid=66438)
Write of size 4 at 0x7b680015c528 by thread T7:
#0 fctx_query resolver.c:2153 (libdns.150...
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: fetchlimit
```
WARNING: ThreadSanitizer: data race (pid=66438)
Write of size 4 at 0x7b680015c528 by thread T7:
#0 fctx_query resolver.c:2153 (libdns.1505.dylib:x86_64+0x13b047)
#1 fctx_try resolver.c:4132 (libdns.1505.dylib:x86_64+0x1378f1)
#2 fctx_timeout resolver.c:4462 (libdns.1505.dylib:x86_64+0x134b1d)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Previous read of size 4 at 0x7b680015c528 by thread T5 (mutexes: write M22372295666377800):
#0 fctx_decreference resolver.c:7029 (libdns.1505.dylib:x86_64+0x131a17)
#1 dns_resolver_destroyfetch resolver.c:10758 (libdns.1505.dylib:x86_64+0x1318a0)
#2 fetch_callback query.c:5679 (libns.1502.dylib:x86_64+0x153d8)
#3 run task.c:1134 (libisc.1504.dylib:x86_64+0x3be51)
Location is heap block of size 1449 at 0x7b680015c000 allocated by thread T4:
#0 malloc <null>:7951424 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bbf)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a1c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22037)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd3e)
#5 dns_resolver_createfetch resolver.c:4748 (libdns.1505.dylib:x86_64+0x12cc41)
#6 ns_query_recurse query.c:5858 (libns.1502.dylib:x86_64+0x13ed3)
#7 query_delegation query.c (libns.1502.dylib:x86_64+0x21ed1)
#8 query_gotanswer query.c (libns.1502.dylib:x86_64+0x18b2f)
#9 query_lookup query.c:5562 (libns.1502.dylib:x86_64+0x136f7)
#10 ns__query_start query.c:5441 (libns.1502.dylib:x86_64+0x1144c)
#11 ns_query_start query.c:5162 (libns.1502.dylib:x86_64+0x172a8)
#12 ns__client_request client.c:2154 (libns.1502.dylib:x86_64+0x5dd2)
#13 udp_recv_cb udp.c:318 (libisc.1504.dylib:x86_64+0x2aa91)
#14 uv__udp_io <null>:7951424 (libuv.1.dylib:x86_64+0x13244)
Mutex M22372295666377800 is already destroyed.
Thread T7 (tid=1295634, running) created by main thread at:
#0 pthread_create <null>:7951472 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T5 (tid=1295632, running) created by main thread at:
#0 pthread_create <null>:7951472 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_taskmgr_create task.c:1410 (libisc.1504.dylib:x86_64+0x3b340)
#3 main main.c:902 (named:x86_64+0x10000dfa6)
Thread T4 (tid=1295631, running) created by main thread at:
#0 pthread_create <null>:7951376 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23b84)
#3 main main.c:895 (named:x86_64+0x10000df4e)
SUMMARY: ThreadSanitizer: data race resolver.c:2153 in fctx_query
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1404
ThreadSanitizer: data race netmgr.c:179 in isc_nm_detach
2019-11-26T17:32:33Z
Ondřej Surý
ThreadSanitizer: data race netmgr.c:179 in isc_nm_detach
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=53059)
Write of size 1 at 0x00010a1a1541 by main thread (mutexes: write M102, write M112):
#0 isc_nm...
* Binary: `named`
* Commit: d0bc45be1778b6e6d88db12c7697536ef61f09b1
* Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=53059)
Write of size 1 at 0x00010a1a1541 by main thread (mutexes: write M102, write M112):
#0 isc_nm_detach netmgr.c:179 (libisc.1504.dylib:x86_64+0x24d87)
#1 isc_nm_destroy netmgr.c:340 (libisc.1504.dylib:x86_64+0x253f5)
#2 main main.c:959 (named:x86_64+0x10000e43c)
Previous read of size 1 at 0x00010a1a1541 by thread T1:
#0 nm_thread netmgr.c:429 (libisc.1504.dylib:x86_64+0x24297)
Location is heap block of size 267665 at 0x00010a1a1000 allocated by main thread:
#0 malloc <null> (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1504.dylib:x86_64+0x21bef)
#2 isc___mem_allocate mem.c:598 (libisc.1504.dylib:x86_64+0x22a4c)
#3 isc___mem_get mem.c:2387 (libisc.1504.dylib:x86_64+0x22067)
#4 isc__mem_get mem.c:2365 (libisc.1504.dylib:x86_64+0x1cd6e)
#5 isc_nm_start netmgr.c:123 (libisc.1504.dylib:x86_64+0x23a33)
#6 main main.c:895 (named:x86_64+0x10000df4e)
Mutex M102 (0x7b48000004a8) created at:
#0 pthread_mutex_init <null> (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2b9a3)
#1 isc__mutex_init mutex.c:286 (libisc.1504.dylib:x86_64+0x58ca9)
#2 isc_nm_start netmgr.c:88 (libisc.1504.dylib:x86_64+0x237f9)
#3 main main.c:895 (named:x86_64+0x10000df4e)
Mutex M112 (0x00010a1a14d0) created at:
#0 pthread_mutex_init <null> (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2b9a3)
#1 isc__mutex_init mutex.c:286 (libisc.1504.dylib:x86_64+0x58ca9)
#2 isc_nm_start netmgr.c:140 (libisc.1504.dylib:x86_64+0x23b17)
#3 main main.c:895 (named:x86_64+0x10000df4e)
Thread T1 (tid=945113, running) created by main thread at:
#0 pthread_create <null> (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1504.dylib:x86_64+0x58db1)
#2 isc_nm_start netmgr.c:152 (libisc.1504.dylib:x86_64+0x23bb4)
#3 main main.c:895 (named:x86_64+0x10000df4e)
SUMMARY: ThreadSanitizer: data race netmgr.c:179 in isc_nm_detach
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1379
ThreadSanitizer: data race counter.c:93 in isc_counter_detach
2019-11-28T11:59:53Z
Ondřej Surý
ThreadSanitizer: data race counter.c:93 in isc_counter_detach
Binary: `named`
Commit: master with various accumulated fixes :-)
Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=17420)
Write of size 4 at 0x7b1000014190 by thread T8:
#0 isc_counter_detach counter.c:93 (libisc.1503.dy...
Binary: `named`
Commit: master with various accumulated fixes :-)
Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=17420)
Write of size 4 at 0x7b1000014190 by thread T8:
#0 isc_counter_detach counter.c:93 (libisc.1503.dylib:x86_64+0xb5b7)
#1 fctx_destroy resolver.c:4390 (libdns.1503.dylib:x86_64+0x130ec2)
#2 fctx_doshutdown resolver.c:4573 (libdns.1503.dylib:x86_64+0x14d346)
#3 run task.c:1134 (libisc.1503.dylib:x86_64+0x3b121)
Previous read of size 4 at 0x7b1000014190 by thread T6:
#0 isc_counter_detach counter.c:103 (libisc.1503.dylib:x86_64+0xb57f)
#1 fctx_destroy resolver.c:4390 (libdns.1503.dylib:x86_64+0x130ec2)
#2 fctx_doshutdown resolver.c:4573 (libdns.1503.dylib:x86_64+0x14d346)
#3 run task.c:1134 (libisc.1503.dylib:x86_64+0x3b121)
Location is heap block of size 49 at 0x7b1000014180 allocated by thread T2:
#0 malloc <null>:9014112 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1503.dylib:x86_64+0x21fef)
#2 isc___mem_allocate mem.c:598 (libisc.1503.dylib:x86_64+0x22e4c)
#3 isc___mem_get mem.c:2387 (libisc.1503.dylib:x86_64+0x22467)
#4 isc__mem_get mem.c:2365 (libisc.1503.dylib:x86_64+0x1d16e)
#5 isc_counter_create counter.c:41 (libisc.1503.dylib:x86_64+0xb2d3)
#6 dns_resolver_createfetch resolver.c:4754 (libdns.1503.dylib:x86_64+0x12d263)
#7 ns_query_recurse query.c:5858 (libns.1501.dylib:x86_64+0x14c83)
#8 query_delegation query.c (libns.1501.dylib:x86_64+0x22c81)
#9 query_gotanswer query.c (libns.1501.dylib:x86_64+0x198df)
#10 query_lookup query.c:5562 (libns.1501.dylib:x86_64+0x144a7)
#11 ns__query_start query.c:5441 (libns.1501.dylib:x86_64+0x121fc)
#12 ns_query_start query.c:5162 (libns.1501.dylib:x86_64+0x18058)
#13 ns__client_request client.c:2152 (libns.1501.dylib:x86_64+0x6b72)
#14 dnslisten_readcb tcpdns.c:185 (libisc.1503.dylib:x86_64+0x2bce9)
#15 read_cb tcp.c:346 (libisc.1503.dylib:x86_64+0x2848f)
#16 uv__stream_io <null>:9014112 (libuv.1.dylib:x86_64+0xeda1)
Thread T8 (tid=8022002, running) created by main thread at:
#0 pthread_create <null>:9014160 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x58081)
#2 isc_taskmgr_create task.c:1410 (libisc.1503.dylib:x86_64+0x3a610)
#3 main main.c:902 (named:x86_64+0x10000df36)
Thread T6 (tid=8022000, running) created by main thread at:
#0 pthread_create <null>:9014160 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x58081)
#2 isc_taskmgr_create task.c:1410 (libisc.1503.dylib:x86_64+0x3a610)
#3 main main.c:902 (named:x86_64+0x10000df36)
Thread T2 (tid=8021990, running) created by main thread at:
#0 pthread_create <null>:9014064 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x58081)
#2 isc_nm_start netmgr.c:127 (libisc.1503.dylib:x86_64+0x23e17)
#3 main main.c:895 (named:x86_64+0x10000dede)
SUMMARY: ThreadSanitizer: data race counter.c:93 in isc_counter_detach
```
December 2019 (9.11.14, 9.14.9, 9.15.7)
https://gitlab.isc.org/isc-projects/bind9/-/issues/1378
ThreadSanitizer: data race mem.c:2378 in isc__mem_putanddetach
2019-11-26T17:25:40Z
Ondřej Surý
ThreadSanitizer: data race mem.c:2378 in isc__mem_putanddetach
Binary: `named`
Commit: eba576dddfc2ce613245cd3939e223fafe30cb6d
Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=64356)
Read of size 8 at 0x7b5400020590 by thread T5:
#0 isc__mem_putanddetach mem.c:2378 (libisc.1503.dyl...
Binary: `named`
Commit: eba576dddfc2ce613245cd3939e223fafe30cb6d
Tests: dnssec
```
WARNING: ThreadSanitizer: data race (pid=64356)
Read of size 8 at 0x7b5400020590 by thread T5:
#0 isc__mem_putanddetach mem.c:2378 (libisc.1503.dylib:x86_64+0x21b57)
#1 isc_astack_destroy astack.c:77 (libisc.1503.dylib:x86_64+0x5ece)
#2 nmsocket_cleanup netmgr.c:539 (libisc.1503.dylib:x86_64+0x2767a)
#3 nmsocket_maybe_destroy netmgr.c:601 (libisc.1503.dylib:x86_64+0x25964)
#4 isc_nmhandle_unref netmgr.c:903 (libisc.1503.dylib:x86_64+0x26a93)
#5 fetch_callback query.c:5680 (libns.1501.dylib:x86_64+0x1619c)
#6 run task.c:1134 (libisc.1503.dylib:x86_64+0x3b141)
Previous write of size 8 at 0x7b5400020590 by thread T2:
#0 isc___mem_putanddetach mem.c:935 (libisc.1503.dylib:x86_64+0x22a0c)
#1 isc__mem_putanddetach mem.c:2380 (libisc.1503.dylib:x86_64+0x21b9c)
#2 isc_astack_destroy astack.c:77 (libisc.1503.dylib:x86_64+0x5ece)
#3 nmsocket_cleanup netmgr.c:539 (libisc.1503.dylib:x86_64+0x2767a)
#4 nmsocket_maybe_destroy netmgr.c:601 (libisc.1503.dylib:x86_64+0x25964)
#5 isc__nmsocket_prep_destroy netmgr.c:645 (libisc.1503.dylib:x86_64+0x25721)
#6 isc_nmsocket_detach netmgr.c:671 (libisc.1503.dylib:x86_64+0x25aaf)
#7 dnslisten_readcb tcpdns.c:109 (libisc.1503.dylib:x86_64+0x2b926)
#8 read_cb tcp.c:355 (libisc.1503.dylib:x86_64+0x2851d)
#9 uv__stream_io <null>:5822784 (libuv.1.dylib:x86_64+0xf05c)
Thread T5 (tid=7195628, running) created by main thread at:
#0 pthread_create <null>:5822864 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x580a1)
#2 isc_taskmgr_create task.c:1410 (libisc.1503.dylib:x86_64+0x3a630)
#3 main main.c:902 (named:x86_64+0x10000df36)
Thread T2 (tid=7195593, running) created by main thread at:
#0 pthread_create <null>:5822864 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x580a1)
#2 isc_nm_start netmgr.c:127 (libisc.1503.dylib:x86_64+0x23e37)
#3 main main.c:895 (named:x86_64+0x10000dede)
SUMMARY: ThreadSanitizer: data race mem.c:2378 in isc__mem_putanddetach
```
This is not an error in the mem.c per se, but it looks like `nmsocket_cleanup()` can get called twice over the same data?
December 2019 (9.11.14, 9.14.9, 9.15.7)
Witold Krecicki
Witold Krecicki