Qpid
  1. Qpid
  2. QPID-4441

[Java broker] queue declare arguments are lost during v6 schema update for the optional bdbstore

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.18
    • Fix Version/s: 0.19, 0.20
    • Component/s: Java Broker
    • Labels:
      None

      Description

      The queue declare arguments are lost during v5 -> v6 store schema update for the optional bdbstore. This will present itself in a variety of ways, such as a DLQ losing the marker argument used to prevent chained DLQ creation, and also in Priority and Sorted queues becoming regular queues.

      As part of the schema update, the old FieldTable binary encoding for the queue arguments is transitioned to a property within the larger JSON ConfiguredObject encoding. This process makes use of an intermediate FieldTable to which it does an addAll() based copy of the original FieldTable and then potentially adds a new description argument. This addAll() fails to copy the previous properties due to a defect in the method, wherby the source FieldTables lack of use after creation from encoded bytes means they have yet to be decoded and this is in effect mistaken as it being an empty FieldTable.

        Activity

        Hide
        Robbie Gemmell added a comment - - edited

        Committed a test and fix for the underlying FieldTable#addAll(..) defect: http://svn.apache.org/viewvc?view=revision&revision=1410949

        Still need to add unit tests to the bdbstore UpgradeFrom5to6Test to verify its effectiveness (requires first updating the v4 and v5 store schema test data).

        Show
        Robbie Gemmell added a comment - - edited Committed a test and fix for the underlying FieldTable#addAll(..) defect: http://svn.apache.org/viewvc?view=revision&revision=1410949 Still need to add unit tests to the bdbstore UpgradeFrom5to6Test to verify its effectiveness (requires first updating the v4 and v5 store schema test data).
        Hide
        Alex Rudyy added a comment -

        I reviewed all the changes and Robbie and I worked together on improving the BDB store upgrade tests to cover the upgrade cases affected by the issue.

        The changes to the tests have been committed in the revision http://svn.apache.org/viewvc?view=revision&revision=1412203

        Show
        Alex Rudyy added a comment - I reviewed all the changes and Robbie and I worked together on improving the BDB store upgrade tests to cover the upgrade cases affected by the issue. The changes to the tests have been committed in the revision http://svn.apache.org/viewvc?view=revision&revision=1412203
        Hide
        Justin Ross added a comment -

        Reviewed by Alex. Approved for 0.20.

        Show
        Justin Ross added a comment - Reviewed by Alex. Approved for 0.20.
        Hide
        Robbie Gemmell added a comment -

        The additional test changes have now been merged to the 0.20 release branch.

        Show
        Robbie Gemmell added a comment - The additional test changes have now been merged to the 0.20 release branch.
        Hide
        Robbie Gemmell added a comment -

        Another test-only change, adding some new systests:
        http://svn.apache.org/viewvc?rev=1415127&view=rev

        Show
        Robbie Gemmell added a comment - Another test-only change, adding some new systests: http://svn.apache.org/viewvc?rev=1415127&view=rev
        Hide
        Alex Rudyy added a comment -

        The new tests introduced in revision 1415127 look good for me. As the revision introduces only tests it is safe to commit them into 0.20 release branch.

        Show
        Alex Rudyy added a comment - The new tests introduced in revision 1415127 look good for me. As the revision introduces only tests it is safe to commit them into 0.20 release branch.
        Hide
        Justin Ross added a comment -

        New tests reviewed by Alex and approved for 0.20.

        Show
        Justin Ross added a comment - New tests reviewed by Alex and approved for 0.20.

          People

          • Assignee:
            Robbie Gemmell
            Reporter:
            Robbie Gemmell
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development