[Home]

Summary:ASTERISK-14889: [patch] Deadlock in ChanSpy
Reporter:Atis Lezdins (atis)Labels:
Date Opened:2009-09-25 10:19:48Date Closed:2009-09-29 15:28:26
Priority:BlockerRegression?No
Status:Closed/CompleteComponents:Applications/app_chanspy
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) bt.asterisk-dev-mc-2009-09-24T16:37:35-0700.6415.txt
( 1) chanspy-deadlock-fix1.diff
( 2) locks_11_30.txt
Description:Deadlock related to Queue, Local channels, masquerade and chanspy


****** ADDITIONAL INFORMATION ******

=======================================================================
=== Currently Held Locks ==============================================
=======================================================================
===
=== <pending> <lock#> (<file>): <lock type> <line num> <function> <lock name> <lock addr> (times locked)
===
=== Thread ID: 1086437712 (do_monitor           started at [20849] chan_sip.c restart_monitor())
=== ---> Lock #0 (chan_sip.c): MUTEX 20361 handle_request_do &netlock 0x2aaab55f26c0 (1)
=== ---> Tried and failed to get Lock #1 (chan_sip.c): MUTEX 19474 handle_request_bye (channel lock) 0x2aaacc9fea70 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: 1092532560 (pbx_thread           started at [ 4053] pbx.c ast_pbx_start())
=== ---> Lock #0 (channel.c): MUTEX 2590 __ast_read (channel lock) 0x2aaad0343d80 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 1124022608 (pbx_thread           started at [ 4053] pbx.c ast_pbx_start())
=== ---> Lock #0 (channel.c): MUTEX 2590 __ast_read (channel lock) 0x2aaacc9fea70 (1)
=== ---> Lock #1 (channel.c): MUTEX 4362 ast_do_masquerade (channel lock) 0x2aaaccb24480 (1)
=== ---> Waiting for Lock #2 (app_chanspy.c): MUTEX 542 chanspy_ds_chan_fixup &chanspy_ds->lock 0x433cd020 (1)
=== --- ---> Locked Here: app_chanspy.c line 339 (channel_spy)
=== -------------------------------------------------------------------
===
=== Thread ID: 1128085840 (pbx_thread           started at [ 4053] pbx.c ast_pbx_start())
=== ---> Lock #0 (app_chanspy.c): MUTEX 339 channel_spy &spyee_chanspy_ds->lock 0x433cd020 (1)
=== ---> Waiting for Lock #1 (app_chanspy.c): MUTEX 342 channel_spy (channel lock) 0x2aaaccb24480 (1)
=== --- ---> Locked Here: channel.c line 4362 (ast_do_masquerade)
=== -------------------------------------------------------------------
===
=== Thread ID: 1110817104 (pbx_thread           started at [ 4053] pbx.c ast_pbx_start())
=== ---> Lock #0 (func_lock.c): MUTEX 233 get_lock &current->mutex 0x2aaaac448660 (1)
=== ---> Waiting for Lock #1 (channel.c): MUTEX 2034 ast_waitfor_nandfds (channel lock) 0x2aaaccb24480 (1)
=== --- ---> Locked Here: channel.c line 4362 (ast_do_masquerade)
=== -------------------------------------------------------------------
===
=== Thread ID: 1123514704 (pbx_thread           started at [ 4053] pbx.c ast_pbx_start())
=== ---> Lock #0 (func_lock.c): MUTEX 233 get_lock &current->mutex 0x2aaaacc9d0b0 (1)
=== -------------------------------------------------------------------
===
=======================================================================
Comments:By: Matthew Nicholson (mnicholson) 2009-09-25 10:50:16

The patch I just uploaded should fix the problem.

By: Atis Lezdins (atis) 2009-09-28 11:03:35

Running load tests for weekend with this patch didn't revealed addition crashes related to chanspy.

So, patch fixes issue.

By: Digium Subversion (svnbot) 2009-09-29 15:17:11

Repository: asterisk
Revision: 220907

U   branches/1.4/apps/app_chanspy.c

------------------------------------------------------------------------
r220907 | mnicholson | 2009-09-29 15:17:11 -0500 (Tue, 29 Sep 2009) | 10 lines

Avoid a deadlock in chanspy, just in case the spyee is masqueraded and chanspy_ds_chan_fixup() is called with the channel locked.


(closes issue ASTERISK-14889)
Reported by: atis
Patches:
     chanspy-deadlock-fix1.diff uploaded by mnicholson (license 96)
Tested by: atis


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

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

By: Digium Subversion (svnbot) 2009-09-29 15:25:25

Repository: asterisk
Revision: 220928

_U  trunk/

------------------------------------------------------------------------
r220928 | mnicholson | 2009-09-29 15:25:25 -0500 (Tue, 29 Sep 2009) | 15 lines

Blocked revisions 220907 via svnmerge

........
 r220907 | mnicholson | 2009-09-29 15:14:29 -0500 (Tue, 29 Sep 2009) | 10 lines
 
 Avoid a deadlock in chanspy, just in case the spyee is masqueraded and chanspy_ds_chan_fixup() is called with the channel locked.
 
 
 (closes issue ASTERISK-14889)
 Reported by: atis
 Patches:
       chanspy-deadlock-fix1.diff uploaded by mnicholson (license 96)
 Tested by: atis
........

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

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

By: Digium Subversion (svnbot) 2009-09-29 15:27:15

Repository: asterisk
Revision: 220934

U   branches/1.6.2/apps/app_chanspy.c

------------------------------------------------------------------------
r220934 | mnicholson | 2009-09-29 15:27:15 -0500 (Tue, 29 Sep 2009) | 8 lines

Avoid a deadlock in chanspy, just in case the spyee is masqueraded and chanspy_ds_chan_fixup() is called with the channel locked.
 
(closes issue ASTERISK-14889)
Reported by: atis
Patches:
     chanspy-deadlock-fix1.diff uploaded by mnicholson (license 96)
Tested by: atis

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

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

By: Digium Subversion (svnbot) 2009-09-29 15:27:56

Repository: asterisk
Revision: 220938

U   branches/1.6.1/apps/app_chanspy.c

------------------------------------------------------------------------
r220938 | mnicholson | 2009-09-29 15:27:56 -0500 (Tue, 29 Sep 2009) | 8 lines

Avoid a deadlock in chanspy, just in case the spyee is masqueraded and chanspy_ds_chan_fixup() is called with the channel locked.
 
(closes issue ASTERISK-14889)
Reported by: atis
Patches:
     chanspy-deadlock-fix1.diff uploaded by mnicholson (license 96)
Tested by: atis

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

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

By: Digium Subversion (svnbot) 2009-09-29 15:28:26

Repository: asterisk
Revision: 220940

U   branches/1.6.0/apps/app_chanspy.c

------------------------------------------------------------------------
r220940 | mnicholson | 2009-09-29 15:28:26 -0500 (Tue, 29 Sep 2009) | 8 lines

Avoid a deadlock in chanspy, just in case the spyee is masqueraded and chanspy_ds_chan_fixup() is called with the channel locked.
 
(closes issue ASTERISK-14889)
Reported by: atis
Patches:
     chanspy-deadlock-fix1.diff uploaded by mnicholson (license 96)
Tested by: atis

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

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