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/29 05:09:59 UTC
[lucene-solr] branch reference_impl_dev updated: @872 More graceful
shutdown.
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
The following commit(s) were added to refs/heads/reference_impl_dev by this push:
new 175f231 @872 More graceful shutdown.
175f231 is described below
commit 175f231259473fdfd37e64f69a686a951ca5f558
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Sep 28 23:56:32 2020 -0500
@872 More graceful shutdown.
---
.../client/solrj/embedded/JettySolrRunner.java | 9 ++-
.../apache/solr/servlet/SolrShutdownHandler.java | 86 +++++++++++-----------
solr/server/etc/jetty.xml | 1 +
3 files changed, 49 insertions(+), 47 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java b/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
index ccc1c8d..34836b6 100644
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
@@ -306,7 +306,7 @@ public class JettySolrRunner implements Closeable {
// server.manage(qtp);
// }
- server.setStopTimeout(60); // will wait gracefull for stoptime / 2, then interrupts
+ server.setStopTimeout(30000); // will wait gracefull for stoptime / 2, then interrupts
assert config.stopAtShutdown;
server.setStopAtShutdown(config.stopAtShutdown);
@@ -444,9 +444,10 @@ public class JettySolrRunner implements Closeable {
}
chain = injectJettyHandlers(chain);
- SolrShutdownHandler shutdownHandler = new SolrShutdownHandler();
- shutdownHandler.setHandler(chain);
- chain = shutdownHandler;
+ // no shutdown handler for embedded
+// SolrShutdownHandler shutdownHandler = new SolrShutdownHandler();
+// shutdownHandler.setHandler(chain);
+// chain = shutdownHandler;
if(config.enableV2) {
RewriteHandler rwh = new RewriteHandler();
rwh.setHandler(chain);
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrShutdownHandler.java b/solr/core/src/java/org/apache/solr/servlet/SolrShutdownHandler.java
index 5def9b8..cabde78 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrShutdownHandler.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrShutdownHandler.java
@@ -41,49 +41,49 @@ public class SolrShutdownHandler extends HandlerWrapper implements Graceful {
@Override
public Future<Void> shutdown() {
log.error("GRACEFUL SHUTDOWN CALLED");
- return new FutureCallback(true);
-// return new Future<Void>() {
-// @Override
-// public boolean cancel(boolean b) {
-// return false;
-// }
-//
-// @Override
-// public boolean isCancelled() {
-// return false;
-// }
-//
-// @Override
-// public synchronized boolean isDone() {
-// return false;
-// }
-//
-// @Override
-// public synchronized Void get() throws InterruptedException, ExecutionException {
-// synchronized (SolrShutdownHandler.class) {
-// try (ParWork work = new ParWork(this)) {
-// for (Runnable run : shutdowns) {
-// work.collect("shutdown", () -> run.run());
-// }
-// }
-// }
-// return null;
-// }
-//
-// @Override
-// public synchronized Void get(long l, TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException {
-// synchronized (SolrShutdownHandler.class) {
-// try (ParWork work = new ParWork(this)) {
-// for (Runnable run : shutdowns) {
-// work.collect("shutdown", () -> run.run());
-// }
-// }
-// shutdowns.clear();
-// }
-//
-// return null;
-// }
-// };
+// return new FutureCallback(true);
+ return new Future<Void>() {
+ @Override
+ public boolean cancel(boolean b) {
+ return false;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return false;
+ }
+
+ @Override
+ public synchronized boolean isDone() {
+ return false;
+ }
+
+ @Override
+ public synchronized Void get() throws InterruptedException, ExecutionException {
+ synchronized (SolrShutdownHandler.class) {
+ try (ParWork work = new ParWork(this)) {
+ for (Runnable run : shutdowns) {
+ work.collect("shutdown", () -> run.run());
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public synchronized Void get(long l, TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException {
+ synchronized (SolrShutdownHandler.class) {
+ try (ParWork work = new ParWork(this)) {
+ for (Runnable run : shutdowns) {
+ work.collect("shutdown", () -> run.run());
+ }
+ }
+ shutdowns.clear();
+ }
+
+ return null;
+ }
+ };
}
@Override
diff --git a/solr/server/etc/jetty.xml b/solr/server/etc/jetty.xml
index 774d1c9..a93619d 100644
--- a/solr/server/etc/jetty.xml
+++ b/solr/server/etc/jetty.xml
@@ -191,6 +191,7 @@
<!-- extra options -->
<!-- =========================================================== -->
<Set name="stopAtShutdown">true</Set>
+ <Set name="stopTimeout">180000</Set>
<Set name="dumpAfterStart">false</Set>
<Set name="dumpBeforeStop">false</Set>