logstash-filter-grok 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a34c685833867a04238f8544429c5938cd58a696
4
- data.tar.gz: 096eb04af33607c064d210c9e007ffbfccb3a9fa
3
+ metadata.gz: 26ce02b49c1b5bf27a1ea5470cef3b2875fa73e6
4
+ data.tar.gz: 936454b6cf21105471e21ed161835d722a9092c2
5
5
  SHA512:
6
- metadata.gz: b7aacf53f2a102c96c65597710b529ef0acef10730358ae4c5d4fd32c9dd053e5f226a2696535921fccc75504f205c8580762287ead404d413359bac8e9758f1
7
- data.tar.gz: 61bfb20dbb5452b957e08e82b5ad54d8b1f89d50dcdd2d0ba6bd37f7e06b2f630e2d92247ddd9e81de7fcefba720f12a3a32b5a21edb99eafb9d6a57331b7b54
6
+ metadata.gz: 2723677afeb369af6e1555b308b11c24ee4cb9f6c1baf6b74fc2fdedcff3e4d09702bcabf1532a2738134850eaa9f4c9821daf3f230df02f0a2c8bed66f701eb
7
+ data.tar.gz: 2625317a10db35a9de2905ba534bfa80bbf7d6df031122077e180e252d0dc20ea1bfdaa46e62ada24894150502275c007c6706ef3433bb5a02735c45189b26c2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 3.2.1
2
+ - Fix race condition in TimeoutEnforcer that could cause crashes
3
+ - Fix shutdown code to close cleanly and properly close the enforcer
4
+
1
5
  ## 3.2.0
2
6
  - Add new timeout options to cancel grok execution if a threshold time is exceeded
3
7
 
@@ -222,6 +222,8 @@
222
222
  # will be parsed and `hello world` will overwrite the original message.
223
223
  config :overwrite, :validate => :array, :default => []
224
224
 
225
+ attr_reader :timeout_enforcer
226
+
225
227
  # Register default pattern paths
226
228
  @@patterns_path ||= Set.new
227
229
  @@patterns_path += [
@@ -390,7 +392,7 @@
390
392
  end # def add_patterns_from_files
391
393
 
392
394
  def close
393
- @timeout_handler.stop!
395
+ @timeout_enforcer.stop!
394
396
  end
395
397
 
396
398
  end # class LogStash::Filters::Grok
@@ -1,4 +1,6 @@
1
1
  class LogStash::Filters::Grok::TimeoutEnforcer
2
+ attr_reader :running
3
+
2
4
  def initialize(logger, timeout_nanos)
3
5
  @logger = logger
4
6
  @running = true
@@ -42,12 +44,14 @@ class LogStash::Filters::Grok::TimeoutEnforcer
42
44
  end
43
45
 
44
46
  def cancel_timed_out!
45
- @threads_to_start_time.each do |thread,start_time|
46
- now = java.lang.System.nanoTime # save ourselves some nanotime calls
47
- elapsed = java.lang.System.nanoTime - start_time
48
- if elapsed > @timeout_nanos
49
- elapsed_millis = elapsed / 1000
50
- thread.raise(::LogStash::Filters::Grok::TimeoutException.new(elapsed_millis))
47
+ @timer_mutex.synchronize do
48
+ @threads_to_start_time.each do |thread,start_time|
49
+ now = java.lang.System.nanoTime # save ourselves some nanotime calls
50
+ elapsed = java.lang.System.nanoTime - start_time
51
+ if elapsed > @timeout_nanos
52
+ elapsed_millis = elapsed / 1000
53
+ thread.raise(::LogStash::Filters::Grok::TimeoutException.new(elapsed_millis))
54
+ end
51
55
  end
52
56
  end
53
57
  end
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-grok'
4
- s.version = '3.2.0'
4
+ s.version = '3.2.1'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Parse arbitrary text and structure it."
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/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -821,4 +821,23 @@ describe LogStash::Filters::Grok do
821
821
  end
822
822
  end
823
823
 
824
+ describe "closing" do
825
+ subject(:plugin) do
826
+ ::LogStash::Filters::Grok.new("match" => {"message" => "A"})
827
+ end
828
+
829
+ before do
830
+ plugin.register
831
+ end
832
+
833
+ it "should close cleanly" do
834
+ expect { plugin.do_close }.not_to raise_error
835
+ end
836
+
837
+ it "should stop the timeout enforcer" do
838
+ plugin.do_close
839
+ expect(plugin.timeout_enforcer.running).to be false
840
+ end
841
+ end
842
+
824
843
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-grok
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-02 00:00:00.000000000 Z
11
+ date: 2016-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement