[sr-dev] possible bug on kemi dlg_ontimeout

David Escartin descartin at sonoc.io
Fri May 15 09:30:47 CEST 2020


Hello Daniel

thanks a lot

Regards
david

El lun., 6 abr. 2020 a las 13:22, Daniel-Constantin Mierla (<
miconda at gmail.com>) escribió:

> Hello,
>
> apparently it was not backported to 5.3, somehow I forgot about it. I just
> did it a few minutes ago.
>
> Cheers,
> Daniel
> On 06.04.20 10:49, David Escartin wrote:
>
> Dear Daniel
>
> hope everything is ok.
> Sorry if i missed something, but has been this patch already backported
> from master to 5.3 yet?
>
> thanks  alot and regards
> david
>
> El jue., 13 feb. 2020 a las 18:12, David Escartin (<descartin at sonoc.io>)
> escribió:
>
>> hello Daniel
>>
>> i have tried it and seems fine.
>>
>> thanks a lot and regards
>> david
>>
>> El jue., 13 feb. 2020 a las 17:13, Daniel-Constantin Mierla (<
>> miconda at gmail.com>) escribió:
>>
>>> Hello,
>>>
>>> indeed keeping route block index in unsigned it can create problems. I
>>> pushed a patch for it:
>>>
>>>   -
>>> https://github.com/kamailio/kamailio/commit/6c557efc1b9cb8c880a05235c94780bbaf305073
>>>
>>> Can you try and see if now works ok? If yes, it will be backported.
>>>
>>> Cheers,
>>> Daniel
>>>
>>>
>>> On 13.02.20 13:27, David Escartin wrote:
>>>
>>> Hello all
>>>
>>> Testing dialog timeout event callback for kemi lua setup on kamailio
>>> 5.4.0-dev3 (x86_64/linux) d74157-dirty, i had some problems to perform the
>>> dlg timeroute behaviour the same as we could on native version.
>>> If i used KSR.dialog.var_sets to set $dlg_ctx(timeout_route), I saw that
>>> on a dialog timeout, the dlg_ontimeout event route was not triggered, and
>>> only the dialog callback was executed with evname dialog:end.
>>> (only executing event_route -1 on state 5)
>>> So i'm guessing that the kemi dialog var_sets is for $dlg_var only (¿?)
>>> Anycase, If i used KSR.pv.sets, i saw the kamailio was crashing
>>> .....
>>> 16(5579) DEBUG: dialog [dlg_hash.c:1013]: dlg_ref_helper(): ref dlg
>>> 0x7f9a961f5f90 with 1 -> 3
>>> 16(5579) DEBUG: dialog [dlg_handlers.c:1589]: dlg_ontimeout(): executing
>>> route -1 on timeout
>>> 22(5645) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 8
>>> 22(5645) DEBUG: <core> [core/tcp_main.c:3762]: handle_ser_child(): dead
>>> child 16, pid 5579 (shutting down?)
>>> ....
>>> Adding some debug, i could see that the call was not attempting the kemi
>>> function of line 1598 of dlg_handlers.c, and was trying the code i think
>>> was for native on line 1593.
>>> We think the issue is that the toroute is defined as unsigned
>>> dlg_hash.h: unsigned int         toroute; /*!< index of route that is
>>> executed on timeout */
>>> but after that when setting $dlg_ctx(timeout_route) with pv module, it
>>> tries to compare an integer being unsigned, so it's always true and never
>>> uses kemi
>>> with this change we made it work
>>> +                               if ((int)(dlg->toroute) > 0) {
>>> +                               /*if(dlg->toroute>0) {*/
>>> but i don't know maybe there is a better way to do it.
>>>
>>> best regards
>>> david
>>>
>>> _______________________________________________
>>> Kamailio (SER) - Development Mailing Listsr-dev at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
>>>
>>> --
>>> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>>> Kamailio Advanced Training - March 9-11, 2020, Berlin - www.asipto.com
>>> Kamailio World Conference - April 27-29, 2020, in Berlin -- www.kamailioworld.com
>>>
>>> --
> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20200515/cae90291/attachment.html>


More information about the sr-dev mailing list