logstash-input-beats 6.8.4-java → 6.9.0-java

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
  SHA256:
3
- metadata.gz: a26922cbcd9213f93a8729afa3ef58abedf78468f28b7bf2317ad8aa7b173539
4
- data.tar.gz: b1120393ac6920fb6277b048b2e39645be0c846864433a2ee48b566e3ee7ce38
3
+ metadata.gz: 01fefa4a08a49d5b8327676fb8e9699f4dac1a656c4af806bfd52ab8b4765525
4
+ data.tar.gz: 5088c69b9ee6e5af1fd1eca90bafc1666834a6fa33759d7f5ec11e55d118b095
5
5
  SHA512:
6
- metadata.gz: e1f1d39e8198af2c1867c217c962d6c8a91bcb6d9b382ba62bd5467fc50fc57cc2973d3b0612ca3dc15e3d88841ea395c303d06c658d5e36d2578c3d48c6487a
7
- data.tar.gz: f25381a87fffd76b3fb1caf004336b5edb4b632d0777e25d684eac75c053289f3d8893c4ad40988a71089f43e7ed5fae40a64f36fe2af89e569e0b1262519ffc
6
+ metadata.gz: 397e56a448f16eb3b0c149924b84474c494d680ebf9f5b51fbda46fc11d2cd3ab94896be435dde4e094b7b737fde9623d44feb2e922f74f50456420137d63948
7
+ data.tar.gz: c68a662dbb9494535b3200c2a0866da4fb2703667be266868b4214755b32e169ec1fee640a2c54b12c4b2a999f8d3b58e7126726eadbfbf66888d1d1664bec24
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 6.9.0
2
+ - Improvements on plugin's shutdown [#500](https://github.com/logstash-plugins/logstash-input-beats/pull/500)
3
+ - Fix: avoid plugin crash when connection terminated but processing the message
4
+ - Graceful shutdown: close acceptor group (incoming socket handler) first, ask and wait for the executors which have pending tasks, better message handling when executors terminated
5
+
1
6
  ## 6.8.4
2
7
  - Fixed to populate the `@metadata` fields even if the source's metadata value is `nil` [#502](https://github.com/logstash-plugins/logstash-input-beats/pull/502)
3
8
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.8.4
1
+ 6.9.0
@@ -2,12 +2,12 @@
2
2
  require "logstash/inputs/beats"
3
3
 
4
4
  module LogStash module Inputs class Beats
5
- # Use the new callback based approch instead of using blocks
5
+ # Use the new callback based approach instead of using blocks
6
6
  # so we can retain some context of the execution, and make it easier to test
7
7
  class CodecCallbackListener
8
8
  attr_accessor :data
9
9
  # The path acts as the `stream_identity`,
10
- # usefull when the clients is reading multiples files
10
+ # useful when the clients is reading multiples files
11
11
  attr_accessor :path
12
12
 
13
13
  def initialize(data, hash, path, transformer, queue)
@@ -49,11 +49,18 @@ module LogStash module Inputs class Beats
49
49
  @nocodec_transformer.transform(event)
50
50
  @queue << event
51
51
  else
52
- codec(ctx).accept(CodecCallbackListener.new(target_field,
53
- hash,
54
- message.getIdentityStream(),
55
- @codec_transformer,
56
- @queue))
52
+ current_codec = codec(ctx)
53
+ if current_codec
54
+ current_codec.accept(CodecCallbackListener.new(target_field,
55
+ hash,
56
+ message.getIdentityStream(),
57
+ @codec_transformer,
58
+ @queue))
59
+ else
60
+ # the possible cases: connection closed or exception with a connection
61
+ # let client retry
62
+ input.logger.warn("No codec available to process the message. This may due to connection termination and message was being processed.")
63
+ end
57
64
  end
58
65
  end
59
66
 
@@ -8,4 +8,4 @@ require_jar('io.netty', 'netty-transport', '4.1.109.Final')
8
8
  require_jar('io.netty', 'netty-handler', '4.1.109.Final')
9
9
  require_jar('io.netty', 'netty-transport-native-unix-common', '4.1.109.Final')
10
10
  require_jar('org.javassist', 'javassist', '3.24.0-GA')
11
- require_jar('org.logstash.beats', 'logstash-input-beats', '6.8.4')
11
+ require_jar('org.logstash.beats', 'logstash-input-beats', '6.9.0')
@@ -218,6 +218,24 @@ describe LogStash::Inputs::Beats::MessageListener do
218
218
  end
219
219
  end
220
220
 
221
+ context "when connection is terminated" do
222
+ let(:message) { MockMessage.new("message from Mars", { "message" => "hello world", "@metadata" => {} } )}
223
+
224
+ it "handles without crashing" do
225
+ subject.onConnectionClose(ctx)
226
+ expect(subject.connections_list[ctx]).to be nil
227
+
228
+ expect( input.logger ).to receive(:warn) do |message |
229
+ expect( message ).to match /No codec available to process the message. This may due to connection termination and message was being processed./
230
+ end
231
+
232
+ subject.onNewMessage(ctx, message)
233
+ # doesn't push to queue, so should be nil
234
+ event = queue.pop
235
+ expect(event.get("message")).to be nil
236
+ end
237
+ end
238
+
221
239
  it_behaves_like "when the message is from any libbeat", :disabled, "[@metadata][ip_address]"
222
240
  it_behaves_like "when the message is from any libbeat", :v1, "[@metadata][input][beats][host][ip]"
223
241
  it_behaves_like "when the message is from any libbeat", :v8, "[@metadata][input][beats][host][ip]"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-beats
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.8.4
4
+ version: 6.9.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
@@ -326,7 +326,7 @@ files:
326
326
  - vendor/jar-dependencies/io/netty/netty-transport-native-unix-common/4.1.109.Final/netty-transport-native-unix-common-4.1.109.Final.jar
327
327
  - vendor/jar-dependencies/io/netty/netty-transport/4.1.109.Final/netty-transport-4.1.109.Final.jar
328
328
  - vendor/jar-dependencies/org/javassist/javassist/3.24.0-GA/javassist-3.24.0-GA.jar
329
- - vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/6.8.4/logstash-input-beats-6.8.4.jar
329
+ - vendor/jar-dependencies/org/logstash/beats/logstash-input-beats/6.9.0/logstash-input-beats-6.9.0.jar
330
330
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
331
331
  licenses:
332
332
  - Apache License (2.0)