diff --git a/lib/fluent/plugin_helper/http_server/server.rb b/lib/fluent/plugin_helper/http_server/server.rb index 549db76cc8..1434df2f5f 100644 --- a/lib/fluent/plugin_helper/http_server/server.rb +++ b/lib/fluent/plugin_helper/http_server/server.rb @@ -39,7 +39,8 @@ def initialize(addr:, port:, logger:, default_app: nil, tls_context: nil) scheme = tls_context ? 'https' : 'http' @uri = URI("#{scheme}://#{@addr}:#{@port}").to_s @router = Router.new(default_app) - @reactor = Async::Reactor.new(nil, logger: Fluent::Log::ConsoleAdapter.wrap(@logger)) + @server_task = nil + Console.logger = Fluent::Log::ConsoleAdapter.wrap(@logger) opts = if tls_context { ssl_context: tls_context } @@ -54,24 +55,28 @@ def initialize(addr:, port:, logger:, default_app: nil, tls_context: nil) end def start(notify = nil) + Console.logger = Fluent::Log::ConsoleAdapter.wrap(@logger) @logger.debug("Start async HTTP server listening #{@uri}") - task = @reactor.run do - @server.run + Async do |task| + Console.logger = Fluent::Log::ConsoleAdapter.wrap(@logger) + @server_task = task.async do + Console.logger = Fluent::Log::ConsoleAdapter.wrap(@logger) + @server.run + end if notify notify.push(:ready) end end - task.stop @logger.debug('Finished HTTP server') end def stop @logger.debug('closing HTTP server') - if @reactor - @reactor.stop + if @server_task + @server_task.stop end end diff --git a/test/plugin_helper/test_http_server_helper.rb b/test/plugin_helper/test_http_server_helper.rb index 4fd044bb0e..c198a364f1 100644 --- a/test/plugin_helper/test_http_server_helper.rb +++ b/test/plugin_helper/test_http_server_helper.rb @@ -127,12 +127,13 @@ def start_https_request(addr, port, verify: true, cert_path: nil, selfsigned: tr end client = Async::HTTP::Client.new(Async::HTTP::Endpoint.parse("https://#{addr}:#{port}", ssl_context: context)) - reactor = Async::Reactor.new(nil, logger: Fluent::Log::ConsoleAdapter.wrap(NULL_LOGGER)) + Console.logger = Fluent::Log::ConsoleAdapter.wrap(NULL_LOGGER) resp = nil error = nil - reactor.run do + Async do + Console.logger = Fluent::Log::ConsoleAdapter.wrap(NULL_LOGGER) begin response = yield(client) rescue => e # Async::Reactor rescue all error. handle it by myself