[asterisk-bugs] [Asterisk 0010886]: Crash in local_queue_frame trying to trylock a corrupted p->owner lock

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Oct 16 16:53:56 CDT 2007


The following issue has been ASSIGNED. 
====================================================================== 
http://bugs.digium.com/view.php?id=10886 
====================================================================== 
Reported By:                ChaseVenters
Assigned To:                russell
====================================================================== 
Project:                    Asterisk
Issue ID:                   10886
Category:                   Addons/General
Reproducibility:            random
Severity:                   crash
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.11  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             10-04-2007 13:02 CDT
Last Modified:              10-16-2007 16:53 CDT
====================================================================== 
Summary:                    Crash in local_queue_frame trying to trylock a
corrupted p->owner lock
Description: 
It appears that local_queue_frame() is trying to lock a mutex that has been
destroyed (or is otherwise corrupt). The reentrancy value is 7903722 and
the pthread struct contains a value __m_owner = 0xbad, which is probably a
magic cookie for a mutex that has been destroyed.

In frame 1, isoutbound is 1, making other p->owner, making the corrupted
lock &p->owner->lock.
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
duplicate of        0010571 SIP hairpin invokes Local within app_di...
====================================================================== 

---------------------------------------------------------------------- 
 svnbot - 10-16-07 16:53  
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 85994

U   branches/1.4/include/asterisk/lock.h

------------------------------------------------------------------------
r85994 | russell | 2007-10-16 16:53:52 -0500 (Tue, 16 Oct 2007) | 16 lines

Some locking errors exposed the fact that the lock debugging code itself
was
not thread safe.  How ironic!  Anyway, these changes ensure that the code
that
is accessing the lock debugging data is thread-safe.  

Many thanks to Ivan for finding and fixing the core issue here, and also 
thanks to those that tested the patch and provided test results.

(closes issue http://bugs.digium.com/view.php?id=10571)
(closes issue http://bugs.digium.com/view.php?id=10886)
(closes issue http://bugs.digium.com/view.php?id=10875)
(might close some others, as well ...)

Patches: (from issue http://bugs.digium.com/view.php?id=10571)
      ivan_ast_1_4_12_rel_patch_lock.h.diff uploaded by Ivan (license 229)
       - a few small changes by me

------------------------------------------------------------------------ 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
10-16-07 16:53  svnbot         Checkin                                      
10-16-07 16:53  svnbot         Note Added: 0072119                          
10-16-07 16:53  svnbot         Status                   new => assigned     
10-16-07 16:53  svnbot         Assigned To               => russell         
======================================================================




More information about the asterisk-bugs mailing list