ThreadSanitizer: data race rbtdb.c:4472 in find_deepest_zonecut
WARNING: ThreadSanitizer: data race (pid=45980)
Read of size 2 at 0x7b2000027ce8 by thread T1:
#0 find_deepest_zonecut rbtdb.c:4472 (libdns.1503.dylib:x86_64+0xc9416)
#1 cache_find rbtdb.c:4738 (libdns.1503.dylib:x86_64+0xb5f48)
#2 dns_db_findext db.c:551 (libdns.1503.dylib:x86_64+0x2b74e)
#3 query_lookup query.c:5515 (libns.1501.dylib:x86_64+0x1350e)
#4 ns__query_start query.c:5441 (libns.1501.dylib:x86_64+0x1146c)
#5 ns_query_start query.c:5162 (libns.1501.dylib:x86_64+0x172c8)
#6 ns__client_request client.c:2152 (libns.1501.dylib:x86_64+0x66a2)
#7 dnslisten_readcb tcpdns.c:185 (libisc.1503.dylib:x86_64+0x209b9)
#8 read_cb tcp.c:346 (libisc.1503.dylib:x86_64+0x1d15f)
#9 uv__stream_io <null>:1541328 (libuv.1.dylib:x86_64+0xeda1)
Previous write of size 2 at 0x7b2000027ce8 by thread T7:
#0 decrement_reference rbtdb.c:1603 (libdns.1503.dylib:x86_64+0xc32a1)
#1 detachnode rbtdb.c:5197 (libdns.1503.dylib:x86_64+0xb7024)
#2 rdataset_disassociate rbtdb.c:8377 (libdns.1503.dylib:x86_64+0xc0330)
#3 dns_rdataset_disassociate rdataset.c:118 (libdns.1503.dylib:x86_64+0x120089)
#4 fctx_destroy resolver.c:4395 (libdns.1503.dylib:x86_64+0x130251)
#5 fctx_doshutdown resolver.c:4570 (libdns.1503.dylib:x86_64+0x14c626)
#6 run task.c:1134 (libisc.1503.dylib:x86_64+0x2c9e1)
Location is heap block of size 124 at 0x7b2000027c80 allocated by thread T6:
#0 malloc <null>:1541360 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x4e65a)
#1 default_memalloc mem.c:685 (libisc.1503.dylib:x86_64+0x17ae1)
#2 dns_rbt_addnode rbt.c:1382 (libdns.1503.dylib:x86_64+0xa9d06)
#3 findnodeintree rbtdb.c:2739 (libdns.1503.dylib:x86_64+0xc896a)
#4 findnode rbtdb.c:2784 (libdns.1503.dylib:x86_64+0xb532b)
#5 dns_db_findnode db.c:447 (libdns.1503.dylib:x86_64+0x2b158)
#6 resquery_response resolver.c:6018 (libdns.1503.dylib:x86_64+0x141e7a)
#7 run task.c:1134 (libisc.1503.dylib:x86_64+0x2c9e1)
Thread T1 (tid=4654354, running) created by main thread at:
#0 pthread_create <null>:1541408 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x46d1c)
#2 main main.c:895 (named:x86_64+0x10000acbe)
Thread T7 (tid=4654360, running) created by main thread at:
#0 pthread_create <null>:1541408 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x46d1c)
#2 main main.c:902 (named:x86_64+0x10000ad16)
Thread T6 (tid=4654359, running) created by main thread at:
#0 pthread_create <null>:1541312 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2a9cd)
#1 isc_thread_create thread.c:75 (libisc.1503.dylib:x86_64+0x46d1c)
#2 main main.c:902 (named:x86_64+0x10000ad16)
SUMMARY: ThreadSanitizer: data race rbtdb.c:4472 in find_deepest_zonecut
Edited by Ondřej Surý