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");