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 ch...@apache.org on 2017/08/09 05:04:28 UTC

svn commit: r1804488 - in /jackrabbit/oak/trunk: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ oak-run/src/main/java/org/apache/jackrabbit/oak/index/

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