I have run in to an issue when sending diameter requests using the ims_diameter_server
module. Shared memory keeps increasing and are not being freed until restart of kamailio.
This leads to all shared memory is being used and no more are able to be allocated.
This only happens when the request is sent synchronously. When sent asynchronously shared
memory is being freed as far as I can see.
Following functions have been used for sending requests.
diameter_request([peer], appid, commandcode, message)
diameter_request_async([peer], appid, commandcode, message)
Sent a bunch of diameter requests and verified that shared memory for the following functions are not freed.
do_receive(600):
AAATranslateMessage(500):
AAACreateAVP(137):
It's possible to reproduce by sending sync diameter request and verify shared memory.
Example of diameter request block
route[CHECK_LOCATION] {
diameter_request("hss.ims.test.local", "16777217", "306",
"[ " +
"{ \"avpCode\":260, \"vendorId\":0, \"Flags\":64,
\"list\":[ { \"avpCode\":266, \"vendorId\":0,
\"Flags\":64, \"int32\":10415 }, { \"avpCode\":258,
\"vendorId\":0, \"Flags\":64, \"int32\":16777217 } ] },
" +
"{ \"avpCode\":277, \"vendorId\":0, \"Flags\":64,
\"int32\":1 }, " +
"{ \"avpCode\":283, \"vendorId\":0, \"Flags\":64,
\"string\":\"ims.test.local\"}, " +
"{ \"avpCode\":706, \"vendorId\":10415,
\"Flags\":192, \"int32\":0 }, " +
"{ \"avpCode\":700, \"vendorId\":10415,
\"Flags\":192, \"list\": [ { \"avpCode\":601,
\"vendorId\":10415, \"Flags\":192,
\"string\":\"tel:" + $fU + "\" }]}, " +
"{ \"avpCode\":707, \"vendorId\":10415,
\"Flags\":192, \"int32\":0 }, " +
"{ \"avpCode\":703, \"vendorId\":10415,
\"Flags\":192, \"int32\":14 } ]");
xlog("L_INFO", "Sent Diameter request");
}
Stats
cdp:replies_received = 343310
shmem:fragments = 142
shmem:free_size = 1221489992
shmem:max_used_size = 948242168
shmem:real_used_size = 925993656
shmem:total_size = 2147483648
shmem:used_size = 558205656
kamcmd mod.stats cdp shm
do_receive(600): 256245808
AAATranslateMessage(500): 64420712
AAACreateAVP(137): 218100320
Total: 538774000
(paste your debugging data here)
(paste your log messages here)
(paste your sip traffic here)
kamailio -v
version: kamailio 5.7.4 (x86_64/linux) dc393e
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: dc393e
compiled on 13:56:27 Feb 27 2024 with gcc 8.5.0
Linux bmatkamas1 4.18.0-553.16.1.el8_10.x86_64 #1 SMP Thu Aug 1 04:16:12 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux
Red Hat Enterprise Linux release 8.10 (Ootpa)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.