Description

Kamailio does not properly release connected WebSocket TCP connections, leading to a situation where the maximum number of allowable connections is reached and new connection requests are rejected.

Troubleshooting

When examining the logs, we identified an issue where Kamailio is failing to release connected WebSocket TCP connections, causing a backlog of TIME_WAIT connections. The logs show a warning message indicating that the maximum number of allowable sockets per IP has been reached, leading to the rejection of further WebSocket requests.

Reproduction

Establish WebSocket connections with Kamailio.
Monitor the number of TIME_WAIT connections using netstat.
Observe the warning message in Kamailio logs when the maximum allowable sockets per IP are reached.

Debugging Data

(paste your debugging data here)

Log Messages

2023-10-03T13:19:33.699043+00:00 apps001 kamailio[23781]: WARNING: |<null>|websockets-role.cfg:224 (websocket_request) 223.233.86.93 is at the maximum 50 allowable sockets per IP, rejecting request for another websocket

netstat -punta | grep 223.233.86.93 | grep 5065
tcp        0      0 45.79.166.214:5065      223.233.86.93:52158      TIME_WAIT   -
tcp        0      0 45.79.166.214:5065      223.233.86.93:52195      TIME_WAIT   -
tcp        0      0 45.79.166.214:5065      223.233.86.93:52292      TIME_WAIT   -
tcp        0      0 45.79.166.214:5065      223.233.86.93:52248      TIME_WAIT   -
tcp        0      0 45.79.166.214:5065      223.233.86.93:52108      TIME_WAIT   -
tcp        0      0 45.79.166.214:5065      223.233.86.93:52071      TIME_WAIT   -

SIP Traffic

(paste your sip traffic here)

Possible Solutions

restarting kamailio solves the problem.

Additional Information

version: kamailio 5.7.2 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled on 14:39:54 Sep 27 2023 with gcc 7.3.1
CentOS Linux release 7.9.2009 (Core)


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/3589@github.com>