[asterisk-bugs] [JIRA] (ASTERISK-21228) Deadlock in pbx_find_extension when attempting an autoservice stop due to holding the context lock

Dare Awktane (JIRA) noreply at issues.asterisk.org
Thu Apr 25 15:39:38 CDT 2013


    [ https://issues.asterisk.org/jira/browse/ASTERISK-21228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=205864#comment-205864 ] 

Dare Awktane edited comment on ASTERISK-21228 at 4/25/13 3:39 PM:
------------------------------------------------------------------

Yes - we have about 5500 switches in a realtime odbc version of the extensions.conf file. Sadly I have yet to see a way to tell asterisk that every context is in the database. We have to create a 1-3 contexts for every customer that we have to make sure that each customer only has access to their own extensions. An example of one of the entries is as follows:

| id     | cat_metric | var_metric | commented | filename        | category  | var_name | var_val    | stamp               |
| 248702 |          2 |        319 |         0 | extensions.conf | 310_319_0 | switch   | realtime/@ | 2013-04-19 02:26:26 |

Do you think it would help to look into another method of storing the extensions? I could try to make it so that a script took the entries in the database and output it to a hard extensions.conf file which could be reloaded each time we add a new context. As an alternative are you aware of a way to specify that all contexts or even a pattern match of contexts are stored in the realtime odbc version of extensions?
                
      was (Author: awktane):
    Yes - we have about 5500 switches in a realtime odbc version of the extensions.conf file. Sadly I have yet to see a way to tell asterisk that every context is in the database. We have to create a 1-3 contexts for every customer that we have to make sure that each customer only has access to their own extensions. An example of one of the entries is as follows:

+--------+------------+------------+-----------+-----------------+-----------+----------+------------+---------------------+
| id     | cat_metric | var_metric | commented | filename        | category  | var_name | var_val    | stamp               |
+--------+------------+------------+-----------+-----------------+-----------+----------+------------+---------------------+
| 248702 |          2 |        319 |         0 | extensions.conf | 310_319_0 | switch   | realtime/@ | 2013-04-19 02:26:26 |
+--------+------------+------------+-----------+-----------------+-----------+----------+------------+---------------------+

Do you think it would help to look into another method of storing the extensions? I could try to make it so that a script took the entries in the database and output it to a hard extensions.conf file which could be reloaded each time we add a new context. As an alternative are you aware of a way to specify that all contexts or even a pattern match of contexts are stored in the realtime odbc version of extensions?
                  
> Deadlock in pbx_find_extension when attempting an autoservice stop due to holding the context lock
> --------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-21228
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-21228
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/PBX
>    Affects Versions: 1.8.20.1, 1.8.21.0, 11.2.1, 11.3.0
>         Environment: Linux 3.2.0-38-generic #61-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
>            Reporter: Dare Awktane
>            Severity: Critical
>         Attachments: 1366481920-backtrace_threads.txt, 1366481920-core_show_locks.txt, 1366495718-backtrace_threads.txt, 1366495718-core_show_locks.txt, backtrace-threads.txt, core-show-locks.txt
>
>
> We have two asterisk machines running inbound/outbound/fax calls on both. We've developed a web application that people can use to create accounts (which flow through into asterisk as contexts). We have a cron script that calls -rx "dialplan reload" to update these contexts. Both the extconfig.conf and extensions.conf are loaded from a mysql clustered (ndb) database. Roughly 2-3 times a day each asterisk server stops taking calls and does not restart on its own. I'm not sure if all of the lockups are related to this dump. We braved a morning of bad call quality to have the debug flags set. Our dialplan shows that it has 494197 rows. A reasonably large dialplan.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list