Uploaded image for project: 'OpenDJ'
  1. OpenDJ
  2. OPENDJ-3343

Invalid Conflict resolution on Add sequence when Parent & Child are added on different replica

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.0.0, 3.5.0, 3.0.0, 2.6.2
    • Fix Version/s: 6.5.0
    • Component/s: replication
    • Labels:
    • Support Ticket IDs:
    • Story Points:
      1

      Description

      When adding a sequence of entries, parent, child, grand-child... and the grand-child entry is added on a different server than its ancestors, the conflict resolution is incorrect and the grand-child entry is hook to the top entry of the backend.

      The issue is exercised when the Adds are replicated to a 3rd replica (which may be a little bit behind).

      Here's the result when adding 5 entries one under each other, but the 4th one is done on server 2.

      o=test
      dc=dependency1,o=test
      dc=dependency2,dc=dependency1,o=test
      dc=dependency3,dc=dependency2,dc=dependency1,o=test
      entryuuid=11111111-1111-1111-1111-000000000005+dc=dependency4,o=test
      dc=dependency5,entryuuid=11111111-1111-1111-1111-000000000005+dc=dependency4,o=test
      
      

      I've created a unit test for this issue: org.opends.server.replication.DependencyTest.addMultipleServersDependencyTest()
      When committed, the test will be disabled by default.
      To run it, enable the test and run:

      mvn install -Pprecommit -DfailIfNoTests=false -Dit.test=org.opends.server.replication.DependencyTest.addMultipleServersDependencyTest
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ludo Ludovic Poitou
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: