You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/09/15 19:28:48 UTC
[lucene-solr] 02/02: @831 Remove test ignore.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit d00395c9a80fc083e2c3b6d265cfff7eb395fb2f
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Sep 15 14:28:27 2020 -0500
@831 Remove test ignore.
---
.../client/solrj/impl/CloudHttp2SolrClient.java | 1 +
.../solr/client/solrj/impl/Http2SolrClient.java | 24 ++++++++--------------
.../impl/CloudHttp2SolrClientWireMockTest.java | 6 ++----
3 files changed, 12 insertions(+), 19 deletions(-)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
index 014b1bd..7999fa1 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
@@ -323,6 +323,7 @@ public class CloudHttp2SolrClient extends BaseCloudSolrClient {
@Override
public void onSuccess(NamedList result) {
+ log.error("Add response to list");
tsResponses.put(url, result);
}
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index 82fbc7a..13ff759 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -258,7 +258,7 @@ public class Http2SolrClient extends SolrClient {
public void close() {
closeTracker.close();
- asyncTracker.phaser.forceTermination();
+ asyncTracker.close();
if (closeClient) {
try {
httpClient.stop();
@@ -410,13 +410,13 @@ public class Http2SolrClient extends SolrClient {
@Override
public void onComplete(Result result) {
- if (result.isFailed()) {
- onComplete.onFailure(result.getFailure());
- return;
- }
-
NamedList<Object> rsp;
try {
+ if (result.isFailed()) {
+ onComplete.onFailure(result.getFailure());
+ return;
+ }
+
InputStream is = getContentAsInputStream();
rsp = processErrorsAndResponse(req, result.getResponse(), parser, is, getMediaType(), getEncoding(), isV2ApiRequest(solrRequest));
onComplete.onSuccess(rsp);
@@ -424,7 +424,7 @@ public class Http2SolrClient extends SolrClient {
ParWork.propagateInterrupt(e);
onComplete.onFailure(e);
} finally {
- asyncTracker.completeListener.onComplete(result);
+ asyncTracker.arrive();
}
}
@@ -432,6 +432,7 @@ public class Http2SolrClient extends SolrClient {
return null;
} catch (Exception e) {
onComplete.onFailure(e);
+ asyncTracker.arrive();
throw new SolrException(SolrException.ErrorCode.UNKNOWN, e);
}
} else {
@@ -865,16 +866,9 @@ public class Http2SolrClient extends SolrClient {
private final Phaser phaser = new ThePhaser(1);
// maximum outstanding requests left
- private final Response.CompleteListener completeListener;
-
public AsyncTracker() {
// available = new Semaphore(MAX_OUTSTANDING_REQUESTS, true);
- completeListener = result -> {
- phaser.arriveAndDeregister();
- // available.release();
- if (log.isDebugEnabled()) log.debug("Request complete registered: {} arrived: {} {} {}", phaser.getRegisteredParties(), phaser.getArrivedParties(), phaser.getUnarrivedParties(), phaser);
- };
}
int getMaxRequestsQueuedPerDestination() {
@@ -882,7 +876,7 @@ public class Http2SolrClient extends SolrClient {
return MAX_OUTSTANDING_REQUESTS * 10;
}
- public void waitForComplete() {
+ public synchronized void waitForComplete() {
if (log.isDebugEnabled()) log.debug("Before wait for outstanding requests registered: {} arrived: {}, {} {}", phaser.getRegisteredParties(), phaser.getArrivedParties(), phaser.getUnarrivedParties(), phaser);
phaser.arriveAndAwaitAdvance();
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientWireMockTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientWireMockTest.java
index b3a8b68..92f8150 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientWireMockTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientWireMockTest.java
@@ -32,8 +32,8 @@ import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.client.solrj.routing.ShufflingReplicaListTransformer;
+import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.NamedList;
-import org.junit.Ignore;
import org.junit.Test;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
@@ -172,7 +172,6 @@ public class CloudHttp2SolrClientWireMockTest extends BaseSolrClientWireMockTest
@SuppressWarnings({"rawtypes", "unchecked"})
@Test
- @Ignore // nocommit parallel updates does not populate route responses
public void testConcurrentParallelUpdates() throws Exception {
// expect update requests go to both shards
stubFor(post(urlPathEqualTo(SHARD1_PATH+"/update"))
@@ -202,8 +201,7 @@ public class CloudHttp2SolrClientWireMockTest extends BaseSolrClientWireMockTest
});
list.add(responseFuture);
}
- executorService.shutdown();
- executorService.awaitTermination(3, TimeUnit.SECONDS);
+ ExecutorUtil.shutdownAndAwaitTermination(executorService);
List<ServeEvent> events = mockSolr.getAllServeEvents();
// code should have sent 10 requests to each shard leader