[Home]

Summary:ASTERISK-18613: Deadlock (SIP not responding anymore)
Reporter:Thomas Arimont (tomaso)Labels:
Date Opened:2011-09-23 06:54:10Date Closed:2011-09-26 14:33:40
Priority:MajorRegression?
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:1.8.5.0 Frequency of
Occurrence
Frequent
Related
Issues:
Environment:Attachments:( 0) deadlock_backtrace.txt
( 1) deadlock_core_show_locks.txt
( 2) jira_asterisk_18613_v1.8.patch
Description:In a heavy traffic situation using sipp we can force a deadlock. Please see the attached core show log and gdb backtrace log for details.
We can easily replicate this issue in our current configuration,

Version 1.8.6.0 shows the same issue.
Comments:By: Richard Mudgett (rmudgett) 2011-09-23 14:32:29.137-0500

[^jira_asterisk_18613_v1.8.patch] should fix the deadlock.

There were two things that could cause the deadlock.

1) The dummy channel should not be destroyed using ast_channel_release() because it is the primary cause of this deadlock.  (Principle cause of the deadlock.)

2) Calling ast_call() with channel locks held is not good since chan_local cannot perform deadlock avoidance correctly.  (Potential deadlock exposed by this deadlock.)


By: Thomas Arimont (tomaso) 2011-09-26 09:29:55.197-0500

Richard,
thanks a lot. Your fix (applied to 1.8.5.0) seems to resolve this issue. I couldn't replicate this deadlock anymore in our scenario.

By: Sebastian Gutierrez (sum) 2011-09-26 13:08:34.784-0500

is this on 1.8.7 also? I'm planning to move from 1.6.2.20 to 1.8.7 but this could be a bloquer.

By: Richard Mudgett (rmudgett) 2011-09-26 14:41:03.208-0500

The patch was just committed and will be in v1.8.8.

By: Sebastian Gutierrez (sum) 2011-11-20 17:54:00.418-0600

do you think I could port this to 1.6.2.20? to resolve sip deadlocks?


By: Richard Mudgett (rmudgett) 2011-11-21 10:19:11.618-0600

No this patch is not portable to v1.6.20.  The locking is very different between the two versions.