You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2016/12/30 15:57:26 UTC

[50/50] [abbrv] lucene-solr:jira/solr-9854: SOLR-9854 MetricsDirectoryFactory needs to delegate all methods. Fix tests.

SOLR-9854 MetricsDirectoryFactory needs to delegate all methods. Fix tests.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/2531fc8a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/2531fc8a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/2531fc8a

Branch: refs/heads/jira/solr-9854
Commit: 2531fc8ae6b9dd9cce8c4bfee71a5ddac6f26fe1
Parents: 1038016
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Fri Dec 30 16:55:41 2016 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Fri Dec 30 16:55:41 2016 +0100

----------------------------------------------------------------------
 .../solr/core/MetricsDirectoryFactory.java      | 83 +++++++++++++++++++-
 .../test/org/apache/solr/core/TestConfig.java   |  2 +
 .../solr/handler/TestReplicationHandler.java    | 13 ++-
 .../admin/CoreMergeIndexesAdminHandlerTest.java | 10 ++-
 .../solr/handler/admin/MetricsHandlerTest.java  |  6 +-
 .../apache/solr/update/SolrIndexConfigTest.java |  1 +
 .../solr/update/TestIndexingPerformance.java    |  3 -
 7 files changed, 108 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
index 26ee4ef..7d2024a 100644
--- a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
@@ -26,16 +26,16 @@ import org.apache.lucene.store.FilterDirectory;
 import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
-import org.apache.lucene.store.Lock;
 import org.apache.lucene.store.LockFactory;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.metrics.SolrMetricManager;
+import org.apache.solr.util.plugin.SolrCoreAware;
 
 /**
  * An implementation of {@link DirectoryFactory} that decorates provided factory by
  * adding metrics for directory IO operations.
  */
-public class MetricsDirectoryFactory extends DirectoryFactory {
+public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCoreAware {
   private final SolrMetricManager metricManager;
   private final String registry;
   private final DirectoryFactory in;
@@ -132,6 +132,46 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
   }
 
   @Override
+  public boolean isSharedStorage() {
+    return in.isSharedStorage();
+  }
+
+  @Override
+  public boolean isAbsolute(String path) {
+    return in.isAbsolute(path);
+  }
+
+  @Override
+  public boolean searchersReserveCommitPoints() {
+    return in.searchersReserveCommitPoints();
+  }
+
+  @Override
+  public String getDataHome(CoreDescriptor cd) throws IOException {
+    return in.getDataHome(cd);
+  }
+
+  @Override
+  public long size(Directory directory) throws IOException {
+    return in.size(directory);
+  }
+
+  @Override
+  public long size(String path) throws IOException {
+    return in.size(path);
+  }
+
+  @Override
+  public Collection<SolrInfoMBean> offerMBeans() {
+    return in.offerMBeans();
+  }
+
+  @Override
+  public void cleanupOldIndexDirectories(String dataDirPath, String currentIndexDirPath) {
+    in.cleanupOldIndexDirectories(dataDirPath, currentIndexDirPath);
+  }
+
+  @Override
   public void remove(String path, boolean afterCoreClose) throws IOException {
     in.remove(path, afterCoreClose);
   }
@@ -142,6 +182,11 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
   }
 
   @Override
+  public void move(Directory fromDir, Directory toDir, String fileName, IOContext ioContext) throws IOException {
+    in.move(fromDir, toDir, fileName, ioContext);
+  }
+
+  @Override
   public Directory get(String path, DirContext dirContext, String rawLockType) throws IOException {
     Directory dir = in.get(path, dirContext, rawLockType);
     if (dir instanceof MetricsDirectory) {
@@ -152,6 +197,31 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
   }
 
   @Override
+  public void renameWithOverwrite(Directory dir, String fileName, String toName) throws IOException {
+    super.renameWithOverwrite(dir, fileName, toName);
+  }
+
+  @Override
+  public String normalize(String path) throws IOException {
+    return in.normalize(path);
+  }
+
+  @Override
+  protected boolean deleteOldIndexDirectory(String oldDirPath) throws IOException {
+    return in.deleteOldIndexDirectory(oldDirPath);
+  }
+
+  @Override
+  public void initCoreContainer(CoreContainer cc) {
+    in.initCoreContainer(cc);
+  }
+
+  @Override
+  protected Directory getBaseDir(Directory dir) {
+    return in.getBaseDir(dir);
+  }
+
+  @Override
   public void incRef(Directory dir) {
     // unwrap
     if (dir instanceof MetricsDirectory) {
@@ -166,6 +236,13 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
   }
 
   @Override
+  public void inform(SolrCore core) {
+    if (in instanceof  SolrCoreAware) {
+      ((SolrCoreAware)in).inform(core);
+    }
+  }
+
+  @Override
   public void release(Directory dir) throws IOException {
     // unwrap
     if (dir instanceof MetricsDirectory) {
@@ -174,6 +251,8 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
     in.release(dir);
   }
 
+
+
   private static final String SEGMENTS = "segments_";
   private static final String TEMP = "temp";
   private static final String OTHER = "other";

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/core/TestConfig.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfig.java b/solr/core/src/test/org/apache/solr/core/TestConfig.java
index 55e1e17..8244b32 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfig.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfig.java
@@ -128,6 +128,8 @@ public class TestConfig extends SolrTestCaseJ4 {
 
     ++numDefaultsTested; assertEquals("default infoStream", InfoStream.NO_OUTPUT, sic.infoStream);
 
+    ++numDefaultsTested; assertNotNull("default metrics", sic.metricsInfo);
+
     // mergePolicyInfo and mergePolicyFactoryInfo are mutually exclusive
     // so ++ count them only once for both instead of individually
     ++numDefaultsTested; ++numNullDefaults;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index 685ef99..345b86d 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -66,6 +66,8 @@ import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.CachingDirectoryFactory;
 import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.DirectoryFactory;
+import org.apache.solr.core.MetricsDirectoryFactory;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.core.StandardDirectoryFactory;
 import org.apache.solr.core.snapshots.SolrSnapshotMetaDataManager;
@@ -895,12 +897,21 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     }
   }
 
+  private CachingDirectoryFactory getCachingDirectoryFactory(SolrCore core) {
+    DirectoryFactory df = core.getDirectoryFactory();
+    if (df instanceof MetricsDirectoryFactory) {
+      return (CachingDirectoryFactory)((MetricsDirectoryFactory)df).getDelegate();
+    } else {
+      return (CachingDirectoryFactory)df;
+    }
+  }
+
   private void checkForSingleIndex(JettySolrRunner jetty) {
     CoreContainer cores = jetty.getCoreContainer();
     Collection<SolrCore> theCores = cores.getCores();
     for (SolrCore core : theCores) {
       String ddir = core.getDataDir();
-      CachingDirectoryFactory dirFactory = (CachingDirectoryFactory) core.getDirectoryFactory();
+      CachingDirectoryFactory dirFactory = getCachingDirectoryFactory(core);
       synchronized (dirFactory) {
         Set<String> livePaths = dirFactory.getLivePaths();
         // one for data, one for hte index under data and one for the snapshot metadata.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
index 6f1a802..937cc86 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
@@ -24,6 +24,8 @@ import org.apache.lucene.store.LockFactory;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.params.CoreAdminParams;
 import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.DirectoryFactory;
+import org.apache.solr.core.MetricsDirectoryFactory;
 import org.apache.solr.core.MockFSDirectoryFactory;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.response.SolrQueryResponse;
@@ -75,7 +77,13 @@ public class CoreMergeIndexesAdminHandlerTest extends SolrTestCaseJ4 {
     final CoreAdminHandler admin = new CoreAdminHandler(cores);
 
     try (SolrCore core = cores.getCore("collection1")) {
-      FailingDirectoryFactory dirFactory = (FailingDirectoryFactory)core.getDirectoryFactory();
+      DirectoryFactory df = core.getDirectoryFactory();
+      FailingDirectoryFactory dirFactory;
+      if (df instanceof MetricsDirectoryFactory) {
+        dirFactory = (FailingDirectoryFactory)((MetricsDirectoryFactory)df).getDelegate();
+      } else {
+        dirFactory = (FailingDirectoryFactory)df;
+      }
 
       try {
         dirFactory.fail = true;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
index 3667285..e15778d 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
@@ -49,9 +49,9 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 {
     assertNotNull(values.get("solr.node"));
     NamedList nl = (NamedList) values.get("solr.core.collection1");
     assertNotNull(nl);
-    assertNotNull(nl.get("newSearcherErrors")); // counter type
-    assertNotNull(((NamedList) nl.get("newSearcherErrors")).get("requests"));
-    assertEquals(0L, ((NamedList) nl.get("newSearcherErrors")).get("requests"));
+    assertNotNull(nl.get("SEARCHER.new.errors")); // counter type
+    assertNotNull(((NamedList) nl.get("SEARCHER.new.errors")).get("count"));
+    assertEquals(0L, ((NamedList) nl.get("SEARCHER.new.errors")).get("count"));
     nl = (NamedList) values.get("solr.node");
     assertNotNull(nl.get("cores.loaded")); // int gauge
     assertEquals(1, ((NamedList) nl.get("cores.loaded")).get("value"));

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
index 4fec5c3..7d1c4c7 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
@@ -197,6 +197,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
     } else {
       assertNull(m.get("mergedSegmentWarmer"));
     }
+    ++mSizeExpected; assertNotNull(m.get("metrics"));
 
     assertEquals(mSizeExpected, m.size());
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java b/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
index f9f0b58..6aee5bd 100644
--- a/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
+++ b/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
@@ -122,9 +122,6 @@ public class TestIndexingPerformance extends AbstractSolrTestCase {
 
     //discard all the changes
     updateHandler.rollback(new RollbackUpdateCommand(req));
-    try {
-      Thread.sleep(10000000);
-    } catch (Exception e) {}
 
     req.close();
   }