[asterisk-bugs] [JIRA] (ASTERISK-25784) lock-order-inversion (potential deadlock) on dialplan reload

Badalian Vyacheslav (JIRA) noreply at issues.asterisk.org
Thu Feb 11 23:42:33 CST 2016


Badalian Vyacheslav created ASTERISK-25784:
----------------------------------------------

             Summary: lock-order-inversion (potential deadlock) on dialplan reload
                 Key: ASTERISK-25784
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25784
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
    Affects Versions: 13.7.2
            Reporter: Badalian Vyacheslav


{code}
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock) (pid=22302)
  Cycle in lock order graph: M22 (0x7d940000c800) => M2263 (0x7f781b45ce60) => M22

  Mutex M2263 acquired here while holding mutex M22 in main thread:
    #0 pthread_mutex_lock <null> (libtsan.so.0+0x000000037816)
    #1 __ast_pthread_mutex_lock /root/asterisk/main/lock.c:313 (asterisk+0x000000503d01)
    #2 ast_rdlock_contexts /root/asterisk/main/pbx.c:8183 (asterisk+0x0000005a1e52)
    #3 ast_hint_extension /root/asterisk/main/pbx.c:2887 (asterisk+0x0000005817bf)
    #4 ast_get_hint /root/asterisk/main/pbx.c:3959 (asterisk+0x000000587bbf)
    #5 manager_state_cb /root/asterisk/main/manager.c:6765 (asterisk+0x000000536dcf)
    #6 execute_state_callback /root/asterisk/main/pbx.c:3165 (asterisk+0x000000582ec5)
    #7 ast_add_hint /root/asterisk/main/pbx.c:3872 (asterisk+0x000000587653)
    #8 add_priority /root/asterisk/main/pbx.c:6968 (asterisk+0x00000059aeea)
    #9 ast_add_extension2_lockopt /root/asterisk/main/pbx.c:7143 (asterisk+0x00000059bd1f)
    #10 ast_add_extension2 /root/asterisk/main/pbx.c:7004 (asterisk+0x00000059af66)
    #11 pbx_load_config /root/asterisk/pbx/pbx_config.c:1841 (pbx_config.so+0x000000013f6e)
    #12 pbx_load_module /root/asterisk/pbx/pbx_config.c:2045 (pbx_config.so+0x000000015648)
    #13 handle_cli_dialplan_reload /root/asterisk/pbx/pbx_config.c:1565 (pbx_config.so+0x000000012372)
    #14 ast_cli_command_full /root/asterisk/main/cli.c:2717 (asterisk+0x0000004058fa)
    #15 consolehandler /root/asterisk/main/asterisk.c:2230 (asterisk+0x0000002c8cca)
    #16 asterisk_daemon /root/asterisk/main/asterisk.c:4743 (asterisk+0x0000002d7411)
    #17 main /root/asterisk/main/asterisk.c:4230 (asterisk+0x0000002d5cfd)

  Mutex M22 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null> (libtsan.so.0+0x000000037816)
    #1 __ast_pthread_mutex_lock /root/asterisk/main/lock.c:313 (asterisk+0x000000503d01)
    #2 __ao2_lock /root/asterisk/main/astobj2.c:200 (asterisk+0x0000002d78be)
    #3 ast_add_hint /root/asterisk/main/pbx.c:3841 (asterisk+0x0000005870db)
    #4 add_priority /root/asterisk/main/pbx.c:6968 (asterisk+0x00000059aeea)
    #5 ast_add_extension2_lockopt /root/asterisk/main/pbx.c:7143 (asterisk+0x00000059bd1f)
    #6 ast_add_extension2 /root/asterisk/main/pbx.c:7004 (asterisk+0x00000059af66)
    #7 pbx_load_config /root/asterisk/pbx/pbx_config.c:1841 (pbx_config.so+0x000000013f6e)
    #8 pbx_load_module /root/asterisk/pbx/pbx_config.c:2045 (pbx_config.so+0x000000015648)
    #9 handle_cli_dialplan_reload /root/asterisk/pbx/pbx_config.c:1565 (pbx_config.so+0x000000012372)
    #10 ast_cli_command_full /root/asterisk/main/cli.c:2717 (asterisk+0x0000004058fa)
    #11 consolehandler /root/asterisk/main/asterisk.c:2230 (asterisk+0x0000002c8cca)
    #12 asterisk_daemon /root/asterisk/main/asterisk.c:4743 (asterisk+0x0000002d7411)
    #13 main /root/asterisk/main/asterisk.c:4230 (asterisk+0x0000002d5cfd)

  Mutex M22 acquired here while holding mutex M2263 in main thread:
    #0 pthread_mutex_lock <null> (libtsan.so.0+0x000000037816)
    #1 __ast_pthread_mutex_lock /root/asterisk/main/lock.c:313 (asterisk+0x000000503d01)
    #2 __ao2_lock /root/asterisk/main/astobj2.c:200 (asterisk+0x0000002d78be)
    #3 ast_merge_contexts_and_delete /root/asterisk/main/pbx.c:6211 (asterisk+0x0000005952fa)
    #4 pbx_load_module /root/asterisk/pbx/pbx_config.c:2052 (pbx_config.so+0x0000000156aa)
    #5 handle_cli_dialplan_reload /root/asterisk/pbx/pbx_config.c:1565 (pbx_config.so+0x000000012372)
    #6 ast_cli_command_full /root/asterisk/main/cli.c:2717 (asterisk+0x0000004058fa)
    #7 consolehandler /root/asterisk/main/asterisk.c:2230 (asterisk+0x0000002c8cca)
    #8 asterisk_daemon /root/asterisk/main/asterisk.c:4743 (asterisk+0x0000002d7411)
    #9 main /root/asterisk/main/asterisk.c:4230 (asterisk+0x0000002d5cfd)

  Mutex M2263 previously acquired by the same thread here:
    #0 pthread_mutex_lock <null> (libtsan.so.0+0x000000037816)
    #1 __ast_pthread_mutex_lock /root/asterisk/main/lock.c:313 (asterisk+0x000000503d01)
    #2 ast_wrlock_contexts /root/asterisk/main/pbx.c:8178 (asterisk+0x0000005a1e07)
    #3 ast_merge_contexts_and_delete /root/asterisk/main/pbx.c:6194 (asterisk+0x000000595198)
    #4 pbx_load_module /root/asterisk/pbx/pbx_config.c:2052 (pbx_config.so+0x0000000156aa)
    #5 handle_cli_dialplan_reload /root/asterisk/pbx/pbx_config.c:1565 (pbx_config.so+0x000000012372)
    #6 ast_cli_command_full /root/asterisk/main/cli.c:2717 (asterisk+0x0000004058fa)
    #7 consolehandler /root/asterisk/main/asterisk.c:2230 (asterisk+0x0000002c8cca)
    #8 asterisk_daemon /root/asterisk/main/asterisk.c:4743 (asterisk+0x0000002d7411)
    #9 main /root/asterisk/main/asterisk.c:4230 (asterisk+0x0000002d5cfd)

SUMMARY: ThreadSanitizer: lock-order-inversion (potential deadlock) ??:0 __interceptor_pthread_mutex_lock
==================

{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list