[reSIProcate] Please help - Register is Aborting.
Hello Resiprocate/DUM Group,
I really need your help figuring this one out. I'm not sure what is
going on but here is the basic scenario.
Set up a DUM based program to Register with a server - let the program
run.
It seems that the program always crashes with the following message:
ReallyBasic: TransactionState.cxx:1407: void
resip::TransactionState::sendToWire(resip::Message*, bool): Assertion
`mTarget.getType() != UNKNOWN_TRANSPORT' failed.
Aborted
I have included a portion of the log messages generated and have
included them at the bottom of this email.
The problem seems to start after the DialogUsageManager sends REGISTER
message #34 (i.e. a Register message whose CSeq number is 34) to the
transaction layer. Before the transaction layer can send it (Register
message #34) out a timer goes off and the DialogUsageManager sends
REGISTER message #35 to the transaction layer. Since, the transaction id
for #34 and #35 are the same, the TransactionState class matches
REGISTER #35 to the transaction for Register #34. However, the DNS
lookup for REGISTER #34 has not been completed and the mTarget tuple in
the TransactionState class is invalid. Thus, when the TransactionState
class tries to send out REGISTER message #35 the application aborts.
I don't know if that makes sense - please let me know if you require
further information.
Any feedback would be greatly appreciated,
Thanks.
Brian.
===============================================================
LOG MESSAGES
Here is where REGISTER message #34 is being processed by DUM:
INFO | 20040708-142851.991 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:DUM | 17066 | 3209616304 | DialogUsageManager.cxx:330 | BrianSEND:
SipReq: REGISTER fwd.pulver.com tid=937639856 cseq=REGISTER / 34
from(tu)
DEBUG | 20040708-142851.991 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:DUM | 17066 | 3209616304 | DialogUsageManager.cxx:338 | BrianUsing
outbound proxy
DEBUG | 20040708-142851.991 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TimerQueue.cxx:68 | Adding
application timer: DumTimeout: 1 : 38,22,-1
STACK | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:155 | No
matching transaction for SipReq: REGISTER fwd.pulver.com tid=937639856
cseq=REGISTER / 34 from(tu)
STACK | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:37 |
Creating new TransactionState: tid=937639856 [ ClientNonInvite/Trying
reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
STACK | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:361 |
TransactionState::processClientNonInvite: SipReq: REGISTER
fwd.pulver.com tid=937639856 cseq=REGISTER / 34 from(tu)
DEBUG | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TimerQueue.cxx:59 | Adding
timer: Timer F tid=937639856 ms=32000
STACK | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:1394 |
sendToWire with no dns result: tid=937639856 [ ClientNonInvite/Trying
reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:DNS | 17066 | 3209616304 | DnsResult.cxx:116 | DnsResult::lookup
sip:fwdnat.pulver.com:5082
DEBUG | 20040708-142851.992 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:DNS | 17066 | 3209616304 | DnsResult.cxx:224 | Doing Host (A)
lookup: fwdnat.pulver.com
Before the DNS lookup is completed DUM begins to process REGISTER
message #35 : (the mTarget tuple is invalid at this point)
INFO | 20040708-142852.303 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:DUM | 17066 | 3209616304 | DialogUsageManager.cxx:330 | BrianSEND:
SipReq: REGISTER fwd.pulver.com tid=937639856 cseq=REGISTER / 35
from(tu)
DEBUG | 20040708-142852.303 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:DUM | 17066 | 3209616304 | DialogUsageManager.cxx:338 | BrianUsing
outbound proxy
DEBUG | 20040708-142852.303 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TimerQueue.cxx:68 | Adding
application timer: DumTimeout: 1 : 38,32,-1
STACK | 20040708-142852.304 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:120 |
Found matching transaction for SipReq: REGISTER fwd.pulver.com
tid=937639856 cseq=REGISTER / 35 from(tu) -> tid=937639856 [
ClientNonInvite/Trying reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]]
STACK | 20040708-142852.304 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:361 |
TransactionState::processClientNonInvite: SipReq: REGISTER
fwd.pulver.com tid=937639856 cseq=REGISTER / 35 from(tu)
DEBUG | 20040708-142852.304 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TimerQueue.cxx:59 | Adding
timer: Timer F tid=937639856 ms=32000
STACK | 20040708-142852.304 | brian.i.aksysnetworks.com | ReallyBasic |
RESIP:TRANSACTION | 17066 | 3209616304 | TransactionState.cxx:1409 |
BBB: mTagert is: [ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]
The program aborts after this with the above message.