You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2016/06/07 14:00:45 UTC
svn commit: r1747240 -
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Author: mduerig
Date: Tue Jun 7 14:00:45 2016
New Revision: 1747240
URL: http://svn.apache.org/viewvc?rev=1747240&view=rev
Log:
OAK-4438: Segments created by an unsuccessful compaction run should get cleaned
clean leftovers segment of a failed compaction irrespective of whether force compaction is enabled or not
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1747240&r1=1747239&r2=1747240&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java Tue Jun 7 14:00:45 2016
@@ -886,6 +886,7 @@ public class FileStore implements Segmen
GC_COUNT, head.getRecordId(), before.getRecordId(), after.getRecordId());
before = head;
}
+
if (!success) {
gcListener.info("TarMK GC #{}: compaction gave up compacting concurrent commits after {} cycles.",
GC_COUNT, cycles - 1);
@@ -895,14 +896,7 @@ public class FileStore implements Segmen
if (!success) {
gcListener.warn("TarMK GC #{}: compaction failed to force compact remaining commits. " +
"Most likely compaction didn't get exclusive access to the store or was " +
- "prematurely cancelled. Cleaning up.",
- GC_COUNT);
- cleanup(new Predicate<Integer>() {
- @Override
- public boolean apply(Integer generation) {
- return generation == newGeneration;
- }
- });
+ "prematurely cancelled.", GC_COUNT);
}
}
}
@@ -918,6 +912,14 @@ public class FileStore implements Segmen
GC_COUNT, watch, watch.elapsed(MILLISECONDS), cycles - 1);
return true;
} else {
+ gcListener.info("TarMK GC #{}: cleaning up after failed compaction", GC_COUNT);
+ cleanup(new Predicate<Integer>() {
+ @Override
+ public boolean apply(Integer generation) {
+ return generation == newGeneration;
+ }
+ });
+
gcListener.compacted(FAILURE, newGeneration);
gcListener.info("TarMK GC #{}: compaction failed after {} ({} ms), and {} cycles",
GC_COUNT, watch, watch.elapsed(MILLISECONDS), cycles - 1);