<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
Russell,<br>
<br>
The errors may be in the jb itself, but it may also be that there's
some unusual delay in getting packets _into_ the jb which cause it to
display those messages. For example, if there's some single-threaded
sections of code, or some kind of locking delays, etc.<br>
<br>
In the 19782 gdb output, you can see:<br>
Thread 72 (process 19796):<br>
#0 0xb7f82410 in __kernel_vsyscall ()<br>
#1 0xb7e47cc6 in nanosleep () from /lib/libc.so.6<br>
#2 0xb7e7544c in usleep () from /lib/libc.so.6<br>
#3 0xb6dacbba in iax2_queue_frame (callno=40, f=0x83eebd0) at
chan_iax2.c:1444<br>
#4 0xb6dad60b in __get_from_jb (p=<value optimized out>) at
chan_iax2.c:1804<br>
#5 0xb6dcdd10 in iax2_process_thread (data=0x81f3d60) at
chan_iax2.c:8259<br>
#6 0x0812eb9d in ?? ()<br>
<br>
Which seems to be from this code:<br>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr class="vc_row_odd" id="l1595">
<td class="vc_blame_line">595 :</td>
<td class="vc_blame_author">matteo</td>
<td class="vc_blame_rev">629</td>
<td class="vc_blame_text">static int iax2_queue_frame(int callno,
struct ast_frame *f)
</td>
</tr>
<tr class="vc_row_odd" id="l1596">
<td class="vc_blame_line">1596 :</td>
<td class="vc_blame_author"> </td>
<td class="vc_blame_rev"> </td>
<td class="vc_blame_text">{
</td>
</tr>
<tr class="vc_row_odd" id="l1597">
<td class="vc_blame_line">1597 :</td>
<td class="vc_blame_author"> </td>
<td class="vc_blame_rev"> </td>
<td class="vc_blame_text"> for (;;) {
</td>
</tr>
<tr class="vc_row_odd" id="l1598">
<td class="vc_blame_line">1598 :</td>
<td class="vc_blame_author"> </td>
<td class="vc_blame_rev"> </td>
<td class="vc_blame_text"> if (iaxs[callno] &&
iaxs[callno]->owner) {
</td>
</tr>
<tr class="vc_row_even" id="l1599">
<td class="vc_blame_line">1599 :</td>
<td class="vc_blame_author">russell</td>
<td class="vc_blame_rev"><a
href="http://svn.digium.com/view/asterisk/trunk/channels/chan_iax2.c?view=diff&r1=82727&r2=82728">82728</a></td>
<td class="vc_blame_text"> if
(ast_channel_trylock(iaxs[callno]->owner)) {
</td>
</tr>
<tr class="vc_row_odd" id="l1600">
<td class="vc_blame_line">1600 :</td>
<td class="vc_blame_author">matteo</td>
<td class="vc_blame_rev">629</td>
<td class="vc_blame_text"> /* Avoid deadlock by pausing and
trying again */
</td>
</tr>
<tr class="vc_row_even" id="l1601">
<td class="vc_blame_line">1601 :</td>
<td class="vc_blame_author">markster</td>
<td class="vc_blame_rev"><a
href="http://svn.digium.com/view/asterisk/trunk/channels/chan_iax2.c?view=diff&r1=1309&r2=1310">1310</a></td>
<td class="vc_blame_text"> ast_mutex_unlock(&iaxsl[callno]);
</td>
</tr>
<tr class="vc_row_odd" id="l1602">
<td class="vc_blame_line">1602 :</td>
<td class="vc_blame_author">matteo</td>
<td class="vc_blame_rev">629</td>
<td class="vc_blame_text"> usleep(1);
</td>
</tr>
<tr class="vc_row_even" id="l1603">
<td class="vc_blame_line">1603 :</td>
<td class="vc_blame_author">markster</td>
<td class="vc_blame_rev"><a
href="http://svn.digium.com/view/asterisk/trunk/channels/chan_iax2.c?view=diff&r1=1309&r2=1310">1310</a></td>
<td class="vc_blame_text"> ast_mutex_lock(&iaxsl[callno]);
</td>
</tr>
<tr class="vc_row_odd" id="l1604">
<td class="vc_blame_line">1604 :</td>
<td class="vc_blame_author">matteo</td>
<td class="vc_blame_rev">629</td>
<td class="vc_blame_text"> } else {
</td>
</tr>
<tr class="vc_row_even" id="l1605">
<td class="vc_blame_line">1605 :</td>
<td class="vc_blame_author">markster</td>
<td class="vc_blame_rev"><a
href="http://svn.digium.com/view/asterisk/trunk/channels/chan_iax2.c?view=diff&r1=2643&r2=2644">2644</a></td>
<td class="vc_blame_text">
ast_queue_frame(iaxs[callno]->owner, f);
</td>
</tr>
<tr class="vc_row_odd" id="l1606">
<td class="vc_blame_line">1606 :</td>
<td class="vc_blame_author">russell</td>
<td class="vc_blame_rev"><a
href="http://svn.digium.com/view/asterisk/trunk/channels/chan_iax2.c?view=diff&r1=82727&r2=82728">82728</a></td>
<td class="vc_blame_text">
ast_channel_unlock(iaxs[callno]->owner);
</td>
</tr>
<tr class="vc_row_even" id="l1607">
<td class="vc_blame_line">1607 :</td>
<td class="vc_blame_author">matteo</td>
<td class="vc_blame_rev">629</td>
<td class="vc_blame_text"> break;
</td>
</tr>
<tr class="vc_row_even" id="l1608">
<td class="vc_blame_line">1608 :</td>
<td class="vc_blame_author"> </td>
<td class="vc_blame_rev"> </td>
<td class="vc_blame_text"> }
</td>
</tr>
<tr class="vc_row_even" id="l1609">
<td class="vc_blame_line">1609 :</td>
<td class="vc_blame_author"> </td>
<td class="vc_blame_rev"> </td>
<td class="vc_blame_text"> }</td>
</tr>
</tbody>
</table>
<br>
The other output shows the same deadlock avoidance pattern in thread
73, Thread 56 (and, they seem to be different calls..).<br>
<br>
-SteveK<br>
<br>
<br>
<br>
Hendrik Visage wrote:
<blockquote
cite="mid:d93f04c70710110111y3602a359y78207f6e8b07a3ce@mail.gmail.com"
type="cite">
<pre wrap="">On 10/9/07, Russell Bryant <a class="moz-txt-link-rfc2396E" href="mailto:russell@digium.com"><russell@digium.com></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Based on the console output that is in this file, it sounds like this a problem
that I have seen multiple times. This appears to happen when the IAX2
jitterbuffer gets into some kind of bad state, indicated by the jitterbuffer
messages you see in the log. There were reports of this against 1.2, as well as
all versions of 1.4.
</pre>
</blockquote>
<pre wrap=""><!---->
see attached typescript output.
</pre>
<blockquote type="cite">
<pre wrap="">Perhaps if you could get a core dump from the system when it gets into this
state, it might provide some more insight. If you do, get the gdb output of
"thread apply all bt" and "thread apply all bt full". It would be even more
helpful if it were possible for you to provide access to the system for someone,
probably me, to take a look with gdb to try to figure out what happened.
Thanks,
--
Russell Bryant
Senior Software Engineer
Open Source Team Lead
Digium, Inc.
_______________________________________________
--Bandwidth and Colocation Provided by <a class="moz-txt-link-freetext" href="http://www.api-digital.com">http://www.api-digital.com</a>--
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
<a class="moz-txt-link-freetext" href="http://lists.digium.com/mailman/listinfo/asterisk-dev">http://lists.digium.com/mailman/listinfo/asterisk-dev</a>
</pre>
</blockquote>
<pre wrap=""><!---->
</pre>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
--Bandwidth and Colocation Provided by <a class="moz-txt-link-freetext" href="http://www.api-digital.com">http://www.api-digital.com</a>--
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
<a class="moz-txt-link-freetext" href="http://lists.digium.com/mailman/listinfo/asterisk-dev">http://lists.digium.com/mailman/listinfo/asterisk-dev</a></pre>
</blockquote>
<br>
</body>
</html>