[reSIProcate] Exception encountered when using reSIProcate in a multi-threaded program
Andy Agarwal
Andy at ingenio.com
Mon Jul 18 16:48:30 CDT 2005
Thanks for the tip Jason. I ran my program with logging set to
Level::Stack and it seems that the stack is generating the same tid for
two different calls. The assertion error is encountered in the second
call.
In this particular example tid tid=5e3024011c490d44 was used to send the
BYE message for a certain call and then attempted to be used for an
INVITE message for another call.
I use the makeInvite function to generate the Invite msg -
auto_ptr<SipMessage> message(Helper::makeInvite( dest, from, contact));
Here is an excerpt from the logs -
*******************
*** Send INVITE ***
*******************
INFO | 20050718-121512.123 | UAC | RESIP:TRANSPORT | 1572 |
UdpTransport.cxx:30 | Creating UDP transport host= port=6050 ipv4=1
DEBUG | 20050718-121512.123 | UAC | RESIP:TRANSPORT | 1572 |
InternalTransport.cxx:87 | Creating fd=1816 V4/UDP
DEBUG | 20050718-121512.123 | UAC | RESIP:TRANSPORT | 1572 |
InternalTransport.cxx:95 | Binding to 0.0.0.0
DEBUG | 20050718-121515.123 | UAC | RESIP | 3592 | SipStack.cxx:269 |
SEND: SipReq: INVITE 14152484081 at 127.0.0.1:5060 tid=ae72d62c905f5269
cseq=INVITE contact=1 / 1 from(tu)
Sent INVITE for port 1
STACK | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:190 | No matching transaction for SipReq: INVITE
14152484081 at 127.0.0.1:5060 tid=ae72d62c905f5269 cseq=INVITE contact=1 /
1 from(tu)
STACK | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:45 | Creating new TransactionState:
tid=ae72d62c905f5269 [ ClientInvite/Calling reliable target=[ V4
0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
STACK | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:570 | TransactionState::processClientInvite:
SipReq: INVITE 14152484081 at 127.0.0.1:5060 tid=ae72d62c905f5269
cseq=INVITE contact=1 / 1 from(tu) tid=ae72d62c905f5269 [
ClientInvite/Calling reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]]
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TimerQueue.cxx:85 | Adding timer: Timer B tid=ae72d62c905f5269 ms=32000
STACK | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1490 | sendToWire with no dns result:
tid=ae72d62c905f5269 [ ClientInvite/Calling reliable target=[ V4
0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:243 | Looking up dns entries for
sip:14152484081 at 127.0.0.1:5060
DEBUG | 20050718-121515.138 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:136
| DnsResult::lookup sip:14152484081 at 127.0.0.1:5060
DEBUG | 20050718-121515.138 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:255
| Numeric result so return immediately: [ V4 127.0.0.1:5060 UDP
connectionId=0 ]
STACK | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1329 | tid=ae72d62c905f5269 [ ClientInvite/Calling
reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]] got
DNS result: 127.0.0.1 --> [[ V4 127.0.0.1:5060 UDP connectionId=0 ]]
STACK | 20050718-121515.138 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:128
| Returning next dns entry: [ V4 127.0.0.1:5060 UDP connectionId=0 ]
STACK | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1372 | Unreliable transport: tid=ae72d62c905f5269 [
ClientInvite/Calling unreliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]]
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSACTION | 1572 |
TimerQueue.cxx:85 | Adding timer: Timer A tid=ae72d62c905f5269 ms=500
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:514 | Looked up source for destination: [ V4
127.0.0.1:5060 UDP connectionId=0 ] -> [ V4 127.0.0.1:6050 UDP
connectionId=0 ] sent-by= sent-port=6050
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:740 | findTransport([ V4 127.0.0.1:6050 UDP
connectionId=0 ])
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:759 | findTransport (any interface) => Transport:
[ V4 0.0.0.0:6050 UDP connectionId=0 ]
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:620 | !sipit! Populated Contact:
<sip:1 at 127.0.0.1:6050>
DEBUG | 20050718-121515.138 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:658 | Transmitting to [ V4 127.0.0.1:5060 UDP
received on: Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
connectionId=0 ] via [ V4 127.0.0.1:6050 UDP connectionId=0 ]INVITE
sip:14152484081 at 127.0.0.1:5060 SIP/2.0 To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp From:
<sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900 Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-ae72d62c905f5269-1--d87543-;rport
Call-ID: 8467be186c3de14a at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq: 1
INVITE Contact: <sip:1 at 127.0.0.1:6050> Max-Forwards: 70 Content-Length:
0
*******************
*** Recv 200 OK ***
*******************
DEBUG | 20050718-121515.170 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:209 | incoming from: [ V4 127.0.0.1:5060 UDP received on:
Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ] connectionId=0 ]
STACK | 20050718-121515.170 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:210 |
SIP/2.0 200 OK To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=23482900 From:
<sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900 Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-ae72d62c905f5269-1--d87543-;rport=6
050 Call-ID: 8467be186c3de14a at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq:
1 INVITE Contact: <sip:14152484081 at 127.0.0.1:5060>;transport=udp
Content-Length: 0
STACK | 20050718-121515.170 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:155 | Found matching transaction for SipResp: 200
tid=ae72d62c905f5269 cseq=INVITE contact=14152484081 at 127.0.0.1:5060 / 1
from(wire) -> tid=ae72d62c905f5269 [ ClientInvite/Calling unreliable
target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
STACK | 20050718-121515.170 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:570 | TransactionState::processClientInvite:
SipResp: 200 tid=ae72d62c905f5269 cseq=INVITE
contact=14152484081 at 127.0.0.1:5060 / 1 from(wire) tid=ae72d62c905f5269 [
ClientInvite/Calling unreliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]]
DEBUG | 20050718-121515.170 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1531 | Send to default TU: SIP/2.0 200 OK To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=23482900 From:
<sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900 Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-ae72d62c905f5269-1--d87543-;rport=6
050 Call-ID: 8467be186c3de14a at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq:
1 INVITE Contact: <sip:14152484081 at 127.0.0.1:5060>;transport=udp
Content-Length: 0
*******************
*** Send ACK ***
*******************
STACK | 20050718-121515.170 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:632 | Received 2xx on client invite transaction
STACK | 20050718-121515.170 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:633 | tid=ae72d62c905f5269 [ ClientStale/Terminated
unreliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20050718-121515.170 | UAC | RESIP:TRANSACTION | 1572 |
TimerQueue.cxx:85 | Adding timer: Timer StaleClient tid=ae72d62c905f5269
ms=32000
DEBUG | 20050718-121515.170 | UAC | RESIP | 1572 | SipStack.cxx:375 |
RECV: SipResp: 200 tid=ae72d62c905f5269 cseq=INVITE
contact=14152484081 at 127.0.0.1:5060 / 1 from(wire)
Received response 200 for port 1
DEBUG | 20050718-121515.170 | UAC | RESIP | 3592 | SipStack.cxx:269 |
SEND: SipReq: ACK 14152484081 at 127.0.0.1:5060 tid=0c39877e99003e0f
cseq=ACK contact=1 at 127.0.0.1:6050 / 1 from(tu)
Sent ACK for port 1
DEBUG | 20050718-121515.170 | UAC | RESIP | 3592 | SipStack.cxx:269 |
SEND: SipReq: BYE 14152484081 at 127.0.0.1:5060 tid=5e3024011c490d44
cseq=BYE contact=1 at 127.0.0.1:6050 / 2 from(tu)
Sent BYE for port 1
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:190 | No matching transaction for SipReq: ACK
14152484081 at 127.0.0.1:5060 tid=0c39877e99003e0f cseq=ACK
contact=1 at 127.0.0.1:6050 / 1 from(tu)
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:45 | Creating new TransactionState:
tid=0c39877e99003e0f [ Stateless/Calling reliable target=[ V4 0.0.0.0:0
UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TimerQueue.cxx:85 | Adding timer: Timer Stateless tid=0c39877e99003e0f
ms=32000
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:390 | TransactionState::processStateless: SipReq:
ACK 14152484081 at 127.0.0.1:5060 tid=0c39877e99003e0f cseq=ACK
contact=1 at 127.0.0.1:6050 / 1 from(tu)
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1490 | sendToWire with no dns result:
tid=0c39877e99003e0f [ Stateless/Calling reliable target=[ V4 0.0.0.0:0
UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:243 | Looking up dns entries for
sip:14152484081 at 127.0.0.1:5060
DEBUG | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:136
| DnsResult::lookup sip:14152484081 at 127.0.0.1:5060
DEBUG | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:255
| Numeric result so return immediately: [ V4 127.0.0.1:5060 UDP
connectionId=0 ]
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1329 | tid=0c39877e99003e0f [ Stateless/Calling
reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]] got
DNS result: 127.0.0.1 --> [[ V4 127.0.0.1:5060 UDP connectionId=0 ]]
STACK | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:128
| Returning next dns entry: [ V4 127.0.0.1:5060 UDP connectionId=0 ]
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1372 | Unreliable transport: tid=0c39877e99003e0f [
Stateless/Calling unreliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:514 | Looked up source for destination: [ V4
127.0.0.1:5060 UDP connectionId=0 ] -> [ V4 127.0.0.1:0 UDP
connectionId=0 ] sent-by= sent-port=0
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:740 | findTransport([ V4 127.0.0.1:0 UDP
connectionId=0 ])
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:782 | findTransport (any port, any interface) =>
Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:658 | Transmitting to [ V4 127.0.0.1:5060 UDP
received on: Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
connectionId=0 ] via [ V4 127.0.0.1:0 UDP connectionId=0 ]ACK
sip:14152484081 at 127.0.0.1:5060 SIP/2.0 To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=23482900 From:
<sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900 Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-0c39877e99003e0f-1--d87543-;rport
Call-ID: 8467be186c3de14a at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq: 1
ACK Contact: <sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900
Max-Forwards: 70 Content-Length: 0
*******************
*** Send BYE ***
*******************
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:160 | Adding message to tx buffer to: [ V4 127.0.0.1:5060
UDP received on: Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
connectionId=0 ]
STACK | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:819
| Priming []
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:190 | No matching transaction for SipReq: BYE
14152484081 at 127.0.0.1:5060 tid=5e3024011c490d44 cseq=BYE
contact=1 at 127.0.0.1:6050 / 2 from(tu)
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:45 | Creating new TransactionState:
tid=5e3024011c490d44 [ ClientNonInvite/Trying reliable target=[ V4
0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:431 | TransactionState::processClientNonInvite:
SipReq: BYE 14152484081 at 127.0.0.1:5060 tid=5e3024011c490d44 cseq=BYE
contact=1 at 127.0.0.1:6050 / 2 from(tu)
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TimerQueue.cxx:85 | Adding timer: Timer F tid=5e3024011c490d44 ms=32000
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1490 | sendToWire with no dns result:
tid=5e3024011c490d44 [ ClientNonInvite/Trying reliable target=[ V4
0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:243 | Looking up dns entries for
sip:14152484081 at 127.0.0.1:5060
DEBUG | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:136
| DnsResult::lookup sip:14152484081 at 127.0.0.1:5060
DEBUG | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:255
| Numeric result so return immediately: [ V4 127.0.0.1:5060 UDP
connectionId=0 ]
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1329 | tid=5e3024011c490d44 [
ClientNonInvite/Trying reliable target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT
connectionId=0 ]] got DNS result: 127.0.0.1 --> [[ V4 127.0.0.1:5060 UDP
connectionId=0 ]]
STACK | 20050718-121515.201 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:128
| Returning next dns entry: [ V4 127.0.0.1:5060 UDP connectionId=0 ]
STACK | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1372 | Unreliable transport: tid=5e3024011c490d44 [
ClientNonInvite/Trying unreliable target=[ V4 0.0.0.0:0
UNKNOWN_TRANSPORT connectionId=0 ]]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSACTION | 1572 |
TimerQueue.cxx:85 | Adding timer: Timer E1 tid=5e3024011c490d44 ms=500
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:514 | Looked up source for destination: [ V4
127.0.0.1:5060 UDP connectionId=0 ] -> [ V4 127.0.0.1:0 UDP
connectionId=0 ] sent-by= sent-port=0
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:740 | findTransport([ V4 127.0.0.1:0 UDP
connectionId=0 ])
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:782 | findTransport (any port, any interface) =>
Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
DEBUG | 20050718-121515.201 | UAC | RESIP:TRANSPORT | 1572 |
TransportSelector.cxx:658 | Transmitting to [ V4 127.0.0.1:5060 UDP
received on: Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
connectionId=0 ] via [ V4 127.0.0.1:0 UDP connectionId=0 ]BYE
sip:14152484081 at 127.0.0.1:5060 SIP/2.0 To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=23482900 From:
<sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900 Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-5e3024011c490d44-1--d87543-;rport
Call-ID: 8467be186c3de14a at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq: 2
BYE Contact: <sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900
Max-Forwards: 70 Content-Length: 0
*******************
*** Recv 200 OK ***
*******************
DEBUG | 20050718-121515.232 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:160 | Adding message to tx buffer to: [ V4 127.0.0.1:5060
UDP received on: Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
connectionId=0 ]
STACK | 20050718-121515.232 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:819
| Priming []
STACK | 20050718-121515.232 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:155 | Found matching transaction for SipResp: 200
tid=5e3024011c490d44 cseq=BYE contact=14152484081 at 127.0.0.1:5060 / 2
from(wire) -> tid=5e3024011c490d44 [ ClientNonInvite/Trying unreliable
target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
STACK | 20050718-121515.232 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:431 | TransactionState::processClientNonInvite:
SipResp: 200 tid=5e3024011c490d44 cseq=BYE
contact=14152484081 at 127.0.0.1:5060 / 2 from(wire)
DEBUG | 20050718-121515.232 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1531 | Send to default TU: SIP/2.0 200 OK To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=23482900 From:
<sip:1 at 127.0.0.1:6050>;transport=udp;tag=23482900 Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-5e3024011c490d44-1--d87543-;rport=6
050 Call-ID: 8467be186c3de14a at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq:
2 BYE Contact:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=23482900
Content-Length: 0 DEBUG | 20050718-121515.232 | UAC | RESIP:TRANSACTION
| 1572 | TimerQueue.cxx:85 | Adding timer: Timer K tid=5e3024011c490d44
ms=5000
DEBUG | 20050718-121515.232 | UAC | RESIP | 1572 | SipStack.cxx:375 |
RECV: SipResp: 200 tid=5e3024011c490d44 cseq=BYE
contact=14152484081 at 127.0.0.1:5060 / 2 from(wire)
Received response 200 for port 1
DEBUG | 20050718-121515.232 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:209 | incoming from: [ V4 127.0.0.1:5060 UDP received on:
Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ] connectionId=0 ]
STACK | 20050718-121515.232 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:210 |
SIP/2.0 200 OK To:
<sip:14152484081 at 127.0.0.1:5060>;transport=udp;tag=6c3de14a From:
<sip:3 at 127.0.0.1:6050>;transport=udp;tag=b74d064d Via: SIP/2.0/UDP
127.0.0.1:6050;branch=z9hG4bK-d87543-c84d4d07bb664364-1--d87543-;rport=6
050 Call-ID: de544715122db339 at YWdhcndhbC5rZWVuY29ycC5rZWVuLmNvbQ.. CSeq:
1 INVITE Contact: <sip:14152484081 at 127.0.0.1:5060>;transport=udp
Content-Length: 0
****************************
*** Some timer expired ? ***
****************************
STACK | 20050718-121515.701 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:1151 | TransactionState::processClientStale: Timer:
Timer A 500
STACK | 20050718-121515.701 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:155 | Found matching transaction for Timer: Timer
E1 500 -> tid=5e3024011c490d44 [ ClientNonInvite/Completed unreliable
target=[ V4 0.0.0.0:0 UNKNOWN_TRANSPORT connectionId=0 ]]
*********************************
*** New INVITE using same tid ***
*********************************
DEBUG | 20050718-121516.341 | UAC | RESIP | 3836 | SipStack.cxx:269 |
SEND: SipReq: INVITE 14152484081 at 127.0.0.1:5060 tid=5e3024011c490d44
cseq=INVITE contact=40 / 1 from(tu)
Sent INVITE for port 40
DEBUG | 20050718-121516.357 | UAC | RESIP:TRANSPORT | 1572 |
Transport.cxx:160 | Adding message to tx buffer to: [ V4 127.0.0.1:5060
UDP received on: Transport: [ V4 0.0.0.0:6050 UDP connectionId=0 ]
connectionId=0 ]
STACK | 20050718-121516.357 | UAC | RESIP:DNS | 1572 | DnsResult.cxx:819
| Priming []
STACK | 20050718-121516.357 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:155 | Found matching transaction for SipReq:
INVITE 14152484081 at 127.0.0.1:5060 tid=5e3024011c490d44 cseq=INVITE
contact=40 / 1 from(tu) -> tid=5e3024011c490d44 [
ClientNonInvite/Completed unreliable target=[ V4 0.0.0.0:0
UNKNOWN_TRANSPORT connectionId=0 ]]
STACK | 20050718-121516.357 | UAC | RESIP:TRANSACTION | 1572 |
TransactionState.cxx:431 | TransactionState::processClientNonInvite:
SipReq: INVITE 14152484081 at 127.0.0.1:5060 tid=5e3024011c490d44
cseq=INVITE contact=40 / 1 from(tu)
-----Original Message-----
From: Fischl jason [mailto:jason.fischl at gmail.com]
Sent: Monday, July 18, 2005 11:50 AM
To: Andy Agarwal
Cc: resiprocate-devel at list.sipfoundry.org
Subject: Re: [reSIProcate] Exception encountered when using reSIProcate
in a multi-threaded program
Hi Andy,
Can you provide us with some more information. It would be helpful to
see the stack logs running at Log::Stack. Your stack usage looks fine to
me.
Is it possible that you are reusing the same transaction id (branch
parameter in Via) for each transaction in your call threads? This might
cause this sort of problem.
Jason
On 7/18/05, Andy Agarwal <Andy at ingenio.com> wrote:
>
> Hi,
>
> Let me first describe how i'm using reSIProcate (ver. 0.90.5019).
>
> 1. There is a global SipStack object available to all threads in the
> program.
> 2. There is one dedicated 'receiver' thread which is the one doing the
> following in a loop - while (true)
> {
> FdSet fdset;
> g_sipStack.buildFdSet(fdset);
> int err = fdset.selectMilliSeconds(20);
> assert (err != -1);
> g_sipStack.process(fdset);
> SharedPtr<SipMessage> receivedMsg(g_sipStack.receive());
> if (receivedMsg == NULL) continue;
>
> ... Figure out what message this is ...
> ... Post a message to the thread that is handling this call...
> }
> 3. There are many 'call' threads that are using the the global
> SipStack object and calling the send method on it (e.g.
> g_sipStack.send(*msgInvite),...). For now all they do is send an
> INVITE, wait for an OK, send an ACK and then send a BYE shortly after
> that and wait for the OK for the bye. Thats it.
> 4. When you run the program, it wil spawn a bunch of the above 'call'
> threads and will wait for them to run and exit.
>
> So now, if i run my program in Debug mode, i encounter this exception
> after a few calls have already been made successfully - "Assertion
> failed in TransactionState::processClientNonInvite -
> TransactionState.cxx, line 433".
> The call stack is as follows - 'Receiver thread' is calling
> sipStack.process which is in turn calling
> TransactionController::process which then calls
> TransactionState::process which believes that the current state is -
> ClientNonInvite so it calls TransactionState::processClientNonInvite
> which then fails this assertion.
>
> If i run this program in Release mode, then it works fine.
>
> I'm guessing i'm not using the stack in the right way (for a
> multithreaded program). Can anyone help me here ?
>
> thanks,
> andy
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at list.sipfoundry.org
> https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
>
>
More information about the resiprocate-devel
mailing list