Last updated on
17 May 2021
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
- Increase the -Xms16G -Xmx16G and retry the offline compaction.
- Make sure that the oak-run tool version matches the oak-core version installed in your AEM instance.
- See this article with more tips on how to reduce memory utilization of offline compaction.