Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • BIND BIND
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 570
    • Issues 570
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 100
    • Merge requests 100
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source ProjectsISC Open Source Projects
  • BINDBIND
  • Issues
  • #838
Closed
Open
Issue created Jan 25, 2019 by Witold Krecicki@wpkContributor

TSAN-found data races in rbtdb

There are a few of them:

  1. rbtnode->data seems to be not properly locked in multiple places, but the write seems to be always here:
  Write of size 8 at 0x7f44a5c850e0 by thread T7 (mutexes: write M172679898870131576, write M105125852919941584):
    #0 add32 /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:6299:18 (named+0x7cafa4)
    #1 addrdataset /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:6628:12 (named+0x7bf897)
    #2 dns_db_addrdataset /home/wpk/dev/isc/bind9/lib/dns/db.c:746:10 (named+0x68dd94)
    #3 cache_name /home/wpk/dev/isc/bind9/lib/dns/resolver.c:6293:13 (named+0x92a8b8)
    #4 cache_message /home/wpk/dev/isc/bind9/lib/dns/resolver.c:6390:14 (named+0x91cee1)
    #5 resquery_response /home/wpk/dev/isc/bind9/lib/dns/resolver.c:7629:12 (named+0x916b3a)
    #6 dispatch /home/wpk/dev/isc/bind9/lib/isc/task.c:1130:7 (named+0xb58b36)
    #7 run /home/wpk/dev/isc/bind9/lib/isc/task.c:1297:2 (named+0xb51bcb)

  Previous read of size 8 at 0x7f44a5c850e0 by thread T8 (mutexes: write M1097325472244832072, read M100907974478266576):
    #0 dns_rbt_findnode /home/wpk/dev/isc/bind9/lib/dns/rbt.c:1659:9 (named+0x7a19de)
    #1 cache_find /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4739:11 (named+0x7b9608)
    #2 dns_db_find /home/wpk/dev/isc/bind9/lib/dns/db.c:513:11 (named+0x68bbd9)
    #3 dns_view_find /home/wpk/dev/isc/bind9/lib/dns/view.c:1081:11 (named+0x9bedd2)
    #4 dbfind_name /home/wpk/dev/isc/bind9/lib/dns/adb.c:3693:11 (named+0x647bc7)
    #5 dns_adb_createfind /home/wpk/dev/isc/bind9/lib/dns/adb.c:3049:12 (named+0x643c8f)
    #6 findname /home/wpk/dev/isc/bind9/lib/dns/resolver.c:3363:11 (named+0x90c735)
    #7 fctx_getaddresses /home/wpk/dev/isc/bind9/lib/dns/resolver.c:3652:3 (named+0x9059e6)
    #8 fctx_try /home/wpk/dev/isc/bind9/lib/dns/resolver.c:4013:12 (named+0x8ffe1a)
    #9 resume_qmin /home/wpk/dev/isc/bind9/lib/dns/resolver.c:4214:2 (named+0x907acf)
    #10 dispatch /home/wpk/dev/isc/bind9/lib/isc/task.c:1130:7 (named+0xb58b36)
    #11 run /home/wpk/dev/isc/bind9/lib/isc/task.c:1297:2 (named+0xb51bcb)
  1. rdataset->attributes
  Write of size 4 at 0x7f4cc1089198 by thread T9 (mutexes: read M87960160366493904, read M90207679154276256):
    #0 bind_rdataset /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:2987:33 (named+0x7cc91a)
    #1 find_deepest_zonecut /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4562:4 (named+0x7e27d3)
    #2 cache_find /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4757:13 (named+0x7b96e0)
    #3 dns_db_findext /home/wpk/dev/isc/bind9/lib/dns/db.c:553:11 (named+0x68c27d)
    #4 query_lookup /home/wpk/dev/isc/bind9/lib/ns/query.c:5377:11 (named+0x5ca206)
    #5 ns__query_start /home/wpk/dev/isc/bind9/lib/ns/query.c:5303:10 (named+0x5c7016)
    #6 query_setup /home/wpk/dev/isc/bind9/lib/ns/query.c:5024:11 (named+0x5d1246)
    #7 ns_query_start /home/wpk/dev/isc/bind9/lib/ns/query.c:11020:8 (named+0x5d02ad)
    #8 ns__client_request /home/wpk/dev/isc/bind9/lib/ns/client.c:2823:3 (named+0x5a7c20)
    #9 dispatch /home/wpk/dev/isc/bind9/lib/isc/task.c:1130:7 (named+0xb58b36)
    #10 run /home/wpk/dev/isc/bind9/lib/isc/task.c:1297:2 (named+0xb51bcb)

  Previous write of size 4 at 0x7f4cc1089198 by thread T10 (mutexes: read M87960160366493904, read M90207679154276256):
    #0 bind_rdataset /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:2987:33 (named+0x7cc91a)
    #1 find_deepest_zonecut /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4562:4 (named+0x7e27d3)
    #2 cache_find /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4757:13 (named+0x7b96e0)
    #3 dns_db_findext /home/wpk/dev/isc/bind9/lib/dns/db.c:553:11 (named+0x68c27d)
    #4 query_lookup /home/wpk/dev/isc/bind9/lib/ns/query.c:5377:11 (named+0x5ca206)
    #5 ns__query_start /home/wpk/dev/isc/bind9/lib/ns/query.c:5303:10 (named+0x5c7016)
    #6 query_setup /home/wpk/dev/isc/bind9/lib/ns/query.c:5024:11 (named+0x5d1246)
    #7 ns_query_start /home/wpk/dev/isc/bind9/lib/ns/query.c:11020:8 (named+0x5d02ad)
    #8 ns__client_request /home/wpk/dev/isc/bind9/lib/ns/client.c:2823:3 (named+0x5a7c20)
    #9 dispatch /home/wpk/dev/isc/bind9/lib/isc/task.c:1130:7 (named+0xb58b36)
    #10 run /home/wpk/dev/isc/bind9/lib/isc/task.c:1297:2 (named+0xb51bcb)
  1. header->attributes
WARNING: ThreadSanitizer: data race (pid=9918)
  Write of size 2 at 0x7f705a9c901c by thread T11 (mutexes: read M86271463406698704, read M87955879340590848):
    #0 check_stale_header /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4345:23 (named+0x7e2f27)
    #1 cache_find /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:4796:7 (named+0x7b99ab)
    #2 dns_db_findext /home/wpk/dev/isc/bind9/lib/dns/db.c:553:11 (named+0x68c27d)
    #3 query_lookup /home/wpk/dev/isc/bind9/lib/ns/query.c:5377:11 (named+0x5ca206)
    #4 query_zone_delegation /home/wpk/dev/isc/bind9/lib/ns/query.c:7745:11 (named+0x600013)
    #5 query_delegation /home/wpk/dev/isc/bind9/lib/ns/query.c:7771:11 (named+0x5d9244)
    #6 query_gotanswer /home/wpk/dev/isc/bind9/lib/ns/query.c:6624:11 (named+0x5d339d)
    #7 query_lookup /home/wpk/dev/isc/bind9/lib/ns/query.c:5429:10 (named+0x5ca8e5)
    #8 ns__query_start /home/wpk/dev/isc/bind9/lib/ns/query.c:5303:10 (named+0x5c7016)
    #9 query_setup /home/wpk/dev/isc/bind9/lib/ns/query.c:5024:11 (named+0x5d1246)
    #10 ns_query_start /home/wpk/dev/isc/bind9/lib/ns/query.c:11020:8 (named+0x5d02ad)
    #11 ns__client_request /home/wpk/dev/isc/bind9/lib/ns/client.c:2823:3 (named+0x5a7c20)
    #12 dispatch /home/wpk/dev/isc/bind9/lib/isc/task.c:1130:7 (named+0xb58b36)
    #13 run /home/wpk/dev/isc/bind9/lib/isc/task.c:1297:2 (named+0xb51bcb)

  Previous read of size 2 at 0x7f705a9c901c by thread T2:
    #0 rdataset_getownercase /home/wpk/dev/isc/bind9/lib/dns/rbtdb.c:9478:7 (named+0x7d0287)
    #1 dns_rdataset_getownercase /home/wpk/dev/isc/bind9/lib/dns/rdataset.c:723:3 (named+0x8df849)
    #2 towiresorted /home/wpk/dev/isc/bind9/lib/dns/rdataset.c:460:2 (named+0x8dd12f)
    #3 dns_rdataset_towiresorted /home/wpk/dev/isc/bind9/lib/dns/rdataset.c:568:10 (named+0x8dc55e)
    #4 dns_message_rendersection /home/wpk/dev/isc/bind9/lib/dns/message.c:2080:15 (named+0x726f44)
    #5 client_send /home/wpk/dev/isc/bind9/lib/ns/client.c:1166:11 (named+0x59e3bb)
    #6 ns_client_send /home/wpk/dev/isc/bind9/lib/ns/client.c:1390:2 (named+0x59ce12)
    #7 query_send /home/wpk/dev/isc/bind9/lib/ns/query.c:563:2 (named+0x5cec23)
    #8 ns_query_done /home/wpk/dev/isc/bind9/lib/ns/query.c:10617:2 (named+0x5c840d)
    #9 query_respond /home/wpk/dev/isc/bind9/lib/ns/query.c:7174:10 (named+0x5f3ef3)
    #10 query_prepresponse /home/wpk/dev/isc/bind9/lib/ns/query.c:9642:10 (named+0x5d8217)
    #11 query_gotanswer /home/wpk/dev/isc/bind9/lib/ns/query.c:6612:11 (named+0x5d3279)
    #12 query_lookup /home/wpk/dev/isc/bind9/lib/ns/query.c:5429:10 (named+0x5ca8e5)
    #13 query_gotanswer /home/wpk/dev/isc/bind9/lib/ns/query.c:6672:12 (named+0x5d379c)
    #14 query_resume /home/wpk/dev/isc/bind9/lib/ns/query.c:5937:10 (named+0x60ac62)
    #15 fetch_callback /home/wpk/dev/isc/bind9/lib/ns/query.c:5511:12 (named+0x5cc373)
    #16 dispatch /home/wpk/dev/isc/bind9/lib/isc/task.c:1130:7 (named+0xb58b36)
    #17 run /home/wpk/dev/isc/bind9/lib/isc/task.c:1297:2 (named+0xb51bcb)
Edited Jan 25, 2019 by Witold Krecicki
Assignee
Assign to
Time tracking