Hi All,
I have been experiencing a deadlock when a timeout occurs
on a t_relayed() INVITE. Going through the code I have noticed
a possible chance of deadlock (without re-entrant enabled).
Here is my thinking:
t_should_relay_response() is called with REPLY_LOCK when
the timer process fires on the fr_inv_timer (no response from
the INVITE that was relayed, other than 100 provisional) and a
408 is generated. However, from within that function there are
calls to run_failure_handlers() which in turn *could* try and
lock the reply (viz. somebody having a t_reply() call in the
cfg file - in failure route block). This would result in
another lock on the same transaction's REPLY_LOCK....
Has anybody else experienced something like this?
this is on master btw.
Cheers
Jason