From 0ee3dc5e3edc49cf62f97ddd87a40b12c59b73ff Mon Sep 17 00:00:00 2001 From: jaybeepee Date: Fri, 20 Mar 2015 13:29:34 +0200 Subject: [PATCH] modules/tm: restore code to set blind uac branch last_reply > 200 --- modules/tm/t_suspend.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/tm/t_suspend.c b/modules/tm/t_suspend.c index 4abfe72270e..cc4dd6141cd 100644 --- a/modules/tm/t_suspend.c +++ b/modules/tm/t_suspend.c @@ -215,10 +215,15 @@ int t_continue(unsigned int hash_index, unsigned int label, return 1; } - /*we really don't need this next line anymore otherwise we will - never be able to forward replies after a (t_relay) on this branch. - We want to try and treat this branch as 'normal' (as if it were a normal req, not async)' */ - //t->uac[branch].last_received=500; + /* Set last_received to something >= 200, ++ * the actual value does not matter, the branch ++ * will never be picked up for response forwarding. ++ * If last_received is lower than 200, ++ * then the branch may tried to be cancelled later, ++ * for example when t_reply() is called from ++ * a failure route => deadlock, because both ++ * of them need the reply lock to be held. */ + t->uac[branch].last_received=500; uac = &t->uac[branch]; } /* else