Browse Source

When stopping via systemd only kill the JVM, not its control group (#25195)

This prevents possible race conditions between the Elasticsearch JVM and
plugin native controller processes that can cause the Elasticsearch shutdown
to hang.  The problem can happen when the JVM and the controller process
receive a SIGTERM at almost the same time.

(There's an assumption here that Elasticsearch will continue to use other
mechanisms to kill native controller processes.)
David Roberts 8 years ago
parent
commit
a5658c0fea
1 changed files with 3 additions and 0 deletions
  1. 3 0
      distribution/src/main/packaging/systemd/elasticsearch.service

+ 3 - 0
distribution/src/main/packaging/systemd/elasticsearch.service

@@ -52,6 +52,9 @@ TimeoutStopSec=0
 # SIGTERM signal is used to stop the Java process
 KillSignal=SIGTERM
 
+# Send the signal only to the JVM rather than its control group
+KillMode=process
+
 # Java process is never killed
 SendSIGKILL=no