From 02d3dfbb79a0757ca9145d3534b582493b185404 Mon Sep 17 00:00:00 2001 From: Armin Date: Wed, 6 Sep 2017 14:04:44 +0200 Subject: [PATCH] #8149 Fix Logstash::Agent to not leak its webserver thread Fixes #8151 --- logstash-core/lib/logstash/agent.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/logstash-core/lib/logstash/agent.rb b/logstash-core/lib/logstash/agent.rb index 7e3dcc88d..d59a3127c 100644 --- a/logstash-core/lib/logstash/agent.rb +++ b/logstash-core/lib/logstash/agent.rb @@ -389,14 +389,20 @@ class LogStash::Agent def start_webserver options = {:http_host => @http_host, :http_ports => @http_port, :http_environment => @http_environment } @webserver = LogStash::WebServer.new(@logger, self, options) - Thread.new(@webserver) do |webserver| + @webserver_thread = Thread.new(@webserver) do |webserver| LogStash::Util.set_thread_name("Api Webserver") webserver.run end end def stop_webserver - @webserver.stop if @webserver + if @webserver + @webserver.stop + if @webserver_thread.join(5).nil? + @webserver_thread.kill + @webserver_thread.join + end + end end def configure_metrics_collectors