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

replication purge delay doesn't purge cn=changelog in long duration stress tests

    Details

    • Type: Bug
    • Status: Done
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 2.6.3, 2.6.2, 2.6.1, 2.6.0
    • Fix Version/s: 3.0.0, 2.8.0
    • Component/s: None
    • Labels:
      None

      Description

      Scenario

      1. Install two instances of OpenDJ in version 2.6.3:
      2. Enable replication and set replication purge-delay to 16800 seconds
      3. Run addrate with duration 50400 seconds

      addrate -h localhost -p 1389 -D "cn=Directory Manager" -w password -d 50400 -S -C random -c 40 -i 30 -s 10000 addrate.template
      

      4. Export data from both instances and check they are same.
      5. Set replication purge delay to 120s and wait 240 seconds
      6. Set replication purge delay to 10d
      7. Do an ldapsearch on cn=changelog on both instances
      Each output of ldapsearch is big around 9.7GB and comparing them with ldif-diff throws an exception

      Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded at org.forgerock.opendj.ldap.ByteStringBuilder.toByteString(ByteStringBuilder.java:1137) at org.forgerock.opendj.ldap.Base64.decode(Base64.java:308) at org.forgerock.opendj.ldap.ByteString.valueOfBase64(ByteString.java:169) at org.forgerock.opendj.ldif.AbstractLDIFReader.parseSingleValue(AbstractLDIFReader.java:260) at org.forgerock.opendj.ldif.AbstractLDIFReader.readLDIFRecordAttributeValue(AbstractLDIFReader.java:498) at org.forgerock.opendj.ldif.LDIFEntryReader.getNextEntry(LDIFEntryReader.java:403) at org.forgerock.opendj.ldif.LDIFEntryReader.hasNext(LDIFEntryReader.java:178) at org.forgerock.opendj.ldif.LDIF.readEntriesAsList(LDIF.java:800) at org.forgerock.opendj.ldif.LDIF.diff(LDIF.java:170) at com.forgerock.opendj.ldap.tools.LDIFDiff.run(LDIFDiff.java:192) at com.forgerock.opendj.ldap.tools.LDIFDiff.main(LDIFDiff.java:70)
      

      I compared changelog with dbdump and I noticed they had different numbers of entries.

      Expected behavior

      I expect cn=changelog purged. After the wait of 240 seconds.

      Actual behavior

      The changelog is not purged and is once time bigger than with OpenDJ 2.6.0.

        Attachments

        1. jstack_instance1.txt
          161 kB
        2. jstack_instance2.txt
          163 kB
        3. jstack_long_instance1.txt
          174 kB
        4. jstack_long_instance2.txt
          171 kB

          Issue Links

            Activity

              People

              • Assignee:
                matthew Matthew Swift
                Reporter:
                ondrej.fuchsik Ondrej Fuchsik
                Dev Assignee:
                Matthew Swift
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: