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/07/13 15:00:26 UTC

[lucene-solr] 02/03: #113 Try and buff this close speed - can hit a slow case.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit c709a398dafcc1a063499b0d00544d2d0af64a51
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Jul 13 09:57:40 2020 -0500

    #113 Try and buff this close speed - can hit a slow case.
---
 .../apache/solr/common/cloud/SolrZooKeeper.java    | 36 ++++++++++++++--------
 .../org/apache/zookeeper/ZooKeeperExposed.java     |  4 +++
 2 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
index 529849d..90fa686 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
@@ -130,7 +130,16 @@ public class SolrZooKeeper extends ZooKeeper {
 //     /   zkcall(cnxn, "sendThread", "close", null);
         // zkcall(cnxn, "sendThread", "close", null);
       }); // we don't wait for close because we wait below
-
+      worker.collect( () -> {
+        ZooKeeperExposed exposed = new ZooKeeperExposed(this, cnxn);
+        exposed.intteruptSendThread();
+        exposed.intteruptSendThread();
+      });
+      worker.collect( () -> {
+        ZooKeeperExposed exposed = new ZooKeeperExposed(this, cnxn);
+        exposed.intteruptSendThread();
+        exposed.intteruptSendThread();
+      });// we don't wait for close because we wait below
       worker.addCollect("zkServer");
 
       worker.collect(() -> {
@@ -138,20 +147,21 @@ public class SolrZooKeeper extends ZooKeeper {
           t.interrupt();
         }
       });
-      worker.collect(() -> {
-        zkcall(cnxn, "sendThread", "interrupt", null);
-        zkcall(cnxn, "eventThread", "interrupt", null);
-//
-//      //  zkcall(cnxn, "sendThread", "join", 10l);
-//      //  zkcall(cnxn, "eventThread", "join", 10l);
-//
+      worker.addCollect("spawnedThreads");
+//      worker.collect(() -> {
 //        zkcall(cnxn, "sendThread", "interrupt", null);
 //        zkcall(cnxn, "eventThread", "interrupt", null);
-//
-//        zkcall(cnxn, "sendThread", "join", 10l);
-//        zkcall(cnxn, "eventThread", "join", 10l);
-      });
-      worker.addCollect("zkClientClose");
+////
+////      //  zkcall(cnxn, "sendThread", "join", 10l);
+////      //  zkcall(cnxn, "eventThread", "join", 10l);
+////
+////        zkcall(cnxn, "sendThread", "interrupt", null);
+////        zkcall(cnxn, "eventThread", "interrupt", null);
+////
+////        zkcall(cnxn, "sendThread", "join", 10l);
+////        zkcall(cnxn, "eventThread", "join", 10l);
+//      });
+//      worker.addCollect("zkClientClose");
     }
   }
 
diff --git a/solr/solrj/src/java/org/apache/zookeeper/ZooKeeperExposed.java b/solr/solrj/src/java/org/apache/zookeeper/ZooKeeperExposed.java
index 56576f6..dd688c9 100644
--- a/solr/solrj/src/java/org/apache/zookeeper/ZooKeeperExposed.java
+++ b/solr/solrj/src/java/org/apache/zookeeper/ZooKeeperExposed.java
@@ -20,6 +20,10 @@ public class ZooKeeperExposed {
         clientCnxn.eventThread.queueEventOfDeath();
     }
 
+    public void intteruptSendThread() {
+        clientCnxn.sendThread.interrupt();
+        clientCnxn.eventThread.interrupt();
+    }
 //    @Override
 //    public void injectSessionExpiration() {
 //        LOG.info("injectSessionExpiration() called");