[asterisk-bugs] [Asterisk 0015609]: WARNING[23025]: channel.c:952 __ast_queue_frame: Exceptionally long voice queue length queuing to Local

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Aug 5 00:55:04 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=15609 
====================================================================== 
Reported By:                aragon
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   15609
Category:                   Core/Channels
Reproducibility:            have not tried
Severity:                   minor
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           SVN 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 206273 
Request Review:              
====================================================================== 
Date Submitted:             2009-07-29 09:26 CDT
Last Modified:              2009-08-05 00:55 CDT
====================================================================== 
Summary:                    WARNING[23025]: channel.c:952 __ast_queue_frame:
Exceptionally long voice queue length queuing to Local
Description: 
Since upgrading to 1.4 SVN 206273 I see LOTS these errors when paging or
when calls are processed by app_queue.  When I see the messages during a
page I don't hear any paging (my Polycom phones continue to ring but no
paging audio).

I have no idea where the message is coming from how to reproduce, or
collect debug information for this specific issue.  I need help to find
root cause.
I think it could be caused by locking in autoservice since I see this lock
every time I see the warning message

=== Currently Held Locks ==============================================
=======================================================================
===
=== <file> <line num> <function> <lock name> <lock addr> (times locked)
===
=== Thread ID: 3057154960 (autoservice_run      started at [  238]
autoservice.c ast_autoservice_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0
(autoservice.c): MUTEX 89 autoservice_run
&(&aslist)->lock 0x81798c8 (1)
=== --- ---> Locked Here: autoservice.c line 89 (autoservice_run)
=== -------------------------------------------------------------------


====================================================================== 

---------------------------------------------------------------------- 
 (0108636) cstadlmann (reporter) - 2009-08-05 00:55
 https://issues.asterisk.org/view.php?id=15609#c108636 
---------------------------------------------------------------------- 
Sorry guys, I have to withdraw my post. The suggestion provided in Bug
14112 seems to fix the issue for me, at least for queues.
Maybe also compiling with DONT_OPTIMIZE, DEBUG_CHANNEL_LOCKS,
DEBUG_THREADS, DEBUG_FD_LEAKS and MALLOX_DEBUG solved the issue.

This is how I patched chan_local.c:

--- channels/chan_local.c.orig  2009-07-29 12:34:47.000000000 +0200
+++ channels/chan_local.c       2009-08-05 06:47:19.000000000 +0200
@@ -539,10 +539,9 @@
        if (!p)
                return -1;

+       /* SMR - Use the macro rather */
        while (ast_mutex_trylock(&p->lock)) {
-               ast_channel_unlock(ast);
-               usleep(1);
-               ast_channel_lock(ast);
+               DEADLOCK_AVOIDANCE(&ast->lock);
        }

        isoutbound = IS_OUTBOUND(ast, p);


mmichelson: maybe you should link bug 14112 and this one. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-08-05 00:55 cstadlmann     Note Added: 0108636                          
======================================================================




More information about the asterisk-bugs mailing list