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/14 05:05:14 UTC

svn commit: r1804951 - in /jackrabbit/oak/trunk: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/DirectoryUtils.java oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexDumper.java

Author: chetanm
Date: Mon Aug 14 05:05:14 2017
New Revision: 1804951

URL: http://svn.apache.org/viewvc?rev=1804951&view=rev
Log:
OAK-6552 - Dump index command should fallback to dumping NodeState incase of error

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/DirectoryUtils.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/directory/DirectoryUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/DirectoryUtils.java?rev=1804951&r1=1804950&r2=1804951&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/DirectoryUtils.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/DirectoryUtils.java Mon Aug 14 05:05:14 2017
@@ -61,7 +61,7 @@ public class DirectoryUtils {
         return totalFileSize;
     }
 
-    static File createIndexDir(File baseDir, String indexPath) throws IOException {
+    public static File createIndexDir(File baseDir, String indexPath) throws IOException {
         String subDirPath = IndexRootDirectory.getIndexFolderBaseName(indexPath);
         IndexRootDirectory rootDir = new IndexRootDirectory(baseDir, false);
         List<LocalIndexDir> existingDirs = rootDir.getLocalIndexes(indexPath);

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=1804951&r1=1804950&r2=1804951&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 Mon Aug 14 05:05:14 2017
@@ -24,6 +24,8 @@ import java.io.IOException;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.oak.commons.IOUtils;
+import org.apache.jackrabbit.oak.exporter.NodeStateSerializer;
+import org.apache.jackrabbit.oak.plugins.index.lucene.directory.DirectoryUtils;
 import org.apache.jackrabbit.oak.plugins.index.lucene.directory.LuceneIndexDumper;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
@@ -61,6 +63,18 @@ public class IndexDumper {
             } catch (Exception e){
                 System.out.printf("Error occurred while performing consistency check for index [%s]%n", indexPath);
                 e.printStackTrace(System.out);
+                try {
+                    File indexDir = DirectoryUtils.createIndexDir(indexDumpDir, indexPath);
+                    NodeStateSerializer serializer = new NodeStateSerializer(root);
+                    serializer.setPath(indexPath);
+                    serializer.setSerializeBlobContent(true);
+                    serializer.serialize(indexDir);
+                    System.out.printf("    - Dumping raw node content%n", indexPath, FileUtils.sizeOf(indexDir));
+                    System.out.printf("    - %s (%s)%n", indexPath, FileUtils.sizeOf(indexDir));
+                } catch (Exception e2){
+                    System.out.printf("Error occurred while performing consistency check for index [%s]%n", indexPath);
+                    e2.printStackTrace(System.out);
+                }
             }
 
             indexCount++;