1. 19 Sep, 2020 3 commits
  2. 18 Sep, 2020 8 commits
  3. 17 Sep, 2020 19 commits
    • Jinmei Tatuya's avatar
      preserve old qctx. added more test cases · 52ec8ed5
      Jinmei Tatuya authored
      52ec8ed5
    • Ondřej Surý's avatar
      Merge branch '2163-threadsanitizer-data-race-lib-isc-mem-c-1119-19-in-isc___mem_put' into 'main' · 46d2a36c
      Ondřej Surý authored
      Exclude isc_mem_isovermem from ThreadSanitizer
      
      Closes #2163
      
      See merge request isc-projects/bind9!4140
      46d2a36c
    • Ondřej Surý's avatar
      Exclude isc_mem_isovermem from ThreadSanitizer · 0110d1ab
      Ondřej Surý authored
      The .is_overmem member of isc_mem_t structure is intentionally accessed
      unlocked as 100% accuracy isn't necessary here.
      
      Without the attribute, following TSAN warning would show up:
      
          WARNING: ThreadSanitizer: data race
            Write of size 1 at 0x000000000001 by thread T1 (mutexes: write M1, write M2):
      	#0 isc___mem_put lib/isc/mem.c:1119:19
      	#1 isc__mem_put lib/isc/mem.c:2439:2
      	#2 dns_rdataslab_fromrdataset lib/dns/rdataslab.c:327:2
      	#3 addrdataset lib/dns/rbtdb.c:6761:11
      	#4 dns_db_addrdataset lib/dns/db.c:719:10
      	#5 cache_name lib/dns/resolver.c:6538:13
      	#6 cache_message lib/dns/resolver.c:6628:14
      	#7 resquery_response lib/dns/resolver.c:7883:13
      	#8 dispatch lib/isc/task.c:1152:7
      	#9 run lib/isc/task.c:1344:2
      
            Previous read of size 1 at 0x000000000001 by thread T2 (mutexes: write M3):
      	#0 isc_mem_isovermem lib/isc/mem.c:1553:15
      	#1 addrdataset lib/dns/rbtdb.c:6866:25
      	#2 dns_db_addrdataset lib/dns/db.c:719:10
      	#3 addoptout lib/dns/ncache.c:281:10
      	#4 dns_ncache_add lib/dns/ncache.c:101:10
      	#5 ncache_adderesult lib/dns/resolver.c:6668:12
      	#6 ncache_message lib/dns/resolver.c:6845:11
      	#7 rctx_ncache lib/dns/resolver.c:9174:11
      	#8 resquery_response lib/dns/resolver.c:7894:2
      	#9 dispatch lib/isc/task.c:1152:7
      	#10 run lib/isc/task.c:1344:2
      
            Location is heap block of size 328 at 0x000000000020 allocated by thread T3:
      	#0 malloc <null>
      	#1 default_memalloc lib/isc/mem.c:713:8
      	#2 mem_create lib/isc/mem.c:763:8
      	#3 isc_mem_create lib/isc/mem.c:2425:2
      	#4 configure_view bin/named/server.c:4494:4
      	#5 load_configuration bin/named/server.c:9062:3
      	#6 run_server bin/named/server.c:9771:2
      	#7 dispatch lib/isc/task.c:1152:7
      	#8 run lib/isc/task.c:1344:2
      
          [...]
      
          SUMMARY: ThreadSanitizer: data race lib/isc/mem.c:1119:19 in isc___mem_put
      0110d1ab
    • Michał Kępień's avatar
      Merge branch 'michal/update-release-checklist' into 'main' · ed9a133b
      Michał Kępień authored
      Update release checklist
      
      See merge request isc-projects/bind9!4142
      ed9a133b
    • Michał Kępień's avatar
      Update release checklist · 66a1fa77
      Michał Kępień authored
      Add an item to the release checklist to make sure eligible customers get
      notified about the location of the latest version of BIND Subscription
      Edition upon its release.
      66a1fa77
    • Mark Andrews's avatar
      Merge branch '2131-tsan-data-race-in-accessing-controls-symtab' into 'main' · d83ddea5
      Mark Andrews authored
      Resolve "TSAN data race in accessing controls->symtab"
      
      Closes #2131
      
      See merge request isc-projects/bind9!4098
      d83ddea5
    • Mark Andrews's avatar
      Lock access to control->symtab to prevent data race · 0450acc1
      Mark Andrews authored
          WARNING: ThreadSanitizer: data race
          Read of size 8 at 0x000000000001 by thread T1:
          #0 isccc_symtab_foreach lib/isccc/symtab.c:277:14
          #1 isccc_cc_cleansymtab lib/isccc/cc.c:954:2
          #2 control_recvmessage bin/named/controlconf.c:477:2
          #3 recv_data lib/isccc/ccmsg.c:110:2
          #4 read_cb lib/isc/netmgr/tcp.c:769:4
          #5 <null> <null>
      
          Previous write of size 8 at 0x000000000001 by thread T2:
          #0 isccc_symtab_define lib/isccc/symtab.c:242:2
          #1 isccc_cc_checkdup lib/isccc/cc.c:1026:11
          #2 control_recvmessage bin/named/controlconf.c:478:11
          #3 recv_data lib/isccc/ccmsg.c:110:2
          #4 read_cb lib/isc/netmgr/tcp.c:769:4
          #5 <null> <null>
      
          Location is heap block of size 190352 at 0x000000000011 allocated by main thread:
          #0 malloc <null>
          #1 isccc_symtab_create lib/isccc/symtab.c:76:18
          #2 isccc_cc_createsymtab lib/isccc/cc.c:948:10
          #3 named_controls_create bin/named/controlconf.c:1483:11
          #4 named_server_create bin/named/server.c:10057:2
          #5 setup bin/named/main.c:1256:2
          #6 main bin/named/main.c:1523:2
      
          Thread T1 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_nm_start lib/isc/netmgr/netmgr.c:215:3
          #3 create_managers bin/named/main.c:909:15
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          Thread T2 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_nm_start lib/isc/netmgr/netmgr.c:215:3
          #3 create_managers bin/named/main.c:909:15
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          SUMMARY: ThreadSanitizer: data race lib/isccc/symtab.c:277:14 in isccc_symtab_foreach
      0450acc1
    • Mark Andrews's avatar
      Merge branch '2123-lock-order-inversions-in-main' into 'main' · 56ff7bec
      Mark Andrews authored
      Resolve "Lock order inversions in main"
      
      Closes #2123
      
      See merge request isc-projects/bind9!4090
      56ff7bec
    • Mark Andrews's avatar
      Pause dbiterator ealier to prevent lock-order-inversion · 9e584a45
      Mark Andrews authored
          WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
          Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1
      
          Mutex M2 acquired here while holding mutex M1 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 findnodeintree lib/dns/rbtdb.c:2877:2
          #3 findnode lib/dns/rbtdb.c:2941:10
          #4 dns_db_findnode lib/dns/db.c:439:11
          #5 resume_addnsec3chain lib/dns/zone.c:3776:11
          #6 rss_post lib/dns/zone.c:20659:3
          #7 setnsec3param lib/dns/zone.c:20471:3
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Mutex M1 previously acquired by the same thread here:
          #0 pthread_mutex_lock <null>
          #1 rss_post lib/dns/zone.c:20658:3
          #2 setnsec3param lib/dns/zone.c:20471:3
          #3 dispatch lib/isc/task.c:1152:7
          #4 run lib/isc/task.c:1344:2
      
          Mutex M1 acquired here while holding mutex M2 in thread T2:
          #0 pthread_mutex_lock <null>
          #1 zone_nsec3chain lib/dns/zone.c:8666:5
          #2 zone_maintenance lib/dns/zone.c:11063:4
          #3 zone_timer lib/dns/zone.c:14098:2
          #4 dispatch lib/isc/task.c:1152:7
          #5 run lib/isc/task.c:1344:2
      
          Mutex M2 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_next lib/dns/rbtdb.c:9647:3
          #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
          #5 zone_nsec3chain lib/dns/zone.c:8656:13
          #6 zone_maintenance lib/dns/zone.c:11063:4
          #7 zone_timer lib/dns/zone.c:14098:2
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      9e584a45
    • Mark Andrews's avatar
      2e63de94
    • Mark Andrews's avatar
      Pause dbiterator to release rwlock to prevent lock-order-inversion. · fbed9622
      Mark Andrews authored
          WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
          Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000001) => M1
      
          Mutex M2 acquired here while holding mutex M1 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 getsigningtime lib/dns/rbtdb.c:8198:2
          #3 dns_db_getsigningtime lib/dns/db.c:979:11
          #4 set_resigntime lib/dns/zone.c:3887:11
          #5 dns_zone_markdirty lib/dns/zone.c:11119:4
          #6 update_action lib/ns/update.c:3376:3
          #7 dispatch lib/isc/task.c:1152:7
          #8 run lib/isc/task.c:1344:2
      
          Mutex M1 previously acquired by the same thread here:
          #0 pthread_mutex_lock <null>
          #1 dns_zone_markdirty lib/dns/zone.c:11089:2
          #2 update_action lib/ns/update.c:3376:3
          #3 dispatch lib/isc/task.c:1152:7
          #4 run lib/isc/task.c:1344:2
      
          Mutex M1 acquired here while holding mutex M2 in thread T1:
          #0 pthread_mutex_lock <null>
          #1 zone_nsec3chain lib/dns/zone.c:8502:3
          #2 zone_maintenance lib/dns/zone.c:11056:4
          #3 zone_timer lib/dns/zone.c:14091:2
          #4 dispatch lib/isc/task.c:1152:7
          #5 run lib/isc/task.c:1344:2
      
          Mutex M2 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_current lib/dns/rbtdb.c:9695:3
          #4 dns_dbiterator_current lib/dns/dbiterator.c:101:10
          #5 zone_nsec3chain lib/dns/zone.c:8539:3
          #6 zone_maintenance lib/dns/zone.c:11056:4
          #7 zone_timer lib/dns/zone.c:14091:2
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Thread T1 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock
      fbed9622
    • Mark Andrews's avatar
      Pause dbiterator to release rwlock to prevent lock-order-inversion. · c9dbad97
      Mark Andrews authored
          WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
          Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000000) => M1
      
          Mutex M2 acquired here while holding mutex M1 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 zone_sign lib/dns/zone.c:9247:3
          #3 zone_maintenance lib/dns/zone.c:11047:4
          #4 zone_timer lib/dns/zone.c:14090:2
          #5 dispatch lib/isc/task.c:1152:7
          #6 run lib/isc/task.c:1344:2
      
          Mutex M1 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_next lib/dns/rbtdb.c:9647:3
          #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
          #5 zone_sign lib/dns/zone.c:9488:13
          #6 zone_maintenance lib/dns/zone.c:11047:4
          #7 zone_timer lib/dns/zone.c:14090:2
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Mutex M1 acquired here while holding mutex M2 in thread T2:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 findnodeintree lib/dns/rbtdb.c:2877:2
          #3 findnode lib/dns/rbtdb.c:2941:10
          #4 dns_db_findnode lib/dns/db.c:439:11
          #5 dns_db_getsoaserial lib/dns/db.c:780:11
          #6 dump_done lib/dns/zone.c:11428:15
          #7 dump_quantum lib/dns/masterdump.c:1487:2
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Mutex M2 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 dump_done lib/dns/zone.c:11426:4
          #3 dump_quantum lib/dns/masterdump.c:1487:2
          #4 dispatch lib/isc/task.c:1152:7
          #5 run lib/isc/task.c:1344:2
      
          Thread T1 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          Thread T2 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock
      c9dbad97
    • Mark Andrews's avatar
      Pause dbiterator to release rwlock to prevent lock-order-inversion. · 98025e15
      Mark Andrews authored
          WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
          Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1
      
          Mutex M2 acquired here while holding mutex M1 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 getsigningtime lib/dns/rbtdb.c:8198:2
          #3 dns_db_getsigningtime lib/dns/db.c:979:11
          #4 set_resigntime lib/dns/zone.c:3887:11
          #5 dns_zone_markdirty lib/dns/zone.c:11115:4
          #6 update_action lib/ns/update.c:3376:3
          #7 dispatch lib/isc/task.c:1152:7
          #8 run lib/isc/task.c:1344:2
      
          Mutex M1 previously acquired by the same thread here:
          #0 pthread_mutex_lock <null>
          #1 dns_zone_markdirty lib/dns/zone.c:11085:2
          #2 update_action lib/ns/update.c:3376:3
          #3 dispatch lib/isc/task.c:1152:7
          #4 run lib/isc/task.c:1344:2
      
          Mutex M1 acquired here while holding mutex M2 in thread T2:
          #0 pthread_mutex_lock <null>
          #1 zone_nsec3chain lib/dns/zone.c:8274:3
          #2 zone_maintenance lib/dns/zone.c:11052:4
          #3 zone_timer lib/dns/zone.c:14087:2
          #4 dispatch lib/isc/task.c:1152:7
          #5 run lib/isc/task.c:1344:2
      
          Mutex M2 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_next lib/dns/rbtdb.c:9647:3
          #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
          #5 zone_nsec3chain lib/dns/zone.c:8412:13
          #6 zone_maintenance lib/dns/zone.c:11052:4
          #7 zone_timer lib/dns/zone.c:14087:2
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Thread T1 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          Thread T2 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock
      98025e15
    • Mark Andrews's avatar
      Pause dbiterator to release rwlock to prevent lock-order-inversion. · e185e371
      Mark Andrews authored
          WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
          Cycle in lock order graph: M1 (0x000000000001) => M2 (0x000000000002) => M3 (0x000000000000) => M1
      
          Mutex M2 acquired here while holding mutex M1 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 findnodeintree lib/dns/rbtdb.c:2877:2
          #3 findnode lib/dns/rbtdb.c:2941:10
          #4 dns_db_findnode lib/dns/db.c:439:11
          #5 copy_non_dnssec_records lib/dns/zone.c:16031:11
          #6 receive_secure_db lib/dns/zone.c:16163:12
          #7 dispatch lib/isc/task.c:1152:7
          #8 run lib/isc/task.c:1344:2
      
          Mutex M1 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_first lib/dns/rbtdb.c:9407:3
          #4 dns_dbiterator_first lib/dns/dbiterator.c:43:10
          #5 receive_secure_db lib/dns/zone.c:16160:16
          #6 dispatch lib/isc/task.c:1152:7
          #7 run lib/isc/task.c:1344:2
      
          Mutex M3 acquired here while holding mutex M2 in thread T2:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 zone_sign lib/dns/zone.c:9244:3
          #3 zone_maintenance lib/dns/zone.c:11044:4
          #4 zone_timer lib/dns/zone.c:14087:2
          #5 dispatch lib/isc/task.c:1152:7
          #6 run lib/isc/task.c:1344:2
      
          Mutex M2 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_next lib/dns/rbtdb.c:9647:3
          #4 dns_dbiterator_next lib/dns/dbiterator.c:87:10
          #5 zone_sign lib/dns/zone.c:9485:13
          #6 zone_maintenance lib/dns/zone.c:11044:4
          #7 zone_timer lib/dns/zone.c:14087:2
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Mutex M1 acquired here while holding mutex M3 in thread T3:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 findnodeintree lib/dns/rbtdb.c:2877:2
          #3 findnode lib/dns/rbtdb.c:2941:10
          #4 dns_db_findnode lib/dns/db.c:439:11
          #5 zone_get_from_db lib/dns/zone.c:5602:11
          #6 get_raw_serial lib/dns/zone.c:2520:12
          #7 zone_gotwritehandle lib/dns/zone.c:2559:4
          #8 dispatch lib/isc/task.c:1152:7
          #9 run lib/isc/task.c:1344:2
      
          Mutex M3 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 zone_gotwritehandle lib/dns/zone.c:2552:2
          #3 dispatch lib/isc/task.c:1152:7
          #4 run lib/isc/task.c:1344:2
      
          Thread T1 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          Thread T2 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          Thread T3 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock
      e185e371
    • Mark Andrews's avatar
      Address lock-order-inversion between the keytable and the db locks. · 9e5f83c4
      Mark Andrews authored
          WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
          Cycle in lock order graph: M1 (0x000000000000) => M2 (0x000000000000) => M1
      
          Mutex M2 acquired here while holding mutex M1 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 dns_keytable_find lib/dns/keytable.c:522:2
          #3 sync_keyzone lib/dns/zone.c:4560:12
          #4 dns_zone_synckeyzone lib/dns/zone.c:4635:11
          #5 mkey_refresh bin/named/server.c:15423:2
          #6 named_server_mkeys bin/named/server.c:15727:4
          #7 named_control_docommand bin/named/control.c:236:12
          #8 control_command bin/named/controlconf.c:365:17
          #9 dispatch lib/isc/task.c:1152:7
          #10 run lib/isc/task.c:1344:2
      
          Mutex M1 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 resume_iteration lib/dns/rbtdb.c:9357:2
          #3 dbiterator_first lib/dns/rbtdb.c:9407:3
          #4 dns_dbiterator_first lib/dns/dbiterator.c:43:10
          #5 dns_rriterator_first lib/dns/rriterator.c:71:15
          #6 sync_keyzone lib/dns/zone.c:4543:16
          #7 dns_zone_synckeyzone lib/dns/zone.c:4635:11
          #8 mkey_refresh bin/named/server.c:15423:2
          #9 named_server_mkeys bin/named/server.c:15727:4
          #10 named_control_docommand bin/named/control.c:236:12
          #11 control_command bin/named/controlconf.c:365:17
          #12 dispatch lib/isc/task.c:1152:7
          #13 run lib/isc/task.c:1344:2
      
          Mutex M1 acquired here while holding mutex M2 in thread T1:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 zone_find lib/dns/rbtdb.c:4029:2
          #3 dns_db_find lib/dns/db.c:500:11
          #4 addifmissing lib/dns/zone.c:4481:11
          #5 dns_keytable_forall lib/dns/keytable.c:786:4
          #6 sync_keyzone lib/dns/zone.c:4586:2
          #7 dns_zone_synckeyzone lib/dns/zone.c:4635:11
          #8 mkey_refresh bin/named/server.c:15423:2
          #9 named_server_mkeys bin/named/server.c:15727:4
          #10 named_control_docommand bin/named/control.c:236:12
          #11 control_command bin/named/controlconf.c:365:17
          #12 dispatch lib/isc/task.c:1152:7
          #13 run lib/isc/task.c:1344:2
      
          Mutex M2 previously acquired by the same thread here:
          #0 pthread_rwlock_rdlock <null>
          #1 isc_rwlock_lock lib/isc/rwlock.c:48:3
          #2 dns_keytable_forall lib/dns/keytable.c:770:2
          #3 sync_keyzone lib/dns/zone.c:4586:2
          #4 dns_zone_synckeyzone lib/dns/zone.c:4635:11
          #5 mkey_refresh bin/named/server.c:15423:2
          #6 named_server_mkeys bin/named/server.c:15727:4
          #7 named_control_docommand bin/named/control.c:236:12
          #8 control_command bin/named/controlconf.c:365:17
          #9 dispatch lib/isc/task.c:1152:7
          #10 run lib/isc/task.c:1344:2
      
          Thread T1 (running) created by main thread at:
          #0 pthread_create <null>
          #1 isc_thread_create lib/isc/pthreads/thread.c:73:8
          #2 isc_taskmgr_create lib/isc/task.c:1434:3
          #3 create_managers bin/named/main.c:915:11
          #4 setup bin/named/main.c:1223:11
          #5 main bin/named/main.c:1523:2
      
          SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) in pthread_rwlock_rdlock
      9e5f83c4
    • Mark Andrews's avatar
      Merge branch '2155-reference-leak-on-error-in-controlconf-c-control_respond' into 'main' · 41b96b02
      Mark Andrews authored
      Resolve "reference leak on error in controlconf.c:control_respond"
      
      Closes #2155
      
      See merge request isc-projects/bind9!4135
      41b96b02
    • Mark Andrews's avatar
      d988383b
    • Mark Andrews's avatar
      Merge branch '2151-use-after-free-in-named' into 'main' · 459ded8b
      Mark Andrews authored
      Resolve "Use after free in named"
      
      Closes #2151
      
      See merge request isc-projects/bind9!4134
      459ded8b
    • Mark Andrews's avatar
      Cleanup connection before detaching · c5c2a482
      Mark Andrews authored
      c5c2a482
  4. 16 Sep, 2020 10 commits