[Serdev] CANCEL in failure_route screws up SER

Andreas Granig andreas.granig at inode.info
Thu Sep 15 23:17:17 UTC 2005


Hi Jan,

Seems that Daniel and Klaus were able to reproduce and fix the problem 
below in openser. Is there any chance to port the fix to SER HEAD and 
0.9.x since it's a rather serious problem?

Andy

-------- Original Message --------
Subject: Re: [Devel] Re: [Users] cvs is frozen
Date: Thu, 15 Sep 2005 21:41:46 +0300
From: Daniel-Constantin Mierla <daniel at voice-system.ro>
Reply-To: daniel at voice-system.ro
To: Andreas Granig <andreas.granig at inode.info>,  Klaus Darilion 
<klaus.mailinglists at pernau.at>
CC: devel at openser.org,  users at openser.org
References: <4321CFBF.6000703 at voice-system.ro> 
<4325403A.8050605 at pernau.at> <43254AC7.8080205 at inode.info>

Hello,

On 09/12/05 12:30, Andreas Granig wrote:

> Klaus Darilion wrote:
>
>> 1. Sometime the UDP threads get screwed up. Fifo and TCP threads are 
>> still working (also TCP in and UDP out) but UDP packets sent to 
>> openser are not processed.
>
>
> Could this be related to the problem I reported here?
> http://lists.iptel.org/pipermail/serusers/2005-September/023638.html
>
> What exactly does happen in your case? Does the load also go up? 
> What's the SIP message which screws up SER?

this issue should be solved in the latest cvs (committed just a few time
ago). Please try it and let us know if it works.

The deadlock occurred when handling CANCELs within a failure_route. The
failure_route is executed under a lock which protects the replies for
that transaction. As RFC states, a stateful proxy processes the CANCEL
hop by hop and sends back 200OK immediately => this needed to acquire
same lock --  all this processing happens in t_relay*() functions.

Now, no reply is sent for a CANCEL from failure_route (it is already
sent when the CANCEL arrived) or if a reply was already sent (due to
misconfiguration or whatever reason).

Thanks again to Klaus for testing and providing access to affected system.

Cheers,
Daniel

>




More information about the Serdev mailing list