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