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);
         }
     }
 


Reply via email to