jsip
  1. jsip
  2. JSIP-384

ACK dropped due to overlapping INFO transaction

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: current
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Scenario (A is already in call with B):

      • A sends a reINVITE (cseq = 2)
      • B responds with a 200 OK
      • A sends an INFO (cseq = 3)
      • B responds with a 200 OK (cseq = 3)
      • A sends an ACK
      • B ignores the ACK

      When B was sending the 200 OK for the INFO request the stack updated its state:
      gov.nist.javax.sip.stack.SIPDialog| sipDialog: setLastResponse:gov.nist.javax.sip.stack.SIPDialog@66ed1c6b lastResponse = 200 response SIP/2.0 200 OK

      Later B's stack dropped the ACK with the following messages:
      gov.nist.javax.sip.DialogFilter| Processing ACK for dialog gov.nist.javax.sip.stack.SIPDialog@66ed1c6b

      gov.nist.javax.sip.stack.SIPDialog| SIPDialog::isAckSeen:lastAckReceivedCSeqNumber = 1 remoteCSeqNumber = 3

      gov.nist.javax.sip.stack.SIPDialog| SIPDialog::handleAck: lastResponseCSeqNumber = 3 ackTxCSeq 2

      gov.nist.javax.sip.stack.SIPDialog| INVITE transaction not found

      gov.nist.javax.sip.DialogFilter| Dropping ACK - cannot find a transaction or dialog

        Activity

        Hide
        vralev added a comment -

        I checked in the fix, pending some testing for the weekend now. The fix should be safe, feel free to test from trunk or wait for next build spin.

        Show
        vralev added a comment - I checked in the fix, pending some testing for the weekend now. The fix should be safe, feel free to test from trunk or wait for next build spin.
        Hide
        jcarley added a comment -

        Great news - thanks! I would prefer to use distribution from a successful build - I checked the Jenkins build and the previous build failed in the new unit test, but I see you made a commit after this in the unit test code. Is the build automatic or do you need to trigger it manually?

        Show
        jcarley added a comment - Great news - thanks! I would prefer to use distribution from a successful build - I checked the Jenkins build and the previous build failed in the new unit test, but I see you made a commit after this in the unit test code. Is the build automatic or do you need to trigger it manually?
        Hide
        jsaniga added a comment -

        The fix does not work if B rejects the INFO (e.g. with 488) (step #4 of the scenario).

        Show
        jsaniga added a comment - The fix does not work if B rejects the INFO (e.g. with 488) (step #4 of the scenario).
        Hide
        vralev added a comment -

        Hm ok, I will take care of it.

        Show
        vralev added a comment - Hm ok, I will take care of it.
        Hide
        vralev added a comment -

        I checked in another fix, but it's not final yet. Worked for me, but it needs another test.

        Show
        vralev added a comment - I checked in another fix, but it's not final yet. Worked for me, but it needs another test.

          People

          • Assignee:
            vralev
            Reporter:
            jsaniga
          • Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated: