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>