SIPp / sipp

The SIPp testing tool
https://sipp.readthedocs.io
Other
918 stars 380 forks source link

terminate of uas on connection reset by peer ( sipp 3.7.2 ) #672

Open gitkoyot opened 10 months ago

gitkoyot commented 10 months ago

Hi, I have a scenario where under certain conditions server sends invite toward uas script, but due to timeouts it resets the connection. The whole UAS part of sipp terminates. when socket on server is closed normally the issue does not appear (it reports endpoint not connected, but it does not terminate sipp).

I attached simple *.c program that simulates this. I am running standard uas script: sipp -sf ./uas.xml -t 'tn' -p 5060 -recv_timeout 5000 -send_timeout 5000

here is the stack trace

#0  __GI_exit (status=-1) at ./stdlib/exit.c:141
#1  0x00005555555f3b03 in sipp_exit (rc=-1, rtp_errors=0, echo_errors=0) at ./src/sipp.cpp:1133
#2  0x00005555555a37c6 in _screen_error(int, bool, int, const char *, typedef __va_list_tag __va_list_tag *) (fatal=1, use_errno=false, 
    error=0, fmt=0x5555556183e8 "Error on TCP connection, remote peer probably closed the socket: %s", ap=0x7ffffffed7d0)
    at ./src/logger.cpp:491
#3  0x00005555555a38a1 in ERROR (fmt=0x5555556183e8 "Error on TCP connection, remote peer probably closed the socket: %s")
    at ./src/logger.cpp:501
#4  0x00005555555d7973 in SIPpSocket::read_error (this=0x5555559393a0, ret=-1) at ./src/socket.cpp:1963
#5  0x00005555555dad5f in SIPpSocket::pollset_process (wait=0) at ./src/socket.cpp:2948
#6  0x00005555555f2aa0 in traffic_thread (rtp_errors=@0x7fffffffdb78: 0, echo_errors=@0x7fffffffdb7c: 0) at ./src/sipp.cpp:598
#7  0x00005555555f753d in main (argc=11, argv=0x7fffffffe078) at ./src/sipp.cpp:2147

when I comment out linger option in reset.c file - sipp does not terminate.

uas.xml.txt reset.c.txt