Summary: | ASTERISK-14889: [patch] Deadlock in ChanSpy | ||
Reporter: | Atis Lezdins (atis) | Labels: | |
Date Opened: | 2009-09-25 10:19:48 | Date Closed: | 2009-09-29 15:28:26 |
Priority: | Blocker | Regression? | No |
Status: | Closed/Complete | Components: | 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 ¤t->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 ¤t->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 |