Author: mduerig
Date: Tue Jul 19 13:43:49 2016
New Revision: 1753387
URL: http://svn.apache.org/viewvc?rev=1753387&view=rev
Log:
OAK-4287: Disable / remove SegmentBufferWriter#checkGCGen
Add feature flag disable-generation-check to disable the gc generation check
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java?rev=1753387&r1=1753386&r2=1753387&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
Tue Jul 19 13:43:49 2016
@@ -70,6 +70,8 @@ import org.slf4j.LoggerFactory;
public class SegmentBufferWriter implements WriteOperationHandler {
private static final Logger LOG =
LoggerFactory.getLogger(SegmentBufferWriter.class);
+ private static final boolean DISABLE_GENERATION_CHECK =
Boolean.getBoolean("disable-generation-check");
+
/**
* The set of root records (i.e. ones not referenced by other records)
* in this segment.
@@ -239,16 +241,18 @@ public class SegmentBufferWriter impleme
// FIXME OAK-4287: Disable / remove SegmentBufferWriter#checkGCGeneration
// Disable/remove this in production
private void checkGCGeneration(SegmentId id) {
- try {
- if (isDataSegmentId(id.getLeastSignificantBits())) {
- if (id.getSegment().getGcGeneration() < generation) {
- LOG.warn("Detected reference from {} to segment {} from a
previous gc generation.",
- info(this.segment), info(id.getSegment()), new
Exception());
+ if (!DISABLE_GENERATION_CHECK) {
+ try {
+ if (isDataSegmentId(id.getLeastSignificantBits())) {
+ if (id.getSegment().getGcGeneration() < generation) {
+ LOG.warn("Detected reference from {} to segment {}
from a previous gc generation.",
+ info(this.segment), info(id.getSegment()), new
Exception());
+ }
}
+ } catch (SegmentNotFoundException snfe) {
+ LOG.warn("Detected reference from {} to non existing segment
{}",
+ info(this.segment), id, snfe);
}
- } catch (SegmentNotFoundException snfe) {
- LOG.warn("Detected reference from {} to non existing segment {}",
- info(this.segment), id, snfe);
}
}