Author: chetanm
Date: Wed Aug  9 05:04:28 2017
New Revision: 1804488

URL: http://svn.apache.org/viewvc?rev=1804488&view=rev
Log:
OAK-6525 - Index consistency checker should check all indexes even after failure

Make logic more resilient for exceptions

Modified:
    
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexConsistencyCheckPrinter.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDumper.java

Modified: 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java?rev=1804488&r1=1804487&r2=1804488&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexInfoProvider.java
 Wed Aug  9 05:04:28 2017
@@ -91,7 +91,14 @@ public class LuceneIndexInfoProvider imp
     @Override
     public boolean isValid(String indexPath) throws IOException {
         IndexConsistencyChecker checker = new 
IndexConsistencyChecker(nodeStore.getRoot(), indexPath, workDir);
-        return checker.check(IndexConsistencyChecker.Level.BLOBS_ONLY).clean;
+
+        boolean result = false;
+        try{
+            result = 
checker.check(IndexConsistencyChecker.Level.BLOBS_ONLY).clean;
+        } catch (Exception e) {
+            log.warn("Error occurred while performing consistency check for 
{}", indexPath, e);
+        }
+        return result;
     }
 
     private void computeAsyncIndexInfo(NodeState idxState, String indexPath, 
LuceneIndexInfo info) {

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexConsistencyCheckPrinter.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexConsistencyCheckPrinter.java?rev=1804488&r1=1804487&r2=1804488&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexConsistencyCheckPrinter.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexConsistencyCheckPrinter.java
 Wed Aug  9 05:04:28 2017
@@ -75,6 +75,7 @@ class IndexConsistencyCheckPrinter imple
                 }
                 System.out.printf("%s => %s%n", indexPath, result.clean ? 
"valid" : "invalid <==");
             } catch (Exception e) {
+                invalidIndexes.add(indexPath);
                 pw.printf("Error occurred while performing consistency check 
for index [%s]%n", indexPath);
                 e.printStackTrace(pw);
             }

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDumper.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDumper.java?rev=1804488&r1=1804487&r2=1804488&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDumper.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDumper.java
 Wed Aug  9 05:04:28 2017
@@ -55,8 +55,13 @@ public class IndexDumper {
                 continue;
             }
             LuceneIndexDumper dumper = new LuceneIndexDumper(root, indexPath, 
indexDumpDir);
-            dumper.dump();
-            System.out.printf("    - %s (%s)%n", indexPath, 
IOUtils.humanReadableByteCount(dumper.getSize()));
+            try {
+                dumper.dump();
+                System.out.printf("    - %s (%s)%n", indexPath, 
IOUtils.humanReadableByteCount(dumper.getSize()));
+            } catch (Exception e){
+                System.out.printf("Error occurred while performing consistency 
check for index [%s]%n", indexPath);
+                e.printStackTrace(System.out);
+            }
 
             indexCount++;
             totalSize += dumper.getSize();


Reply via email to