Summary: | ASTERISK-13016: call processing deadlock with dialplan reload and ast_hint_state_changed | ||
Reporter: | Kevin McAllister (mcallist) | Labels: | |
Date Opened: | 2008-11-04 15:57:26.000-0600 | Date Closed: | 2009-01-21 17:27:52.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Core/PBX |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) bt.txt ( 1) csl.txt ( 2) deadlock-debug.txt | |
Description: | I had a dialplan reload hit while a state change was taking place. Looking at core, it appears that the conlock was taken by ast_merge_context_and_delete() and the hints lock was taken by ast_hint_state_changed() The hint state change eventually came to ast_hint_extension() which attempts to grab conlock. In the mean time calls were stacking up. I forced a Segfault to get a core file and dug in to get this information. | ||
Comments: | By: Kevin McAllister (mcallist) 2008-11-04 15:59:26.000-0600 the debug file has: thread apply all bt and then a full bt for thread 103 and 185 which are the ones I believe to be deadlocked. and a print on hints and conlock to show the problem. By: Alan Graham (zerohalo) 2009-01-02 09:43:05.000-0600 We can also reproduce this on 1.4.20rc2, BT and core show locks attached. By: Digium Subversion (svnbot) 2009-01-21 17:20:34.000-0600 Repository: asterisk Revision: 169867 U branches/1.4/main/pbx.c ------------------------------------------------------------------------ r169867 | file | 2009-01-21 17:20:34 -0600 (Wed, 21 Jan 2009) | 4 lines Read lock the contexts to maintain the locking order when we are notified that the state of a device has changed. (closes issue ASTERISK-13016) Reported by: mcallist ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=169867 By: Digium Subversion (svnbot) 2009-01-21 17:25:07.000-0600 Repository: asterisk Revision: 169869 _U trunk/ U trunk/main/pbx.c ------------------------------------------------------------------------ r169869 | file | 2009-01-21 17:25:07 -0600 (Wed, 21 Jan 2009) | 11 lines Merged revisions 169867 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r169867 | file | 2009-01-21 19:20:47 -0400 (Wed, 21 Jan 2009) | 4 lines Read lock the contexts to maintain the locking order when we are notified that the state of a device has changed. (closes issue ASTERISK-13016) Reported by: mcallist ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=169869 By: Digium Subversion (svnbot) 2009-01-21 17:26:59.000-0600 Repository: asterisk Revision: 169870 _U branches/1.6.0/ U branches/1.6.0/main/pbx.c ------------------------------------------------------------------------ r169870 | file | 2009-01-21 17:26:59 -0600 (Wed, 21 Jan 2009) | 18 lines Merged revisions 169869 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r169869 | file | 2009-01-21 19:25:27 -0400 (Wed, 21 Jan 2009) | 11 lines Merged revisions 169867 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r169867 | file | 2009-01-21 19:20:47 -0400 (Wed, 21 Jan 2009) | 4 lines Read lock the contexts to maintain the locking order when we are notified that the state of a device has changed. (closes issue ASTERISK-13016) Reported by: mcallist ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=169870 By: Digium Subversion (svnbot) 2009-01-21 17:27:51.000-0600 Repository: asterisk Revision: 169871 _U branches/1.6.1/ U branches/1.6.1/main/pbx.c ------------------------------------------------------------------------ r169871 | file | 2009-01-21 17:27:51 -0600 (Wed, 21 Jan 2009) | 18 lines Merged revisions 169869 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r169869 | file | 2009-01-21 19:25:27 -0400 (Wed, 21 Jan 2009) | 11 lines Merged revisions 169867 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r169867 | file | 2009-01-21 19:20:47 -0400 (Wed, 21 Jan 2009) | 4 lines Read lock the contexts to maintain the locking order when we are notified that the state of a device has changed. (closes issue ASTERISK-13016) Reported by: mcallist ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=169871 |