Hello Richard,
with the commit 16e763c32d7a2b9fc451185e028a90b3be758f65 you removed the setting of last_received code for the branch used for suspending the transaction (blind uac).
You added some comments:
+ /*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;
But a t_relay() will create a new uac/branch, not reusing it.
Do you have some specific use cases reusing that suspended branch? If not, then I will revert the above change and set the last_received to make the branch inactive. If yes, we have to identify the case and set the last received for the rest.
On a report from Alex Balashov with a crash, the suspended branch is picked for handling cancel and apparently messes some stuff. There is another active branch due to a t_relay() after t_continue().
Cheers, Daniel