[asterisk-users] Crash with app_mixmonitor

Darrin Henshaw darrin.asterisk at gmail.com
Fri Oct 23 14:23:51 CDT 2009


Hello All,

I posted a bug on the 14th of this month, and haven't heard anything
back. However, I've since discovered that the problem is not in
chan_iax.c as I originally thought, it's actually app_mixmonitor.c.
Basically when I use 1.4.26.2 with an ilbc codec between two asterisk
servers trunked via IAX, with mixmonitor Asterisk crashes on me.
Here's a link to the post:
https://issues.asterisk.org/bug_view_advanced_page.php?bug_id=16070.
Can someone possibly assign it to the right application.

I started looking at 1.4.24 which didn't crash, and upped my revisions
until I found the problem. The bug was introduced in revision 204012
of 1.4, here's the info from the changelog:

2009-06-29 15:04 +0000 [r204012] Mark Michelson <mmichelson at digium.com>

        * apps/app_mixmonitor.c: Place unlock of mutex in an else block so
          that it does not get unlocked twice. (closes issue 0015400)
          Reported by: aragon

Here is a diff on the two app_mixmonitor.c files:
--- ./asterisk-204000/apps/app_mixmonitor.c 2009-10-23 13:40:21.000000000 -0400
+++ ./asterisk-204012/apps/app_mixmonitor.c 2009-10-23 14:03:27.000000000 -0400
@@ -35,7 +35,7 @@

 #include "asterisk.h"

-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 201423 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 204012 $")

 #include <stdlib.h>
 #include <stdio.h>
@@ -273,8 +273,9 @@
                                        ast_writestream(*fs, cur);
                                }
                        }
+ } else {
+ ast_mutex_unlock(&mixmonitor->mixmonitor_ds->lock);
                }
- ast_mutex_unlock(&mixmonitor->mixmonitor_ds->lock);

                /* All done! free it. */
                ast_frame_free(fr, 0);

Any chance someone can look at this? I've noticed it happens with
1.6.0.15 as well. I'm going to see if I can find out where it's
introduced in 1.6 as well. Thanks.



More information about the asterisk-users mailing list