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