[asterisk-bugs] [Asterisk 0012269]: [branch] Deadlock after Originate from AMI to Agent

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Jan 12 15:01:57 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12269 
====================================================================== 
Reported By:                IgorG
Assigned To:                jpeeler
====================================================================== 
Project:                    Asterisk
Issue ID:                   12269
Category:                   Channels/chan_agent
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     closed
Asterisk Version:           SVN 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 110444 
Disclaimer on File?:        N/A 
Request Review:              
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             2008-03-21 03:15 CDT
Last Modified:              2009-01-12 15:01 CST
====================================================================== 
Summary:                    [branch] Deadlock after Originate from AMI to Agent
Description: 
I have discovered deadlock while using chan_agent and originate cal via
AMI. To reproduce need one agent and one registered phone. 

1) Login via AMI and make originate call
2) Answer a call both sides, talk and hangup phone.
3) After hangup MoH for agent doesn't starts and CLI show ERRORs:

    -- Started music on hold, class 'default', on SIP/104-08362618
[Mar 21 13:35:21] ERROR[8145]:
/usr/src/voip/asterisk-trunk/asterisk-trunk.patched-cng/include/aster:461
__ast_pthread_mutex_unlock: chan_agent.c line 843 (agent_hangup): attempted
unlock mutex '&p->app_lock' without owning it!
[Mar 21 13:35:21] ERROR[8145]:
/usr/src/voip/asterisk-trunk/asterisk-trunk.patched-cng/include/aster:463
__ast_pthread_mutex_unlock: chan_agent.c line 979 (agent_new):
'&p->app_lock' was locked here.
[Mar 21 13:35:21] ERROR[8145]:
/usr/src/voip/asterisk-trunk/asterisk-trunk.patched-cng/include/aster:486
__ast_pthread_mutex_unlock: chan_agent.c line 843 (agent_hangup): Error
releasing mutex: Operation not permitted

3) 'agent show online' still show called side in list

server-voip*CLI> agent show online
1001         (Vasya Pupkin) logged in on SIP/104-08362618 is idle
(musiconhold is 'default')
1 agents online>

3) After second try to Originage, originate fail and using CLI command
'agent show online' fail and make CLI frozen
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0013860 Show queue and EventQueueStatus showing...
====================================================================== 

---------------------------------------------------------------------- 
 (0097530) svnbot (reporter) - 2009-01-12 15:01
 http://bugs.digium.com/view.php?id=12269#c97530 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 168509

_U  branches/1.6.0/
U   branches/1.6.0/channels/chan_agent.c

------------------------------------------------------------------------
r168509 | jpeeler | 2009-01-12 15:01:56 -0600 (Mon, 12 Jan 2009) | 22
lines

Merged revisions 168508 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
  r168508 | jpeeler | 2009-01-12 14:53:04 -0600 (Mon, 12 Jan 2009) | 15
lines
  
  Merged revisions 168507 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r168507 | jpeeler | 2009-01-12 14:26:22 -0600 (Mon, 12 Jan 2009) | 9
lines
    
    (closes issue http://bugs.digium.com/view.php?id=12269)
    Reported by: IgorG
    Tested by: denisgalvao
    
    This gits rid of the notion of an owning_app allowing the request and
hangup to be initiated by different threads. Originating from an active
agent channel requires this. The implementation primarily changes
__login_exec to wait on a condition variable rather than a lock.
    
    Review: http://reviewboard.digium.com/r/35/
  ........
................

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

http://svn.digium.com/view/asterisk?view=rev&revision=168509 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-01-12 15:01 svnbot         Checkin                                      
2009-01-12 15:01 svnbot         Note Added: 0097530                          
======================================================================




More information about the asterisk-bugs mailing list