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 576
    • Issues 576
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 112
    • Merge requests 112
  • 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
  • #1494
Closed
Open
Issue created Dec 12, 2019 by Mark Andrews@markaOwner

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 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
Edited Dec 12, 2019 by Mark Andrews
Assignee
Assign to
Time tracking