From 689a27b8f5b11f823e5c4483c62e5da23c74c134 Mon Sep 17 00:00:00 2001 From: Daniel Iancu Date: Fri, 7 Mar 2025 17:59:09 +0200 Subject: [PATCH 1/2] OAK-11570 oak-run fullGC fullGcMaxAge default value is wrongly calculated --- .../java/org/apache/jackrabbit/oak/run/RevisionsCommand.java | 4 ++-- .../jackrabbit/oak/plugins/document/RevisionsCommandTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java index 1bdf2ac8baa..fc63a390911 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java @@ -207,8 +207,8 @@ private static class RevisionsOptions extends Utils.NodeStoreOptions { .withRequiredArg().ofType(Integer.class).defaultsTo(10000); fullGcMaxAge = parser.accepts("fullGcMaxAge", "The maximum age of the document in seconds " + "to be considered for Full GC i.e. Version Garbage Collector (Full GC) logic will only consider those " + - "nodes for Full GC which are not accessed recently (currentTime - lastModifiedTime > fullGcMaxAge)") - .withOptionalArg().ofType(Long.class).defaultsTo(TimeUnit.DAYS.toMillis(1)); + "nodes for Full GC which are not accessed recently (currentTime - lastModifiedTime > fullGcMaxAge). Default: 86400 (one day)") + .withOptionalArg().ofType(Long.class).defaultsTo(TimeUnit.DAYS.toSeconds(1)); } public RevisionsOptions parse(String[] args) { diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java index 846e407162c..adaef8e28ce 100644 --- a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java +++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java @@ -201,7 +201,7 @@ public void fullGC() { assertTrue(output.contains("FullGcDelayFactory is : 2.0")); assertTrue(output.contains("FullGcBatchSize is : 1000")); assertTrue(output.contains("FullGcProgressSize is : 10000")); - assertTrue(output.contains("FullGcMaxAgeInSecs is : 86400")); + assertTrue(output.contains("FullGcMaxAgeInSecs is : 86400\n")); assertTrue(output.contains("FullGcMaxAgeMillis is : 86400000")); } From 3ffb9cc6f77718cd1b023a34e6d817d07353bb62 Mon Sep 17 00:00:00 2001 From: Daniel Iancu Date: Thu, 13 Mar 2025 12:20:38 +0200 Subject: [PATCH 2/2] OAK-11570 oak-run fullGC fullGcMaxAge default value is wrongly calculated --- .../document/RevisionsCommandTest.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java index adaef8e28ce..777dbad49ef 100644 --- a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java +++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java @@ -191,18 +191,18 @@ public void fullGC() { ns.dispose(); String output = captureSystemOut(new RevisionsCmd("fullGC", "--entireRepo")); - assertTrue(output.contains("DryRun is enabled : true")); - assertTrue(output.contains("ResetFullGC is enabled : false")); - assertTrue(output.contains("Compaction is enabled : false")); - assertTrue(output.contains("starting gc collect")); - assertTrue(output.contains("IncludePaths are : [/]")); - assertTrue(output.contains("ExcludePaths are : []")); - assertTrue(output.contains("FullGcMode is : 0")); - assertTrue(output.contains("FullGcDelayFactory is : 2.0")); - assertTrue(output.contains("FullGcBatchSize is : 1000")); - assertTrue(output.contains("FullGcProgressSize is : 10000")); + assertTrue(output.contains("DryRun is enabled : true\n")); + assertTrue(output.contains("ResetFullGC is enabled : false\n")); + assertTrue(output.contains("Compaction is enabled : false\n")); + assertTrue(output.contains("starting gc collect\n")); + assertTrue(output.contains("IncludePaths are : [/]\n")); + assertTrue(output.contains("ExcludePaths are : []\n")); + assertTrue(output.contains("FullGcMode is : 0\n")); + assertTrue(output.contains("FullGcDelayFactory is : 2.0\n")); + assertTrue(output.contains("FullGcBatchSize is : 1000\n")); + assertTrue(output.contains("FullGcProgressSize is : 10000\n")); assertTrue(output.contains("FullGcMaxAgeInSecs is : 86400\n")); - assertTrue(output.contains("FullGcMaxAgeMillis is : 86400000")); + assertTrue(output.contains("FullGcMaxAgeMillis is : 86400000\n")); } @Test @@ -210,8 +210,8 @@ public void fullGCWithMaxAgeInSecs() { ns.dispose(); String output = captureSystemOut(new RevisionsCmd("fullGC", "--fullGcMaxAge", "10000", "--entireRepo")); - assertTrue(output.contains("FullGcMaxAgeInSecs is : 10000")); - assertTrue(output.contains("FullGcMaxAgeMillis is : 10000000")); + assertTrue(output.contains("FullGcMaxAgeInSecs is : 10000\n")); + assertTrue(output.contains("FullGcMaxAgeMillis is : 10000000\n")); assertTrue(output.contains("starting gc collect")); } @@ -220,7 +220,7 @@ public void fullGCWithDelayFactor() { ns.dispose(); String output = captureSystemOut(new RevisionsCmd("fullGC", "--fullGcDelayFactor", "2.5", "--entireRepo")); - assertTrue(output.contains("FullGcDelayFactory is : 2.5")); + assertTrue(output.contains("FullGcDelayFactory is : 2.5\n")); assertTrue(output.contains("starting gc collect")); } @@ -229,7 +229,7 @@ public void fullGCWithBatchSize() { ns.dispose(); String output = captureSystemOut(new RevisionsCmd("fullGC", "--fullGcBatchSize", "200", "--entireRepo")); - assertTrue(output.contains("FullGcBatchSize is : 200")); + assertTrue(output.contains("FullGcBatchSize is : 200\n")); assertTrue(output.contains("starting gc collect")); } @@ -238,7 +238,7 @@ public void fullGCWithProgressSize() { ns.dispose(); String output = captureSystemOut(new RevisionsCmd("fullGC", "--fullGcProgressSize", "20000", "--entireRepo")); - assertTrue(output.contains("FullGcProgressSize is : 20000")); + assertTrue(output.contains("FullGcProgressSize is : 20000\n")); assertTrue(output.contains("starting gc collect")); }