remove deprecation notices when output workers > 1

When workers is set to > 1, new plugin instances are created using a params hash
that contains both the user-specified config parameters and the default ones.
This causes deprecation notices to be printed, even though the user never specified
a deprecated config setting.
Thus, new workers should be created using only the "original" set of config parameters.

Fixes #2876
This commit is contained in:
Joao Duarte 2015-03-23 11:24:54 +00:00 committed by Jordan Sissel
parent cd4fb38fb5
commit 3763ecba67

View file

@ -69,7 +69,7 @@ class LogStash::Outputs::Base < LogStash::Plugin
else else
define_singleton_method(:handle, method(:handle_worker)) define_singleton_method(:handle, method(:handle_worker))
@worker_queue = SizedQueue.new(20) @worker_queue = SizedQueue.new(20)
@worker_plugins = @workers.times.map { self.class.new(params.merge("workers" => 1, "codec" => @codec.clone)) } @worker_plugins = @workers.times.map { self.class.new(@original_params.merge("workers" => 1, "codec" => @codec.clone)) }
@worker_plugins.map.with_index do |plugin, i| @worker_plugins.map.with_index do |plugin, i|
Thread.new(original_params, @worker_queue) do |params, queue| Thread.new(original_params, @worker_queue) do |params, queue|
LogStash::Util::set_thread_name(">#{self.class.config_name}.#{i}") LogStash::Util::set_thread_name(">#{self.class.config_name}.#{i}")