sipp icon indicating copy to clipboard operation
sipp copied to clipboard

Out-of-order message causes sipp crash

Open kadabusha opened this issue 4 years ago • 1 comments

Note: I was able to get the same issue reproduced with sipp 3.3, 3.6 only when UAS and UAC were running on different machines, running on the same box is not getting it reproduced for some reason. Below is the command to run sipp, in archive - pieces of xml scenarios I was using, coredump and trace_msg. From used scenario only failing part was added. Main goal of such scenario was to handle properly out-of-order 200OK for INVITE and PRACK, since last_* variable has no power for this case.

OS - FreeBSD 10.3 and FreeBSD 11.2

UAC:

sudo sipp 192.168.0.3 -i 10.0.2.15 -d 9000 -p 1036 -m 1 -cp 8884 -mp 8894 -mi 10.0.2.15 -nd -sf uac_fail_simple.xml -s authrule_12064248284 -trace_msg

UAS:

sipp -i 192.168.0.3 -sf uas_prack_fail.xml

sipp_coredump_scenarios_log.zip

                                Messages  Retrans   Timeout   Unexpected-Msg
      INVITE ---------->         1         0
         100 <----------         1         0         0         0
         180 <----------  E-RTD1 1         0         0         0
         200 <----------  E-RTD1 0         0         0         0
       Pause [   9000ms]         1                             1
       PRACK ---------->         0         0
         200 <----------  E-RTD1 0         0         0         0
         ACK ---------->         0         0
------- Waiting for active calls to end. Press [q] again to force exit. -------

Last Error: Continuing call on unexpected message for Call-Id '1-28127@1...
Assertion failed: (!call_scenario->transactions[checkTxn - 1].isInvite), function process_incoming, file call.cpp, line 3153.
Abort trap (core dumped)

kadabusha avatar Mar 03 '20 14:03 kadabusha

Still happens in latest sipp with no coredump as well as in v3.6.1 and v3.6.0

[user@box ~/callscenarios]$ uname -r
11.2-RELEASE-p9
[user@box ~/callscenarios]$ ./sipp/sipp -v
SIPp v3.7-dev-18-g9f62be0-TLS-SCTP-PCAP-RTPSTREAM-RTPCHECK.

------------------------------ Scenario Screen -------- [1-9]: Change Screen --
  Call rate (length)   Port   Total-time  Total-calls  Remote-host
  10.0(12000 ms)/1.000s   1036      38.08 s            1  178.62.244.101:5060(U

  Call limit 1 hit, 10.0 s period         1 ms scheduler resolution
  1 calls (limit 828)                     Peak was 1 calls, after 0 s
  0 Running, 2 Paused, 3 Woken up
  0 dead call msg (discarded)             0 out-of-call msg (discarded)
  2 open sockets                          0/0/0 UDP errors (send/recv/cong)
  0 Total RTP pckts sent                  0.000 last period RTP rate (kB/s)

                                 Messages  Retrans   Timeout   Unexpected-Msg
0 :      INVITE ---------->         1         0
1 :         100 <----------         1         0         0         0
2 :         180 <----------  E-RTD1 1         0         0         0
3 :       PRACK ---------->         1         0
4 :         200 <----------         1         0         0         0
5 :         183 <----------         1         4         0         0
6 :       Pause [    12.0s]         1                             0
7 :       PRACK ---------->         0         0
8 :         200 <----------  E-RTD1 0         0         0         0
9 :         200 <----------  E-RTD1 0         0         0         0
10:         200 <----------  E-RTD1 0         0         0         0
11:         200 <----------  E-RTD1 0         0         0         0
12:       Pause [    12.8s]         0                             0
13:         ACK ---------->         0         0
14:      INVITE <----------         0         0         0         0
15:         100 ---------->         0         0
16:       Pause [   2800ms]         0                             0
17:         200 ---------->         0         0
18:         ACK <----------         0         0         0         0
19:         BYE ---------->         0         0
20:         200 <----------         0         0         0         0
------- Waiting for active calls to end. Press [q] again to force exit. -------
Assertion failed: (!call_scenario->transactions[checkTxn - 1].isInvite), function process_incoming, file /home/user/callscenarios/sipp/src/call.cpp, line 5346.
                  Abort trap

Attaching a new set of test scenarios I used here just for the case. prack_scenarios.zip

kadabusha avatar Sep 22 '21 08:09 kadabusha