logstash-core 7.2.0-java → 7.2.1-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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '049f2a5cf05f1811e4393f09bbf0dfd07b63fcfc27e760fefafdb7d78c340659'
|
4
|
+
data.tar.gz: a22c780783a2d190f4e97877e5e41191921a49568184b59c1d12ce276f55e567
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce56af4e9f40c706cd08f7ef6fb00dcab449e64b72968312feff85aa0c8460a28b48b41fa5b059eb75b610a679ccfef38653cf5774160eb3878eb5fded78ec1d
|
7
|
+
data.tar.gz: 6d480b9c63e22f25b2b51521e6da69013bac56f875b803c94e173a8153ab2618bae4d366d90904286ecde7bdb4f0584030aad05fab1bb2103d251835058691ee
|
data/lib/logstash/agent.rb
CHANGED
@@ -35,6 +35,7 @@ module LogStash
|
|
35
35
|
# will block until the other compute finishes so no mutex is necessary
|
36
36
|
# for synchronizing compute calls
|
37
37
|
@states = java.util.concurrent.ConcurrentHashMap.new
|
38
|
+
@locks = java.util.concurrent.ConcurrentHashMap.new
|
38
39
|
end
|
39
40
|
|
40
41
|
# Execute the passed creation logic block and create a new state upon success
|
@@ -46,24 +47,28 @@ module LogStash
|
|
46
47
|
#
|
47
48
|
# @return [Boolean] new pipeline creation success
|
48
49
|
def create_pipeline(pipeline_id, pipeline, &create_block)
|
50
|
+
lock = get_lock(pipeline_id)
|
51
|
+
lock.lock
|
52
|
+
|
49
53
|
success = false
|
50
54
|
|
51
|
-
@states.
|
52
|
-
|
53
|
-
|
54
|
-
success = yield
|
55
|
-
state.set_pipeline(pipeline)
|
56
|
-
else
|
57
|
-
logger.error("Attempted to create a pipeline that already exists", :pipeline_id => pipeline_id)
|
58
|
-
end
|
59
|
-
state
|
60
|
-
else
|
55
|
+
state = @states.get(pipeline_id)
|
56
|
+
if state
|
57
|
+
if state.terminated?
|
61
58
|
success = yield
|
62
|
-
|
59
|
+
state.set_pipeline(pipeline)
|
60
|
+
else
|
61
|
+
logger.error("Attempted to create a pipeline that already exists", :pipeline_id => pipeline_id)
|
63
62
|
end
|
63
|
+
@states.put(pipeline_id, state)
|
64
|
+
else
|
65
|
+
success = yield
|
66
|
+
@states.put(pipeline_id, PipelineState.new(pipeline_id, pipeline)) if success
|
64
67
|
end
|
65
68
|
|
66
69
|
success
|
70
|
+
ensure
|
71
|
+
lock.unlock
|
67
72
|
end
|
68
73
|
|
69
74
|
# Execute the passed termination logic block
|
@@ -72,15 +77,19 @@ module LogStash
|
|
72
77
|
#
|
73
78
|
# @yieldparam [Pipeline] the pipeline to terminate
|
74
79
|
def terminate_pipeline(pipeline_id, &stop_block)
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
80
|
+
lock = get_lock(pipeline_id)
|
81
|
+
lock.lock
|
82
|
+
|
83
|
+
state = @states.get(pipeline_id)
|
84
|
+
if state.nil?
|
85
|
+
logger.error("Attempted to terminate a pipeline that does not exists", :pipeline_id => pipeline_id)
|
86
|
+
@states.remove(pipeline_id)
|
87
|
+
else
|
88
|
+
yield(state.pipeline)
|
89
|
+
@states.put(pipeline_id, state)
|
83
90
|
end
|
91
|
+
ensure
|
92
|
+
lock.unlock
|
84
93
|
end
|
85
94
|
|
86
95
|
# Execute the passed reloading logic block in the context of the reloading state and set new pipeline in state
|
@@ -91,25 +100,28 @@ module LogStash
|
|
91
100
|
#
|
92
101
|
# @return [Boolean] new pipeline creation success
|
93
102
|
def reload_pipeline(pipeline_id, &reload_block)
|
103
|
+
lock = get_lock(pipeline_id)
|
104
|
+
lock.lock
|
94
105
|
success = false
|
95
106
|
|
96
|
-
@states.
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
end
|
108
|
-
state
|
107
|
+
state = @states.get(pipeline_id)
|
108
|
+
if state.nil?
|
109
|
+
logger.error("Attempted to reload a pipeline that does not exists", :pipeline_id => pipeline_id)
|
110
|
+
@states.remove(pipeline_id)
|
111
|
+
else
|
112
|
+
state.set_reloading(true)
|
113
|
+
begin
|
114
|
+
success, new_pipeline = yield
|
115
|
+
state.set_pipeline(new_pipeline)
|
116
|
+
ensure
|
117
|
+
state.set_reloading(false)
|
109
118
|
end
|
119
|
+
@states.put(pipeline_id, state)
|
110
120
|
end
|
111
121
|
|
112
|
-
|
122
|
+
success
|
123
|
+
ensure
|
124
|
+
lock.unlock
|
113
125
|
end
|
114
126
|
|
115
127
|
# @param pipeline_id [String, Symbol] the pipeline id
|
@@ -162,5 +174,11 @@ module LogStash
|
|
162
174
|
end
|
163
175
|
end
|
164
176
|
end
|
177
|
+
|
178
|
+
def get_lock(pipeline_id)
|
179
|
+
@locks.compute_if_absent(pipeline_id) do |k|
|
180
|
+
java.util.concurrent.locks.ReentrantLock.new
|
181
|
+
end
|
182
|
+
end
|
165
183
|
end
|
166
184
|
end
|
@@ -44,16 +44,14 @@ module ::LogStash; module Plugins; module Builtin; module Pipeline; class Input
|
|
44
44
|
@queue << event
|
45
45
|
end
|
46
46
|
|
47
|
-
|
48
|
-
rescue => e
|
49
|
-
require 'pry'; binding.pry
|
50
|
-
return true
|
47
|
+
true
|
51
48
|
end
|
52
49
|
|
53
50
|
def stop
|
54
|
-
# We stop receiving events before we unlisten to prevent races
|
55
|
-
@running.set(false) if @running # If register wasn't yet called, no @running!
|
56
51
|
pipeline_bus.unlisten(self, address)
|
52
|
+
# We stop receiving events _after_ we unlisten to pick up any events sent by upstream outputs that
|
53
|
+
# have not yet stopped
|
54
|
+
@running.set(false) if @running # If register wasn't yet called, no @running!
|
57
55
|
end
|
58
56
|
|
59
57
|
def isRunning
|
@@ -101,6 +101,23 @@ describe ::LogStash::Plugins::Builtin::Pipeline do
|
|
101
101
|
output.do_close
|
102
102
|
end
|
103
103
|
end
|
104
|
+
|
105
|
+
it "stopped input should process events until upstream outputs stop" do
|
106
|
+
start_input
|
107
|
+
output.register
|
108
|
+
pipeline_bus.setBlockOnUnlisten(true)
|
109
|
+
|
110
|
+
output.multi_receive([event])
|
111
|
+
expect(queue.pop(true).to_hash_with_metadata).to match(event.to_hash_with_metadata)
|
112
|
+
|
113
|
+
Thread.new { input.do_stop }
|
114
|
+
|
115
|
+
sleep 1
|
116
|
+
output.multi_receive([event])
|
117
|
+
expect(queue.pop(true).to_hash_with_metadata).to match(event.to_hash_with_metadata)
|
118
|
+
|
119
|
+
output.do_close
|
120
|
+
end
|
104
121
|
end
|
105
122
|
|
106
123
|
describe "one output to multiple inputs" do
|
data/versions-gem-copy.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
# alpha and beta qualifiers are now added via VERSION_QUALIFIER environment var
|
3
|
-
logstash: 7.2.
|
4
|
-
logstash-core: 7.2.
|
3
|
+
logstash: 7.2.1
|
4
|
+
logstash-core: 7.2.1
|
5
5
|
logstash-core-plugin-api: 2.1.16
|
6
6
|
|
7
7
|
# jruby must reference a *released* version of jruby which can be downloaded from the official download url
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.2.
|
4
|
+
version: 7.2.1
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -17,8 +17,8 @@ dependencies:
|
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: '0.12'
|
19
19
|
name: pry
|
20
|
-
type: :runtime
|
21
20
|
prerelease: false
|
21
|
+
type: :runtime
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
@@ -31,8 +31,8 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.0.19
|
33
33
|
name: stud
|
34
|
-
type: :runtime
|
35
34
|
prerelease: false
|
35
|
+
type: :runtime
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
@@ -45,8 +45,8 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0.6'
|
47
47
|
name: clamp
|
48
|
-
type: :runtime
|
49
48
|
prerelease: false
|
49
|
+
type: :runtime
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
@@ -59,8 +59,8 @@ dependencies:
|
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0.2'
|
61
61
|
name: filesize
|
62
|
-
type: :runtime
|
63
62
|
prerelease: false
|
63
|
+
type: :runtime
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
@@ -73,8 +73,8 @@ dependencies:
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '1'
|
75
75
|
name: gems
|
76
|
-
type: :runtime
|
77
76
|
prerelease: false
|
77
|
+
type: :runtime
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
@@ -87,8 +87,8 @@ dependencies:
|
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '1'
|
89
89
|
name: concurrent-ruby
|
90
|
-
type: :runtime
|
91
90
|
prerelease: false
|
91
|
+
type: :runtime
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
@@ -104,8 +104,8 @@ dependencies:
|
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: 1.6.11
|
106
106
|
name: rack
|
107
|
-
type: :runtime
|
108
107
|
prerelease: false
|
108
|
+
type: :runtime
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
111
|
- - "~>"
|
@@ -124,8 +124,8 @@ dependencies:
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: 1.4.6
|
126
126
|
name: sinatra
|
127
|
-
type: :runtime
|
128
127
|
prerelease: false
|
128
|
+
type: :runtime
|
129
129
|
version_requirements: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - "~>"
|
@@ -141,8 +141,8 @@ dependencies:
|
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '2'
|
143
143
|
name: puma
|
144
|
-
type: :runtime
|
145
144
|
prerelease: false
|
145
|
+
type: :runtime
|
146
146
|
version_requirements: !ruby/object:Gem::Requirement
|
147
147
|
requirements:
|
148
148
|
- - "~>"
|
@@ -155,8 +155,8 @@ dependencies:
|
|
155
155
|
- !ruby/object:Gem::Version
|
156
156
|
version: '0.10'
|
157
157
|
name: jruby-openssl
|
158
|
-
type: :runtime
|
159
158
|
prerelease: false
|
159
|
+
type: :runtime
|
160
160
|
version_requirements: !ruby/object:Gem::Requirement
|
161
161
|
requirements:
|
162
162
|
- - "~>"
|
@@ -169,8 +169,8 @@ dependencies:
|
|
169
169
|
- !ruby/object:Gem::Version
|
170
170
|
version: '0.10'
|
171
171
|
name: chronic_duration
|
172
|
-
type: :runtime
|
173
172
|
prerelease: false
|
173
|
+
type: :runtime
|
174
174
|
version_requirements: !ruby/object:Gem::Requirement
|
175
175
|
requirements:
|
176
176
|
- - "~>"
|
@@ -183,8 +183,8 @@ dependencies:
|
|
183
183
|
- !ruby/object:Gem::Version
|
184
184
|
version: '1'
|
185
185
|
name: treetop
|
186
|
-
type: :runtime
|
187
186
|
prerelease: false
|
187
|
+
type: :runtime
|
188
188
|
version_requirements: !ruby/object:Gem::Requirement
|
189
189
|
requirements:
|
190
190
|
- - "~>"
|
@@ -197,8 +197,8 @@ dependencies:
|
|
197
197
|
- !ruby/object:Gem::Version
|
198
198
|
version: '1'
|
199
199
|
name: i18n
|
200
|
-
type: :runtime
|
201
200
|
prerelease: false
|
201
|
+
type: :runtime
|
202
202
|
version_requirements: !ruby/object:Gem::Requirement
|
203
203
|
requirements:
|
204
204
|
- - "~>"
|
@@ -211,8 +211,8 @@ dependencies:
|
|
211
211
|
- !ruby/object:Gem::Version
|
212
212
|
version: '0.8'
|
213
213
|
name: minitar
|
214
|
-
type: :runtime
|
215
214
|
prerelease: false
|
215
|
+
type: :runtime
|
216
216
|
version_requirements: !ruby/object:Gem::Requirement
|
217
217
|
requirements:
|
218
218
|
- - "~>"
|
@@ -225,8 +225,8 @@ dependencies:
|
|
225
225
|
- !ruby/object:Gem::Version
|
226
226
|
version: '1'
|
227
227
|
name: rubyzip
|
228
|
-
type: :runtime
|
229
228
|
prerelease: false
|
229
|
+
type: :runtime
|
230
230
|
version_requirements: !ruby/object:Gem::Requirement
|
231
231
|
requirements:
|
232
232
|
- - "~>"
|
@@ -239,8 +239,8 @@ dependencies:
|
|
239
239
|
- !ruby/object:Gem::Version
|
240
240
|
version: 0.3.6
|
241
241
|
name: thread_safe
|
242
|
-
type: :runtime
|
243
242
|
prerelease: false
|
243
|
+
type: :runtime
|
244
244
|
version_requirements: !ruby/object:Gem::Requirement
|
245
245
|
requirements:
|
246
246
|
- - "~>"
|
@@ -253,8 +253,8 @@ dependencies:
|
|
253
253
|
- !ruby/object:Gem::Version
|
254
254
|
version: 0.4.8
|
255
255
|
name: jrjackson
|
256
|
-
type: :runtime
|
257
256
|
prerelease: false
|
257
|
+
type: :runtime
|
258
258
|
version_requirements: !ruby/object:Gem::Requirement
|
259
259
|
requirements:
|
260
260
|
- - '='
|
@@ -267,8 +267,8 @@ dependencies:
|
|
267
267
|
- !ruby/object:Gem::Version
|
268
268
|
version: '5'
|
269
269
|
name: elasticsearch
|
270
|
-
type: :runtime
|
271
270
|
prerelease: false
|
271
|
+
type: :runtime
|
272
272
|
version_requirements: !ruby/object:Gem::Requirement
|
273
273
|
requirements:
|
274
274
|
- - "~>"
|
@@ -281,8 +281,8 @@ dependencies:
|
|
281
281
|
- !ruby/object:Gem::Version
|
282
282
|
version: '0.6'
|
283
283
|
name: manticore
|
284
|
-
type: :runtime
|
285
284
|
prerelease: false
|
285
|
+
type: :runtime
|
286
286
|
version_requirements: !ruby/object:Gem::Requirement
|
287
287
|
requirements:
|
288
288
|
- - "~>"
|
@@ -295,8 +295,8 @@ dependencies:
|
|
295
295
|
- !ruby/object:Gem::Version
|
296
296
|
version: 0.9.0
|
297
297
|
name: faraday
|
298
|
-
type: :runtime
|
299
298
|
prerelease: false
|
299
|
+
type: :runtime
|
300
300
|
version_requirements: !ruby/object:Gem::Requirement
|
301
301
|
requirements:
|
302
302
|
- - "~>"
|