[Home]

Summary:ASTERISK-13930: 100% cpu problem with channel hangup
Reporter:Mark Murawski (kobaz)Labels:
Date Opened:2009-04-09 00:26:52Date Closed:2009-04-09 17:29:40
Priority:BlockerRegression?No
Status:Closed/CompleteComponents:Applications/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:    -- Executing [h@foo:1] NoOp("SIP/budder-b7bb6150", "Call duration: 4 seconds") in new stack
 == Using SIP RTP CoS mark 5
   -- Executing [2750@trunkhandler_branch-in:1] Goto("SIP/budder-081da778", "foo,s,1") in new stack
   -- Goto (foo,s,1)
   -- Executing [s@foo:1] Answer("SIP/budder-081da778", "") in new stack
   -- Executing [s@foo:2] Read("SIP/budder-081da778", "input,enter-password,10,,1,5") in new stack
   -- Accepting a maximum of 10 digits.
   -- <SIP/budder-081da778> Playing 'enter-password.ulaw' (language 'en')
   -- User entered '123456'
   -- Executing [s@foo:3] Set("SIP/budder-081da778", "__uid=2") in new stack
   -- Executing [s@foo:4] Dial("SIP/budder-081da778", "SIP/bob/5506,300,rHoL(1000:60000:30000)") in new stack
   -- Setting call duration limit to 1 seconds.
 == Using SIP RTP CoS mark 5
   -- Called bob/5506
   -- SIP/bob-b7bbc650 is ringing
   -- SIP/bob-b7bbc650 is ringing
   -- SIP/bob-b7bbc650 answered SIP/budder-081da778
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.
[Apr  9 01:06:06] ERROR[13683]: channel.c:2520 __ast_read: ast_read() called with no recorded file descriptor.

asterisk is now at 100% and unusable, and is taking the server down to it's knees

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

Tested on asterisk 1.4.22 (does not produce problem)
Tested on asterisk 1.6.0.1 (does not produce problem)
Tested on asterisk 1.6.0.6 (does not produce problem)
Tested on asterisk 1.6.0.8 (problem exists)
Tested on asterisk 1.6.2.0-beta1 (problem exists)

Dialplan:

context foo {
 s => {
   Answer();

   Read(input,enter-password,10,,1,5);
   Dial(SIP/bob/5506,300,rHoL(1000:60000:30000));
 }

 h => {
   Noop(Call duration: ${CDR(duration)} seconds);
 }
}

At first it seems the problem appears to stem from using the h context along with a Read call (maybe other functions as well) If you remove either the Read, or the h extension... the problem does not happen.

But!

This dialplan also produces the problem:
context foo {
 s => {
   Answer();

   // Read(input,enter-password,10,,1,5);
   Dial(SIP/bob/5506,300,rHoL(1000:60000:30000));
 }

 h => {
   Noop(Call duration: ${CDR(duration)} seconds);
 }
}

Resulting extensions:
[ Context 'foo' created by 'pbx_ael' ]
 'h' =>            1. Noop(Call duration: ${CDR(duration)} seconds) [pbx_ael]
 's' =>            1. Answer()                                   [pbx_ael]
                   2. Dial(SIP/bob/5506,300,rHoL(1000:60000:30000)) [pbx_ael]


Taking out the "// Read..." line completely... will not cause the problem
Comments:By: Mark Murawski (kobaz) 2009-04-09 08:30:16

seems similar to: http://bugs.digium.com/view.php?id=14723

By: Mark Michelson (mmichelson) 2009-04-09 17:29:39

Yes, I think this is a duplicate of 14723. Please try the patch I have uploaded there and see if it helps any.