[Home]

Summary:ASTERISK-10193: crash while send call via sip to another asterisk server into meetme
Reporter:dtyoo (dtyoo)Labels:
Date Opened:2007-08-29 13:42:06Date Closed:2007-11-05 14:12:57.000-0600
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Channels/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) 10595_additional_bt_info.txt
( 1) 10595-thread_apply_all_bt.txt
( 2) bt_btfull_meetme_crash.txt
Description:We have a centralized meetme server that other asterisk servers send calls to.  We have had a several instances of these "client" asterisk servers crashing when sending calls to meetme on the centralized server (via Dial(SIP/xxx)).  Unfortunately I have not been able to reproduce this issue.  Both servers running 1.4.9.  Example bt attached.

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

Dell 1950, CentOS 4.5, 2 x 3GHz Xeon CPU, 2GB RAM
Comments:By: Joshua C. Colp (jcolp) 2007-08-30 15:32:31

Can you please do the following and attach the results:

1. Open the core dump in gdb
2. Type frame 0
3. Type print *chan
4. Type print *f

Thanks!

By: dtyoo (dtyoo) 2007-08-30 15:43:35

file-

I've uploaded the info you requested.

By: Joshua C. Colp (jcolp) 2007-08-30 15:50:38

Hrm... interesting... the list of frames on the channel is getting very corrupted... how about attaching a thread apply all bt as well?

By: dtyoo (dtyoo) 2007-08-30 17:53:07

file-

thread apply all bt uploaded.

By: dtyoo (dtyoo) 2007-09-16 12:07:56

file-

I have a theory that this issue was a side effect / manifestation of the issue reported in 10571.  Since we changed our dialplan to minimize use of the local channel, this and a couple other crashes we were seeing are not happening any more.

By: Digium Subversion (svnbot) 2007-11-01 14:29:03

Repository: asterisk
Revision: 88153

U   team/russell/readq-1.4/main/channel.c

------------------------------------------------------------------------
r88153 | russell | 2007-11-01 14:29:02 -0500 (Thu, 01 Nov 2007) | 15 lines

The readq handling in ast_do_masquerade() got broken when the code was converted
to use the AST_LIST macros.  Furthermore, the actual operation performed was
extremely bizarre.  I have re-written the readq handling in ast_do_masquerade()
to make it safe so that the readq list does not get corrupted, as well as
simplified and documented the code. There is also another fix for list handling
for channel datastores.

(related to issues ASTERISK-10489, ASTERISK-10193, ASTERISK-10012, and the 2nd backtrace of ASTERISK-10616)
(potentially related to issues ASTERISK-9737 and ASTERISK-10404)

For users involved with any of the bug reports I have listed, please give this
code a try:

$ svn co http://svn.digium.com/svn/asterisk/team/russell/readq-1.4

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

By: Digium Subversion (svnbot) 2007-11-05 14:10:19.000-0600

Repository: asterisk
Revision: 88709

U   branches/1.4/main/channel.c

------------------------------------------------------------------------
r88709 | russell | 2007-11-05 14:10:17 -0600 (Mon, 05 Nov 2007) | 20 lines

Merge the last bit of changes from asterisk/team/russell/readq-1.4

The issue here is that the channel frame readq handling got broken when the
code was converted to use the linked list macros.  It caused corruption of the
list head and tail pointers.  So, I fixed up the usage of the linked list
macros and in passing, simplified the code.  I also documented what the code
is doing, as it was a bit difficult to figure out at first.

This bug showed itself with crashes showing messed up head/tail pointers for
the readq.  However, there are a couple of crashes that aren't quite as obvious,
but I think may be related.  So, if your bug gets closed by this commit, but
you still have a problem, please reopen or create a new bug report.

(closes issue ASTERISK-10489)
(closes issue ASTERISK-10193)
(closes issue ASTERISK-10012)
(closes issue ASTERISK-10616)
(closes issue ASTERISK-9737)
(closes issue ASTERISK-10404)

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

By: Digium Subversion (svnbot) 2007-11-05 14:12:57.000-0600

Repository: asterisk
Revision: 88710

_U  trunk/
U   trunk/main/channel.c

------------------------------------------------------------------------
r88710 | russell | 2007-11-05 14:12:56 -0600 (Mon, 05 Nov 2007) | 28 lines

Merged revisions 88709 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88709 | russell | 2007-11-05 14:11:04 -0600 (Mon, 05 Nov 2007) | 20 lines

Merge the last bit of changes from asterisk/team/russell/readq-1.4

The issue here is that the channel frame readq handling got broken when the
code was converted to use the linked list macros.  It caused corruption of the
list head and tail pointers.  So, I fixed up the usage of the linked list
macros and in passing, simplified the code.  I also documented what the code
is doing, as it was a bit difficult to figure out at first.

This bug showed itself with crashes showing messed up head/tail pointers for
the readq.  However, there are a couple of crashes that aren't quite as obvious,
but I think may be related.  So, if your bug gets closed by this commit, but
you still have a problem, please reopen or create a new bug report.

(closes issue ASTERISK-10489)
(closes issue ASTERISK-10193)
(closes issue ASTERISK-10012)
(closes issue ASTERISK-10616)
(closes issue ASTERISK-9737)
(closes issue ASTERISK-10404)

........

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