[Serdev] Re: [Devel] tm bug in t_hooks.c

Federico Giannici giannici at neomedia.it
Thu Dec 8 15:04:54 CET 2005


Bogdan-Andrei Iancu wrote:
> Federico Giannici wrote:
> 
>> Bogdan-Andrei Iancu wrote:
>>
>>> Hi Federico,
>>>
>>> I'm afraid you have a script error - you called twice some functions 
>>> which create transactions...The error is generate most probably by 
>>> t_relay() which found the transaction already created in the script 
>>> (maybe via t_newtran).
>>
>>
>>
>> Yes, I know it.
>> It is the UAC module that create a transaction (I don't know if in any 
>> case or only in some cases).
>>
> the uac module does not create a transaction - uac_replace_from() 
> performs just text mangling and installs some hooks.

You are right, this problem doesn't seem to be related to the UAC module 
(I was confused by the previous AVPs vanishing bug).

Anyway, when a retrasmission of an INVITE reaches the t_relay() 
function, the following error appear:

Dec  8 14:56:18 eowyn OpenSER[21824]: ERROR: t_newtran: transaction 
already in process 0x50132480
Dec  8 14:56:18 eowyn OpenSER[21824]: ERROR: sl_reply_error used: I'm 
terribly sorry, server error occurred (1/SL)

And the UAC closes the call (because of the 500 error)!

Please note that there is no t_newtran() in the entire script, and the 
problem occours only with the retrasmissions!

What is the supposed way to avoid this?


Thanks.



>> So when the message arrives at the classic t_relay() part of the 
>> script, I cannot know if a transactionis is already established.
>>
>>
>>> To be able to help, please send the script (privately, if necessary) 
>>> to take a look.
>>
>>
>>
>> If you still think that there is problem somewhere, I will send the 
>> script to you...
>>
>>
>> Bye.
>>
>>
>> P.S.
>> I sent a similar question at "serusers at iptel.org", but still no 
>> usefull reply...
>>
>>
>>
>>
>>> Federico Giannici wrote:
>>>
>>>> Bogdan-Andrei Iancu wrote:
>>>>
>>>>> Hi Frederico,
>>>>>
>>>>> that's good..one more down....
>>>>
>>>>
>>>>
>>>> Well.... the AVPs are no more disappearing, but I still have some 
>>>> problem with the reinvites...
>>>>
>>>> It seems that uac_replace_from() creates a transaction when an 
>>>> INVITE retrasmission is received. Infact in that case the following 
>>>> errors are logged for the retrasmitted INVITEs:
>>>>
>>>> Dec  5 18:49:25 eowyn OpenSER[5654]: ERROR: t_newtran: transaction 
>>>> already in process 0x502a56f8
>>>> Dec  5 18:49:25 eowyn OpenSER[5654]: ERROR: sl_reply_error used: I'm 
>>>> terribly sorry, server error occurred (1/SL)
>>>>
>>>> This is generated by this standard code:
>>>>
>>>> if ( !t_relay() ) {
>>>>     sl_reply_error();
>>>> }
>>>>
>>>> I thought that I could find the retrasmissions (with the 
>>>> t_lookup_request() function) and use the t_forward_nonack_uri() 
>>>> function in that case, but I got the following error:
>>>>
>>>> Dec  5 18:47:29 eowyn OpenSER[26647]: ERROR:tm:t_forward_nonack: no 
>>>> branch for forwarding
>>>>
>>>> Obviously, I have not enought undestanding of TM functions and 
>>>> transactions in general.
>>>>
>>>> So, the question is: can anybody post a correct fragment of script 
>>>> code that relay a message, correctly handling retrasmissions?
>>>>
>>>> Otherwise, could I simply discard retrasmissions (with a simple exit)?
>>>> And how I can recognize retrasmissions? Is t_lookup_request() the 
>>>> correct function for a test?
>>>>
>>>>
>>>> Thanks.
>>>>
>>>>
>>>>> Federico Giannici wrote:
>>>>>
>>>>>> Bogdan-Andrei Iancu wrote:
>>>>>>
>>>>>>> Hi Cesc,
>>>>>>>
>>>>>>> right!! as the transaction list is set all the time (disregarding 
>>>>>>> the presence of callbacks), it should be also unset all the time....
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> This solves the bug of the AVPs disappearing with retrasmitted 
>>>>>> INVITES too!!!
>>>>>>
>>>>>> Bogdan, now you can remove that bug from the ones to search for...
>>>>>>
>>>>>> Thank you Cesc.



-- 
___________________________________________________
     __
    |-                      giannici at neomedia.it
    |ederico Giannici      http://www.neomedia.it
___________________________________________________



More information about the Devel mailing list