[OpenSER-Devel] [ openser-Bugs-1996441 ] t_check_trans not always detects retransmissions

SourceForge.net noreply at sourceforge.net
Tue Jun 17 22:26:05 CEST 2008


Bugs item #1996441, was opened at 2008-06-17 16:26
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1996441&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Anatoly Pidruchny (apidruchny)
Assigned to: Nobody/Anonymous (nobody)
Summary: t_check_trans not always detects retransmissions

Initial Comment:
Let's say OpenSER received an INVITE request and is doing some time-consuming operation on it, such as retrieving some information from the database. At this time a re-transmission of this INVITE message comes. In this case t_check_trans() just returns false and so another OpenSER worker process will just start processing this INVITE and will start doing the same time-consuming operation. It could be highly undesirable to do this. In my opinion, there should be a way to recognize and drop the second INVITE that is a re-transmission of the first INVITE, if we have not finished processing the first INVITE yet.

It looks like t_check_trans() starts to work properly only after the first worker process finished all the time-consuming work and called t_relay(). I think one (dangerous) way of fixing this is for t_check_trans(), if it does not find the transaction, to memorize it and break the script the next time it is called with the same transaction. Another way is to add a new function (something like t_register_trans) that would just register the transaction in TM so that later t_check_trans() can break the script if it is called with this transaction.

Please move this submission to a feature request if you think it is a new feature. I just thought that it can be viewed as a bug in t_check_trans().

/Anatoly Pidruchny


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1996441&group_id=139143



More information about the Devel mailing list