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:06 | Date Closed: | 2007-11-05 14:12:57.000-0600 |
Priority: | Critical | Regression? | No |
Status: | Closed/Complete | Components: | 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) ........ ------------------------------------------------------------------------ |