Uploaded image for project: 'Java DCP Client'
  1. Java DCP Client
  2. JDCP-109

Rollback mitigation: event buffer erroneously cleared in openStream response handler

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.17.0
    • Fix Version/s: 0.19.0
    • Labels:
      None
    • Story Points:
      1

      Description

      When rollback mitigation is enabled, it's somehow it's possible for data events to be received and buffered prior to the processing of the openStream response. Those data events get lost because the openStream response handler clears the event buffer.

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

            Hide
            david.nault David Nault added a comment -

            The DCP events come over the wire in the expected order:

            1. Open Stream response
            2. Snapshot marker
            3. Data event

            But the order of handling seems to be non-deterministic... sometimes the open stream promise is fulfilled first and the events come through fine; other times the promise is fulfilled after the other events have been handled.

            Show
            david.nault David Nault added a comment - The DCP events come over the wire in the expected order: 1. Open Stream response 2. Snapshot marker 3. Data event But the order of handling seems to be non-deterministic... sometimes the open stream promise is fulfilled first and the events come through fine; other times the promise is fulfilled after the other events have been handled.
            Hide
            david.nault David Nault added a comment -

            This is a regression caused by the fix for JDCP-93.

            Instead of clearing the buffer when the stream is opened, we can achieve the same result by clearing the buffer when the channel disconnects.

            Show
            david.nault David Nault added a comment - This is a regression caused by the fix for JDCP-93 . Instead of clearing the buffer when the stream is opened, we can achieve the same result by clearing the buffer when the channel disconnects.

              People

              Assignee:
              david.nault David Nault
              Reporter:
              david.nault David Nault
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                    PagerDuty