<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
We are facing a hang issue with Kamailio for the get_profile_size method. Randomly, the Kamailio got hangs, and the CPU went 100%.
During the hanging time, we generated the TRAP and we could see that the hang happened on the get_profile_size method. We are getting this hang randomly in dlg_profile.c of the following lines:
The hang occurs, causing the CPU to spike to 100% at one of the following lines randomly:
1. if(value->len == ph->value.len && memcmp(value->s, ph->value.s, value->len) == 0) {
2. ph = ph->next;
3. while(ph != profile->entries[i].first);
During our analysis, we found that PROCESS ID 7608 gets a spike of 100% utilization.
We suspect there may be an issue with the processing of the 'ph' variable, but we couldn't identify the root cause. I've attached the Kamailio TRAP for further details. Could you please suggest what might be causing this problem and how we can resolve it?
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Troubleshooting
We have analysed the coredump and TRAP, And found that the issue could be from the following lines:
1. if(value->len == ph->value.len && memcmp(value->s, ph->value.s, value->len) == 0) {
2. ph = ph->next;
3. while(ph != profile->entries[i].first);
#### Reproduction
This issue is occurring randomly.
<!--
If the issue can be reproduced, describe how it can be done.
-->
#### Debugging Data
I have attached the TRAP data.
---start 7608 -----------------------------------------------------
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
get_profile_size (profile=0x7f7095698f50, value=0x7ffd5e21db20) at dlg_profile.c:860
860 }while( ph!=profile->entries[i].first );
#0 get_profile_size (profile=0x7f7095698f50, value=0x7ffd5e21db20) at dlg_profile.c:860
n = 0
i = 9
ph = 0x7f70958d3c98
#1 0x00007f7195585785 in w_get_profile_size_helper (msg=0x7f7198418558, profile=0x7f7095698f50, value=0x7ffd5e21db20, spd=0x7f71983a8cf0) at dialog.c:941
size = 32625
val = {rs = {s = 0x7ffd5e21da80 "\260\332!^\375\177", len = 591976160}, ri = xxxxxxxx77096, flags = 32765}
__func__ = "w_get_profile_size_helper"
#2 0x00007f7195585fd2 in w_get_profile_size3 (msg=0x7f7198418558, profile=0x7f7095698f50 "\200\220i\225p\177", value=0x7f71983b4b30 "80;\230q\177", result=0x7f71983a8cf0 "\004") at dialog.c:982
pve = 0x7f71983b4b30
val_s = {s = 0x7f7198346dd0 "2777995", len = 7}
spd = 0x7f71983a8cf0
__func__ = "w_get_profile_size3"
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
#### Log Messages
When Kamailio hangs, the logs are not written to the kamailio.log file.
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
#### SIP Traffic
I have attached the TRAP file.
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
### Possible Solutions
We are expecting some kind of solution for it.
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
kamailio version is 5.5.5```
* **Operating System**:
[gdb_kamailio_trap.zip](https://github.com/user-attachments/files/16581474/g…
```
"Debian GNU/Linux 10 (buster)"```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3947
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3947(a)github.com>
### Description
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
We are running Kamailio in front of a backend farm, REGISTERs go directly to the backend. After registration, the backend sends out OPTIONS requests periodically. This worked with 5.8.2. Now when running a 5.8.3 server (taken from your apt repository), I get the following errors in the log:
```
Sep 04 14:41:36 sipproxy /usr/sbin/kamailio[124]: ERROR: tm [ut.h:235]: uri2dst2(): bad_uri: [sip:[[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]]:59580;transport=tls]
Sep 04 14:41:36 sipproxy /usr/sbin/kamailio[124]: ERROR: tm [t_fwd.c:1764]: t_forward_nonack(): failure to add branches
```
There are extra square brackets in the URI. I compared the REGISTERs from old and new Kamailio to the backend, and also the OPTIONS packets sent by the backend, the are identical except for the obvious differences.
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
* Have a Kamailio with nathelper enabled.
* Do something like this for nat detection:
```
def ksr_route_natdetect(self, msg):
KSR.force_rport()
# Checks if request goes to backend or not
if not msg.is_internal_message():
KSR.setbflag(FLB_NATB)
KSR.setflag(FLT_NATS)
if KSR.textops.is_present_hf("Contact") > 0:
if KSR.nathelper.set_contact_alias() < 0:
msg.log("Error in aliasing contact")
KSR.sl.sl_send_reply(400,"Bad request")
return False
else:
if msg.is_request():
KSR.nathelper.handle_ruri_alias()
return 1
```
* register a phone to the backend (e.g. an Asterisk server)
* send an OPTIONS packet from the backend to the registered device.
#### SIP
The REGISTER from Kamailio to the backend looks like this:
```
REGISTER sip:domain;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 100.74.11.1:5063;branch=z9hG4bK6c3e.2cedb59e7724d263255c1996d9d2d4fa.0;i=6
Via: SIP/2.0/TLS [2001:16e0:affe:affe:24a2:55a2:15bf:23d1]:61391;received=2001:16e0:affe:affe:24a2:55a2:15bf:23d1;rport=61391;branch=z9hG4bKPjAB7F905A-A6A2-491D-A456-89C8FD4C5183;alias
Max-Forwards: 69
From: <sip:dZmIQyb70tzt2J9@sdammone>;tag=AAA80708-4968-4B49-95B8-7DBCEFCC5E62
To: <sip:dZmIQyb70tzt2J9@sdammone>
Call-ID: 4922AA11-F4BA-49D0-AE64-EECF49735684
CSeq: 44208 REGISTER
User-Agent: foobar
Supported: outbound, path
Contact: <sip:dZmIQyb70tzt2J9@[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]:61391;transport=TLS;p-xs=6eb17056fba34ce6bc7d458a1a7a80ba;ob;alias=[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]~61391~3>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-00000c73bfc6>"
Expires: 300
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length: 0
Path: <sip:100.74.11.1:5063;transport=tcp;lr;xep=true>
```
The OPTIONS packet from backend to the client looks like this:
```
OPTIONS sip:dZmIQyb70tzt2J9@[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]:61391;transport=TLS;p-xs=6eb17056fba34ce6bc7d458a1a7a80ba;ob;alias=[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]~61391~3 SIP/2.0
Via: SIP/2.0/TCP 100.74.130.66:5060;rport;branch=z9hG4bKPj3e558221-2506-4a2b-9daa-ff7e73d05e8c;alias
From: <sip:dZmIQyb70tzt2J9@sdammone>;tag=18c9809a-4775-4c35-8e88-5c5a7bdcf1fe
To: <sip:dZmIQyb70tzt2J9@[2001:16e0:affe:affe:24a2:55a2:15bf:23d1];p-xs=6eb17056fba34ce6bc7d458a1a7a80ba;ob;alias=[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]~61391~3>
Contact: <sip:dZmIQyb70tzt2J9@100.74.130.66:5060;transport=TCP>
Call-ID: 2e1efbd3-9366-4542-b909-83429266b6ef
CSeq: 2989 OPTIONS
Supported: path
Route: <sip:100.74.11.1:5063;transport=tcp;lr;xep=true>
Max-Forwards: 70
User-Agent: barfoo
Content-Length: 0
```
#### Log Messages
```
Sep 04 14:41:36 sipproxy /usr/sbin/kamailio[124]: ERROR: tm [ut.h:235]: uri2dst2(): bad_uri: [sip:[[2001:16e0:affe:affe:24a2:55a2:15bf:23d1]]:59580;transport=tls]
Sep 04 14:41:36 sipproxy /usr/sbin/kamailio[124]: ERROR: tm [t_fwd.c:1764]: t_forward_nonack(): failure to add branches
```
### Possible Solutions
Downgrading to 5.8.2 again works.
I suppose, the problem comes from this commit by @vingarzan: https://github.com/kamailio/kamailio/commit/52ab6f3dcf5ad8d967be8bdecaa64ef…
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.8.3 (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_SEND_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 with gcc 11.4.0
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
Ubuntu Jammy
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3968
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3968(a)github.com>
Hi there,
I am currently using the tls_wolfssl module with kamailio and was wondering why the ability to set a cipher list was disabled.
From my own testing, uncommenting line 975 in tls_domain.c/ksr_tls_fix_domain adds the functionality and we haven't seen any issues with this so far.
Was there an issue with this when the module was first created? Should I be avoiding using this functionality? Thanks very much.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3920
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3920(a)github.com>