Offline compaction fails with OutOfMemoryError exception causing the repository to grow without completing the cleanup phase.

Cause

Heap memory runs out during offline compaction and it fails with the error below:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects
at java.lang.StringBuffer.toString(StringBuffer.java:671)
at java.io.RandomAccessFile.readLine(RandomAccessFile.java:936)
at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.<init>(FileS tore.java:373)
at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.<init>(FileS tore.java:76)
at org.apache.jackrabbit.oak.plugins.segment.file.FileStore$Builder.crea te(FileStore.java:286)
at org.apache.jackrabbit.oak.run.Main.openFileStore(Main.java:407)
at org.apache.jackrabbit.oak.run.Main.compact(Main.java:372)
at org.apache.jackrabbit.oak.run.Main.main(Main.java:147)

Resolution

  1. Increase the -Xms16G -Xmx16G and retry the offline compaction.
  2. Make sure that the oak-run tool version matches the oak-core version installed in your AEM instance.
  3. See this article with more tips on how to reduce memory utilization of offline compaction.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy