[reSIProcate] Problem with DNS and mActiveQueryCount
- From: Fredrik Skoog <fs@xxxxxxxxxxx>
- Date: Tue, 27 Mar 2007 11:52:51 +0200
Hi!
I have been running resiprocate for several months and it has been
really stable. But this morning I suddenly had problem 4 times, with
exactly 1 hour between the problems. (TTL of DNS-records is 3600, I
don't know if this is related in some way) . The following line:
assert(mInterface.mActiveQueryCount >= 0) was triggered in
DnsResult.cxx:79.
Of cource I receive no core if I disable the asserts, but then the
mActiveQueryCount come in a strange state. What about changing the
code, so an if-clause check if it's below zero and set it to zero? I
have looked at the code but I can't see why this is happening. I need
help with some ideas.
Best regards,
Fredrik
bt from core is:
#2 0x4037f2df in __assert_fail () from /lib/tls/libc.so.6
#3 0x400dfb88 in resip::DnsResult::transition (this=0x44012070,
t=29463) at DnsResult.cxx:79
#4 0x400e6fca in resip::DnsResult::processHost (this=0x44012070,
status=0, result=0x440037b8) at DnsResult.cxx:810
#5 0x400ddb93 in resip::DnsInterface::handle_host (this=0x44bccc08,
res=
{<resip::ExternalDnsResult> = {<resip::AsyncResult> =
{mErrorCode = 0}, userData = 0x44012070}, host = 0x440037b8}) at
AsyncID.hxx:36
#6 0x400bc4d5 in resip::AresDns::aresHostCallback (arg=0x440076c8,
status=0, result=0x6) at ExternalDns.hxx:76
#7 0x401e98a6 in end_hquery (hquery=0x44009fc8, status=0,
host=0x440037b8) at ares_gethostbyname.c:161
#8 0x401e982c in host_callback (arg=0x44009fc8, status=0, abuf=0x0,
alen=0) at ares_gethostbyname.c:153
#9 0x401ec27a in end_squery (squery=0x44016ba0, status=0, abuf=0x0,
alen=0) at ares_search.c:174
#10 0x401ec16d in search_callback (arg=0x44016ba0, status=6,
abuf=0x0, alen=0) at ares_search.c:137
#11 0x401ebf17 in qcallback (arg=0x440005e8, status=0,
abuf=0x453ee470 "", alen=124) at ares_query.c:115
#12 0x401ebced in end_query (channel=0xfdf56e0, query=0x440166d8,
status=0, abuf=0x0, alen=0) at ares_process.c:768
#13 0x401eb49c in read_udp_packets (channel=0xfdf56e0,
read_fds=0x453f08f0, now=1174960961) at ares_process.c:306
#14 0x401eb079 in ares_process (channel=0xfdf56e0,
read_fds=0x453f08f0, write_fds=0x0) at ares_process.c:67
#15 0x400bc6f0 in resip::AresDns::process (this=0x0, read=@0x0,
write=@0x0) at AresDns.cxx:151
#16 0x400dd95b in resip::DnsInterface::process (this=0x7317,
fdset=@0x6) at DnsInterface.cxx:147
#17 0x40197ab8 in resip::TransportSelector::process (this=0x44bccc04,
fdset=@0x453f08f0) at TransportSelector.cxx:177
#18 0x40179fde in resip::TransactionController::process
(this=0x44bccb74, fdset=@0x0) at TransactionController.cxx:80
#19 0x4016741e in resip::SipStack::process (this=0x44ba9008,
fdset=@0x0) at SipStack.cxx:421
#20 0x0818b99b in lSipStack::threadProcess (this=0x107ec890) at
sipstack.cxx:289