[SR-Users] Possible problem with multiple threads handling same SIP message

Dirk Teurlings - SIGNET B.V. dteurlings at signet.nl
Tue Jul 14 12:15:11 CEST 2015


Hello,

Running kamailio 4.2.5 for a few weeks now, coming from 4.2.3. Since the 
upgrade we increased the logging substantially in our routing to get 
more insight into what is going on.

We noticed that in a few cases the log showed a SIP message was being 
threated by multiple forks, each considering if it was a non-existing 
call. e.g.

Jul  9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17170]: INFO: <script>: 
28ca767d5524f7ac095efcd02d6995f5 at 1.2.3.4:5060 - CB, Checking service 
restrictions
Jul  9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17170]: INFO: <script>: 
28ca767d5524f7ac095efcd02d6995f5 at 1.2.3.4:5060 - CB, Checking 
international restrictions
Jul  9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17171]: INFO: <script>: 
28ca767d5524f7ac095efcd02d6995f5 at 1.2.3.4:5060 - CB, Checking service 
restrictions
Jul  9 13:19:32 son-sbc1-dc1 /usr/sbin/kamailio[17171]: INFO: <script>: 
28ca767d5524f7ac095efcd02d6995f5 at 1.2.3.4:5060 - CB, Checking 
international restrictions

As you can see this shows different threads handling the exact same 
callid (printed by $ci). And both run the same checks in our routing 
plan. The main problem is, I'm not able to reproduce this on the 
testplatform, but only see it happen on the main systems. Also, it 
doesn't happen that often, in this case there are about maybe 10 similar 
calls like this over the run of a few weeks. This case show the call 
being handled by 2 threads, but we've even seen with one call it being 
handled by 4 threads, all with the same $ci and the same messages, just 
different PIDs.

I've checked and made sure the routing isn't recursively calling itself. 
But even if that was true, I would imagine the same PID for all the log 
entries.

Running production in debug mode isn't an option, as it will interfere 
too much with the day-to-day business. So I'm hoping to get a few 
pointers here maybe, I'm happy to look at the source code more in depth, 
I just need a little help in the right direction to not get lost in 
other code.

Any help is much appreciated.

Cheers,
Dirk



More information about the sr-users mailing list