#8149 Fix Logstash::Agent to not leak its webserver thread

Fixes #8151
This commit is contained in:
Armin 2017-09-06 14:04:44 +02:00 committed by Armin Braun
parent 91b5128338
commit bc4cdcb0a4

View file

@ -389,14 +389,20 @@ class LogStash::Agent
def start_webserver def start_webserver
options = {:http_host => @http_host, :http_ports => @http_port, :http_environment => @http_environment } options = {:http_host => @http_host, :http_ports => @http_port, :http_environment => @http_environment }
@webserver = LogStash::WebServer.new(@logger, self, options) @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") LogStash::Util.set_thread_name("Api Webserver")
webserver.run webserver.run
end end
end end
def stop_webserver 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 end
def configure_metrics_collectors def configure_metrics_collectors