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

Changelog range searches miss entries

    Details

    • Type: Bug
    • Status: Done
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.0.0
    • Fix Version/s: 6.5.0
    • Component/s: replication
    • Labels:
    • Epic Link:
    • Story Points:
      1
    • Support Ticket IDs:

      Description

      The customer reports that a changelog search of:

      (&(objectClass=*)(changeNumber>=1983470)(changeNumber<=1983472)))

      which should return 3 changes, only returns the 1983470 and 1983472 changes. However, this changelog search:

      &(objectclass=*)(changeNumber=1983471))

      returns the missing change.

       

      Adding some custom debug code to ChangelogBackend.findReplicaUpdateMessage() shows that we call the method with 3 different CSNs, but for the second CSN the replicaUpdatesCursor seems to look at the wrong database.

      method={findReplicaUpdateMessage(ChangelogBackend.java:1094)} starts for 00000160702b92cb187400002365 (6260)
      method={findReplicaUpdateMessage(ChangelogBackend.java:1112)} ends after 1 searching {6260=1} with found for 00000160702b92cb187400002365
      method={findReplicaUpdateMessage(ChangelogBackend.java:1094)} starts for 00000160702b92c92d7a000046f6 (11642)
      method={findReplicaUpdateMessage(ChangelogBackend.java:1105)} ends after 1 searching {6260=1} with null for 00000160702b92c92d7a000046f6
      method={findReplicaUpdateMessage(ChangelogBackend.java:1094)} starts for 00000160702b92cb187400002366 (6260)
      method={findReplicaUpdateMessage(ChangelogBackend.java:1112)} ends after 1 searching {6260=1} with found for 00000160702b92cb187400002366
      

      The return "with null" is this case in findReplicaUpdateMessage():

                  if (compareIndexWithUpdateMsg < 0) {
                      // Either update message has been purged or baseDN has been removed from changelogDB,
                      // ignore current index record and go to the next one
                      return null;
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                JnRouvignac Jean-Noël Rouvignac
                Reporter:
                cjr Chris Ridd
                Dev Assignee:
                Jean-Noël Rouvignac
              • Votes:
                2 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: