[OpenSIPS-Devel] Can't get 2.3 running with voiptests properly
Bogdan-Andrei Iancu
bogdan at opensips.org
Wed Aug 2 11:03:12 EDT 2017
Thank you Maxim for your troubleshooting.
If you say this code makes a difference in your test, I have the say
that the newly added locking may do the "blocking" . To see if this is
true, while OpenSIPS is "blocked" could you run several times the
"opensipsctl trap" ?
Best regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
OpenSIPS Bootcamp 2017, Houston, US
http://opensips.org/training/OpenSIPS_Bootcamp_2017.html
On 08/02/2017 03:59 AM, Maxim Sobolev wrote:
> Hi Bogdan & Co, I think I've narrowed down failure to a specific
> revision in the 2.3 branch, see
> https://travis-ci.org/sippy/voiptests/builds/260009545:
>
> commit 1eb4ec0f78f43f6ff546de49bc72e513876fb86b
> Author: Bogdan-Andrei Iancu <bogdan at opensips.org
> <mailto:bogdan at opensips.org>>
> Date: Thu Mar 9 15:37:01 2017 +0200
>
> Added support for dynamic branch manipulation
>
> New functions were added to allow remote injecting of new branches
> into an ongoing transaction:
> * t_inject_branches(source, flags) - injects new branches;
> * t_wait_for_new_branches() - instruct transaction to wait more
> for possible new injections.
>
> Looking at the diff in question, the following piece of code looks
> suspicious, but it might be something else from that change:
>
> @@ -1244,7 +1301,18 @@ inline static int w_t_relay( struct sip_msg
> *p_msg , char *proxy, char *flags)
>
> update_cloned_msg_from_msg( t->uas.request, p_msg);
>
> - ret = t_forward_nonack( t, p_msg, p);
> + if (route_type==FAILURE_ROUTE) {
> + /* If called from failure route we need reset
> the branch counter to
> + * ignore the previous set of branches
> (already terminated) */
> + ret = t_forward_nonack( t, p_msg, p, 1/*reset*/);
> + } else {
> + /* if called from request route and the
> transaction was previously
> + * created, better lock here to avoid any
> overlapping with
> + * branch injection from other processes */
> + LOCK_REPLIES(t);
> + ret = t_forward_nonack( t, p_msg, p, 1/*reset*/);
> + UNLOCK_REPLIES(t);
> + }
> if (ret<=0 ) {
> LM_ERR("t_forward_nonack failed\n");
> ret = t_relay_inerr2scripterr();
> @@ -1262,7 +1330,8 @@ route_err:
>
> The revisions right before that work, none after does. Hopefully it
> will give you some clues. Let me know if any other info is needed.
>
> -Max
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/devel/attachments/20170802/dd43482a/attachment-0001.html>
More information about the Devel
mailing list