[Home]

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-0600Date Closed:2009-01-21 17:27:52.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents: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