[asterisk-dev] poke retries

Dmitry Andrianov dimas at dataart.com
Wed Oct 3 16:32:21 CDT 2007


So I tested qualifysmoothing and have to say:

1. It does not work :) I'm seeying even more messages than without it. I
guess it is because of "theoretical reasons" I found after observing the
code and which I wrote in my email below.
2. in can't be controlled globally - "qualifysmoothing" isn't read from
[general] section, only from specific peers
3. as soon as I turned "qualifysmoothing" on, executed 'iax reload' and
re-registered peer, I've got a coredump :)

(gdb) bt
#0  0x03a424ee in __ast_pthread_mutex_lock (filename=0x3a7ab13
"chan_iax2.c", lineno=8515, func=0x3a7ecb7 "iax2_poke_peer", 
    mutex_name=0x3a7ec8f "&iaxsl[peer->callno]", t=0xcf923600) at
/usr/src/asterisk-branch-1.4/include/asterisk/lock.h:257
#1  0x03a69ac6 in iax2_poke_peer (peer=0x8fa39c8, heldcall=0) at
chan_iax2.c:8515
#2  0x03a5aff2 in __iax2_poke_peer_s (data=0x8fa39c8) at
chan_iax2.c:6185
#3  0x03a67fae in iax2_process_thread (data=0x8fe35c8) at
chan_iax2.c:8259
#4  0x0810eaa8 in dummy_start (data=0x8fd8d28) at utils.c:793
#5  0x482c42db in start_thread () from /lib/libpthread.so.0
#6  0x4821e12e in clone () from /lib/libc.so.6

It happened only once, so I'm not going to submit it on Mantis.

Anyway, either I'm doing something wrong or smoothing is completely
broken. I'm back to my original idea to allow several pokes to be lost
before declaring peer as unreachable instead of calculating average ping
time between multiple pokes.

What do you think?


-----Original Message-----
From: Dmitry Andrianov 
Sent: Wednesday, October 03, 2007 3:05 AM
To: Asterisk Developers Mailing List
Subject: RE: [asterisk-dev] poke retries

Well, it looks like it is. Honestly I just could not follow logic of
smoothing. To me it looks like as soon as iax2_poke_noanswer called for
the first time, peer is marked as unreachable. And I do not see how
smoothed ping time is involved in this process.
Also to me it looks like the very first delayed response will
immediately trigger logging "Peer '%s' is now TOO LAGGED" because
average time is calculated later.
So the bottom line, after reading the sources I could not understand how
this stuff can help...




More information about the asterisk-dev mailing list