ThreadSanitizer: data race lib/ns/client.c:2540 in ns_clientmgr_destroy (v9_16)
TSAN report at https://gitlab.isc.org/isc-projects/bind9/-/jobs/2481573 in an MR branched from v9.16, generated during shutdown in the tcp
system test, no crashes.
==================
WARNING: ThreadSanitizer: data race (pid=21274)
Write of size 8 at 0x7b6800000b50 by thread T1 (mutexes: write M84296756182972960):
#0 ns_clientmgr_destroy /builds/isc-projects/bind9/lib/ns/client.c:2540 (libns-9.16.29-dev.so+0x1123c)
#1 ns_interface_shutdown /builds/isc-projects/bind9/lib/ns/interfacemgr.c:570 (libns-9.16.29-dev.so+0x19358)
#2 purge_old_interfaces /builds/isc-projects/bind9/lib/ns/interfacemgr.c:660 (libns-9.16.29-dev.so+0x198ee)
#3 ns_interfacemgr_shutdown /builds/isc-projects/bind9/lib/ns/interfacemgr.c:388 (libns-9.16.29-dev.so+0x19b75)
#4 shutdown_server server.c:9847 (named+0x44fe42)
#5 task_run /builds/isc-projects/bind9/lib/isc/task.c:851 (libisc-9.16.29-dev.so+0x64b6d)
#6 isc_task_run /builds/isc-projects/bind9/lib/isc/task.c:944 (libisc-9.16.29-dev.so+0x64b6d)
#7 isc__nm_async_task /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:914 (libisc-9.16.29-dev.so+0x3cf51)
#8 process_netievent /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:992 (libisc-9.16.29-dev.so+0x45281)
#9 process_queue /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:1060 (libisc-9.16.29-dev.so+0x45a65)
#10 process_all_queues /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:834 (libisc-9.16.29-dev.so+0x46364)
#11 async_cb /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:862 (libisc-9.16.29-dev.so+0x46364)
#12 uv__async_io /usr/src/libuv-v1.43.0/src/unix/async.c:163 (libuv.so.1+0x11194)
#13 isc__trampoline_run /builds/isc-projects/bind9/lib/isc/trampoline.c:209 (libisc-9.16.29-dev.so+0x67b72)
Previous read of size 8 at 0x7b6800000b50 by thread T2:
#0 ns__client_request /builds/isc-projects/bind9/lib/ns/client.c:1676 (libns-9.16.29-dev.so+0x134c7)
#1 isc__nm_async_readcb /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:2639 (libisc-9.16.29-dev.so+0x44bba)
#2 isc__nm_readcb /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:2612 (libisc-9.16.29-dev.so+0x44d63)
#3 isc__nm_tcpdns_processbuffer /builds/isc-projects/bind9/lib/isc/netmgr/tcpdns.c:822 (libisc-9.16.29-dev.so+0x53447)
#4 processbuffer /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:2218 (libisc-9.16.29-dev.so+0x40b70)
#5 isc__nm_process_sock_buffer /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:2240 (libisc-9.16.29-dev.so+0x40b70)
#6 isc__nm_resume_processing /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:2296 (libisc-9.16.29-dev.so+0x40cff)
#7 nmhandle_detach_cb /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:1798 (libisc-9.16.29-dev.so+0x43954)
#8 isc__nm_async_detach /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:2709 (libisc-9.16.29-dev.so+0x4587e)
#9 process_netievent /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:1026 (libisc-9.16.29-dev.so+0x4587e)
#10 process_queue /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:1060 (libisc-9.16.29-dev.so+0x45a65)
#11 process_all_queues /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:834 (libisc-9.16.29-dev.so+0x46364)
#12 async_cb /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:862 (libisc-9.16.29-dev.so+0x46364)
#13 uv__async_io /usr/src/libuv-v1.43.0/src/unix/async.c:163 (libuv.so.1+0x11194)
#14 isc__trampoline_run /builds/isc-projects/bind9/lib/isc/trampoline.c:209 (libisc-9.16.29-dev.so+0x67b72)
Location is heap block of size 1385 at 0x7b6800000600 allocated by thread T1:
#0 malloc <null> (libtsan.so.0+0x32919)
#1 default_memalloc /builds/isc-projects/bind9/lib/isc/mem.c:715 (libisc-9.16.29-dev.so+0x37a62)
#2 mem_get /builds/isc-projects/bind9/lib/isc/mem.c:624 (libisc-9.16.29-dev.so+0x369c5)
#3 mem_allocateunlocked /builds/isc-projects/bind9/lib/isc/mem.c:1289 (libisc-9.16.29-dev.so+0x386a2)
#4 isc___mem_allocate /builds/isc-projects/bind9/lib/isc/mem.c:1309 (libisc-9.16.29-dev.so+0x386a2)
#5 isc__mem_allocate /builds/isc-projects/bind9/lib/isc/mem.c:2399 (libisc-9.16.29-dev.so+0x3bfa8)
#6 isc___mem_get /builds/isc-projects/bind9/lib/isc/mem.c:1059 (libisc-9.16.29-dev.so+0x3c328)
#7 isc__mem_get /builds/isc-projects/bind9/lib/isc/mem.c:2378 (libisc-9.16.29-dev.so+0x3b605)
#8 ns_interface_create /builds/isc-projects/bind9/lib/ns/interfacemgr.c:400 (libns-9.16.29-dev.so+0x19c9d)
#9 ns_interface_setup /builds/isc-projects/bind9/lib/ns/interfacemgr.c:515 (libns-9.16.29-dev.so+0x19c9d)
#10 do_scan /builds/isc-projects/bind9/lib/ns/interfacemgr.c:1047 (libns-9.16.29-dev.so+0x1b469)
#11 ns_interfacemgr_scan0 /builds/isc-projects/bind9/lib/ns/interfacemgr.c:1104 (libns-9.16.29-dev.so+0x1b91e)
#12 ns_interfacemgr_scan /builds/isc-projects/bind9/lib/ns/interfacemgr.c:1152 (libns-9.16.29-dev.so+0x1b91e)
#13 load_configuration server.c:8880 (named+0x452949)
#14 run_server server.c:9815 (named+0x457ed1)
#15 task_run /builds/isc-projects/bind9/lib/isc/task.c:851 (libisc-9.16.29-dev.so+0x64b6d)
#16 isc_task_run /builds/isc-projects/bind9/lib/isc/task.c:944 (libisc-9.16.29-dev.so+0x64b6d)
#17 isc__nm_async_task /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:914 (libisc-9.16.29-dev.so+0x3cf51)
#18 process_netievent /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:992 (libisc-9.16.29-dev.so+0x45281)
#19 process_queue /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:1060 (libisc-9.16.29-dev.so+0x45a65)
#20 process_all_queues /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:834 (libisc-9.16.29-dev.so+0x46364)
#21 async_cb /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:862 (libisc-9.16.29-dev.so+0x46364)
#22 uv__async_io /usr/src/libuv-v1.43.0/src/unix/async.c:163 (libuv.so.1+0x11194)
#23 isc__trampoline_run /builds/isc-projects/bind9/lib/isc/trampoline.c:209 (libisc-9.16.29-dev.so+0x67b72)
Mutex M84296756182972960 is already destroyed.
Thread T1 'isc-net-0000' (tid=21293, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x5bef5)
#1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:81 (libisc-9.16.29-dev.so+0x825d0)
#2 isc__netmgr_create /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:390 (libisc-9.16.29-dev.so+0x3d947)
#3 isc_managers_create /builds/isc-projects/bind9/lib/isc/managers.c:35 (libisc-9.16.29-dev.so+0x350cc)
#4 create_managers main.c:927 (named+0x427080)
#5 setup main.c:1252 (named+0x427080)
#6 main main.c:1569 (named+0x427080)
Thread T2 'isc-net-0001' (tid=21294, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.0+0x5bef5)
#1 isc_thread_create /builds/isc-projects/bind9/lib/isc/pthreads/thread.c:81 (libisc-9.16.29-dev.so+0x825d0)
#2 isc__netmgr_create /builds/isc-projects/bind9/lib/isc/netmgr/netmgr.c:390 (libisc-9.16.29-dev.so+0x3d947)
#3 isc_managers_create /builds/isc-projects/bind9/lib/isc/managers.c:35 (libisc-9.16.29-dev.so+0x350cc)
#4 create_managers main.c:927 (named+0x427080)
#5 setup main.c:1252 (named+0x427080)
#6 main main.c:1569 (named+0x427080)
SUMMARY: ThreadSanitizer: data race /builds/isc-projects/bind9/lib/ns/client.c:2540 in ns_clientmgr_destroy
==================
ThreadSanitizer: reported 1 warnings