Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-6667

Closing a source sequence in WS-RM may lead to inconsistent sequence status

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.7, 3.1.4
    • 3.1.5, 3.0.8
    • WS-* Components
    • None
    • Unknown

    Description

      This issue affets WS-RM feature used with RMStore.

      When the source sequence is closed by an out-of-band close message (sending CloseSequence in WS-RM 1.1 or sending an empty LastMessage in WS-RM 1.0), the sequence status in the RMStore is not updated. As a result, when the endpoint is shutdown and restarted, it will find the old sequence which was actually closed and use that sequence to send new messages. This may lead to message loss at the server under WS-RM 1.0 or to a permanent error under WS-RM 1.1.

      More precisely, this issue can happen when the following conditions hold.

      1. the sequence is closed either upon the shutdown of the WS-RM endpoint (e.g., when its terminateOnShutdown is set to true) or when the closeSequence operation is invoked by other means (e.g., over JMX console)
      2. there is at least one unacknowledged message still stored in the sequence
      3. a persistent storage is used

      Although the underlining issue itself also existed in CXF 2.7.x, because the default value of termninateOnShutdown property in CXF 3.0 was changed [1] from false to true, this issue can be observed when migrating scenarios from CXF 2.7.x to CXF 3.x.x.

      [1]
      https://github.com/apache/cxf/commit/98d04f03af91e51e3e700f6ddb1c5fb91af07495

      Attachments

        Activity

          People

            ay Akitoshi Yoshida
            ay Akitoshi Yoshida
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: