Comment #3 on issue 1986 by vladimir.ralev: [MSS] New best final proxy
responses for reINVITE do not overwrite older responses from previous INVITE
http://code.google.com/p/mobicents/issues/detail?id=1986
A few notes on this issue.
1. The logs show that there is INVITE where the ACK is stuck at the callid
semaphore at jsip (prior to the fix for
http://code.google.com/p/mobicents/issues/detail?id=1810). This causes the
ACK to be retransmitted (successfully acquiring the semaphore the second
time)
2. The retransmission of the ACK was preceded by OK retransmission. A bug
in proxy makes this OK stick as bestResponse forever in this session
without being cleaned up.
3. Subsequent reINVITE in proxy goes the same way as initial INVITE, same
for responses, so the whole logic of collecting and waiting for branches is
repeated, thus the bestResponse that was stuck from before is used when
responding to the new reINVITE transaction. This is only noticeable when
the direction of the transaction is different from the previous INVITE tx,
otherwise there is no difference since the Vias and CSeq etc are
overwritten. The problem is noticeable only from the other direction
because From and To are swapped.
Overall 3 essential sanity checks failed to make this bug possible.