logstash-input-lumberjack 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1664191f642e3ec99ffaf6ea16b2e8c393086c21
4
- data.tar.gz: f14d9f60a969be2aab33ecd660782498dea00e4d
3
+ metadata.gz: 13d047624d0d97f3184fec85ee0d5a3f9a1fd274
4
+ data.tar.gz: 82d47b698574bd27368c49237c61e67c4bfcd5f7
5
5
  SHA512:
6
- metadata.gz: 6ad436036dbc30d5cb3caaf5403604cfe04683b517d80beeb23e9c1d709ed23678f9a851e716285d6705459caf87f5f25c8311f0d74ae4cb078fd577ba97690f
7
- data.tar.gz: 8db8d3b80dbd2e246ec47e720ffd868793207d89d57d97f61c47b42ace1d5416f0dec5e5760227250002dc52ff41eda18f56ea8b265f56f353d801eed1e060ec
6
+ metadata.gz: a8109970459a4c12f5ee11feb4b0aa12c668da8f840e9ca371e7f448da447993894964bfb1f2310c8766d7e8dd304bf0b30c088a947ecef21745a51d3caf44f9
7
+ data.tar.gz: 731c6a93b576bc7d221a9aaa66ee965ba12e3be7fe4d1182468195aaa9fb93483d071e136fc004326487af2a03141909981ef17ac2341cc459e82a92aa2b8a27
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 1.0.3
2
+ - Fix `concurrent-ruby` deprecation warning (https://github.com/logstash-plugins/logstash-input-lumberjack/pull/39)
3
+ - Remove deplicate declaration of the threadpool
4
+ - Force `ruby-lumberjack` to be version 0.0.23 or higher to be in sync with `logstash-output-lumberjack`
1
5
  # 1.0.2
2
6
  - Use a `require_relative` for loading the spec helpers. (https://github.com/logstash-plugins/logstash-input-lumberjack/pull/35)
3
7
  # 1.0.1
@@ -29,12 +29,8 @@ class LogStash::Inputs::Lumberjack < LogStash::Inputs::Base
29
29
  # SSL key passphrase to use.
30
30
  config :ssl_key_passphrase, :validate => :password
31
31
 
32
- # The lumberjack input using a fixed thread pool to do the actual work and
33
- # will accept a number of client in a queue, before starting to refuse new
34
- # connection. This solve an issue when logstash-forwarder clients are
35
- # trying to connect to logstash which have a blocked pipeline and will
36
- # make logstash crash with an out of memory exception.
37
- config :max_clients, :validate => :number, :default => 1000
32
+ # This setting no longer has any effect and will be removed in a future release.
33
+ config :max_clients, :validate => :number, :deprecated => "This setting no longer has any effect. See https://github.com/logstash-plugins/logstash-input-lumberjack/pull/12 for the history of this change"
38
34
 
39
35
  # TODO(sissel): Add CA to authenticate clients with.
40
36
 
@@ -52,16 +48,9 @@ class LogStash::Inputs::Lumberjack < LogStash::Inputs::Base
52
48
  :ssl_certificate => @ssl_certificate, :ssl_key => @ssl_key,
53
49
  :ssl_key_passphrase => @ssl_key_passphrase)
54
50
 
55
- # Limit the number of thread that can be created by the
56
- # Limit the number of thread that can be created by the
57
- # lumberjack output, if the queue is full the input will
58
- # start rejecting new connection and raise an exception
59
- @threadpool = Concurrent::ThreadPoolExecutor.new(
60
- :min_threads => 1,
61
- :max_threads => @max_clients,
62
- :max_queue => 1, # in concurrent-ruby, bounded queue need to be at least 1.
63
- fallback_policy: :abort
64
- )
51
+ # Create a reusable threadpool, we do not limit the number of connections
52
+ # to the input, the circuit breaker with the timeout should take care
53
+ # of `blocked` threads and prevent logstash to go oom.
65
54
  @threadpool = Concurrent::CachedThreadPool.new(:idletime => 15)
66
55
 
67
56
  # in 1.5 the main SizeQueue doesnt have the concept of timeout
@@ -1,5 +1,5 @@
1
- require "concurrent/atomic/condition"
2
1
  require "thread"
2
+ require "concurrent"
3
3
 
4
4
  module LogStash
5
5
  # Minimal subset implement of a SizedQueue supporting
@@ -12,8 +12,11 @@ module LogStash
12
12
  DEFAULT_TIMEOUT = 2 # in seconds
13
13
 
14
14
  def initialize(max_size, options = {})
15
- @condition_in = Concurrent::Condition.new
16
- @condition_out = Concurrent::Condition.new
15
+ # `concurrent-ruby` are deprecating the `Condition`
16
+ # in favor of a Synchonization class that you need to implement.
17
+ # this was bit overkill to only check if the wait did a timeout.
18
+ @condition_in = ConditionVariable.new
19
+ @condition_out = ConditionVariable.new
17
20
 
18
21
  @max_size = max_size
19
22
  @queue = []
@@ -23,8 +26,11 @@ module LogStash
23
26
  def push(obj, timeout = DEFAULT_TIMEOUT)
24
27
  @mutex.synchronize do
25
28
  while full? # wake up check
26
- result = @condition_out.wait(@mutex, timeout)
27
- raise TimeoutError if result.timed_out?
29
+ start_time = Concurrent.monotonic_time
30
+ @condition_out.wait(@mutex, timeout)
31
+ if start_time + timeout - Concurrent.monotonic_time < 0
32
+ raise TimeoutError
33
+ end
28
34
  end
29
35
 
30
36
  @queue << obj
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-input-lumberjack'
4
- s.version = '1.0.2'
4
+ s.version = '1.0.3'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Receive events using the lumberjack protocol."
7
7
  s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_runtime_dependency "logstash-core", '>= 1.4.0', '< 2.0.0'
24
24
 
25
25
  s.add_runtime_dependency 'logstash-codec-plain'
26
- s.add_runtime_dependency 'jls-lumberjack', ['>=0.0.20']
26
+ s.add_runtime_dependency 'jls-lumberjack', ['>=0.0.23']
27
27
  s.add_runtime_dependency "concurrent-ruby"
28
28
 
29
29
  s.add_development_dependency 'logstash-devutils'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-lumberjack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-30 00:00:00.000000000 Z
11
+ date: 2015-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core
@@ -50,12 +50,12 @@ dependencies:
50
50
  requirements:
51
51
  - - '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 0.0.20
53
+ version: 0.0.23
54
54
  requirement: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - '>='
57
57
  - !ruby/object:Gem::Version
58
- version: 0.0.20
58
+ version: 0.0.23
59
59
  prerelease: false
60
60
  type: :runtime
61
61
  - !ruby/object:Gem::Dependency