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

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
  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)