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 2018/05/28 15:40:09 UTC
[26/35] lucene-solr:jira/solr-11779: SOLR-12399:
SearchRateTriggerTest.testTrigger fail frequently
SOLR-12399: SearchRateTriggerTest.testTrigger fail frequently
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/2a5346dd
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/2a5346dd
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/2a5346dd
Branch: refs/heads/jira/solr-11779
Commit: 2a5346dd29c5c072200d5038ced450255ebd749d
Parents: f7500a6
Author: Cao Manh Dat <da...@apache.org>
Authored: Mon May 28 09:48:22 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Mon May 28 09:48:22 2018 +0700
----------------------------------------------------------------------
.../autoscaling/SearchRateTriggerTest.java | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2a5346dd/solr/core/src/test/org/apache/solr/cloud/autoscaling/SearchRateTriggerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/SearchRateTriggerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/SearchRateTriggerTest.java
index 7969869..47abe3e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/SearchRateTriggerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/SearchRateTriggerTest.java
@@ -26,11 +26,13 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
+import com.codahale.metrics.MetricRegistry;
import com.google.common.util.concurrent.AtomicDouble;
import org.apache.solr.client.solrj.cloud.NodeStateProvider;
import org.apache.solr.client.solrj.cloud.autoscaling.ReplicaInfo;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
import org.apache.solr.client.solrj.cloud.autoscaling.TriggerEventType;
+import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.SolrClientCloudManager;
@@ -47,6 +49,7 @@ import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.TimeSource;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.metrics.SolrMetricManager;
import org.apache.solr.util.TimeOut;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -56,7 +59,6 @@ import org.junit.Test;
*
*/
public class SearchRateTriggerTest extends SolrCloudTestCase {
-
private static final String PREFIX = SearchRateTriggerTest.class.getSimpleName() + "-";
private static final String COLL1 = PREFIX + "collection1";
private static final String COLL2 = PREFIX + "collection2";
@@ -83,9 +85,10 @@ public class SearchRateTriggerTest extends SolrCloudTestCase {
@Test
public void testTrigger() throws Exception {
+ JettySolrRunner targetNode = cluster.getJettySolrRunner(0);
SolrZkClient zkClient = cluster.getSolrClient().getZkStateReader().getZkClient();
- SolrResourceLoader loader = cluster.getJettySolrRunner(0).getCoreContainer().getResourceLoader();
- CoreContainer container = cluster.getJettySolrRunner(0).getCoreContainer();
+ SolrResourceLoader loader = targetNode.getCoreContainer().getResourceLoader();
+ CoreContainer container = targetNode.getCoreContainer();
SolrCloudManager cloudManager = new SolrClientCloudManager(new ZkDistributedQueueFactory(zkClient), cluster.getSolrClient());
CollectionAdminRequest.Create create = CollectionAdminRequest.createCollection(COLL1,
@@ -102,7 +105,7 @@ public class SearchRateTriggerTest extends SolrCloudTestCase {
CloudTestUtils.waitForState(cloudManager, COLL2, 60, TimeUnit.SECONDS, clusterShape(2, 2));
double rate = 1.0;
- URL baseUrl = cluster.getJettySolrRunners().get(1).getBaseUrl();
+ URL baseUrl = targetNode.getBaseUrl();
long waitForSeconds = 5 + random().nextInt(5);
Map<String, Object> props = createTriggerProps(Arrays.asList(COLL1, COLL2), waitForSeconds, rate, -1);
final List<TriggerEvent> events = new ArrayList<>();
@@ -122,12 +125,17 @@ public class SearchRateTriggerTest extends SolrCloudTestCase {
for (int i = 0; i < 500; i++) {
simpleClient.query(query);
}
+ String registryCoreName = coreName.replaceFirst("_", ".").replaceFirst("_", ".");
+ SolrMetricManager manager = targetNode.getCoreContainer().getMetricManager();
+ MetricRegistry registry = manager.registry("solr.core."+registryCoreName);
+ TimeOut timeOut = new TimeOut(10, TimeUnit.SECONDS, TimeSource.NANO_TIME);
+ // If we getting the rate too early, it will return 0
+ timeOut.waitFor("Timeout waiting for rate is not zero",
+ () -> registry.timer("QUERY./select.requestTimes").getOneMinuteRate()!=0.0);
trigger.run();
// waitFor delay
assertEquals(0, events.size());
Thread.sleep(waitForSeconds * 1000);
- trigger.run();
- Thread.sleep(waitForSeconds * 1000);
// should generate replica event
trigger.run();
assertEquals(1, events.size());