racecar 2.6.0 → 2.8.2
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 +4 -4
- data/.github/dependabot.yml +17 -0
- data/.github/workflows/ci.yml +1 -1
- data/CHANGELOG.md +14 -0
- data/Gemfile.lock +8 -8
- data/lib/racecar/consumer_set.rb +6 -0
- data/lib/racecar/erroneous_state_error.rb +34 -0
- data/lib/racecar/runner.rb +1 -0
- data/lib/racecar/version.rb +1 -1
- data/racecar.gemspec +2 -2
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cbf6ca4837bdd3893c8342936f9d5ea115a5b3a585e0c843e62171e00038e72
|
4
|
+
data.tar.gz: d8603c46cf801d0f41f017d5b27b35e0d2b195eec5be11a1f7b6bf77413726b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78bdedfe7bd888a3716f5a29f28810f4c4d2f03e43c33b8e47ed08607155211fca1d47f4eab6a4f0def6976bb7ca3263117e52d2e0fa7f0a721c56ec70c7ee3d
|
7
|
+
data.tar.gz: 2bf6e2b50980add68363b59718f54403caada58abcb404a9018ac4304519bbbb7ed920578d37bcadefad63964812e7374d367298f403577725eef79af269c604
|
@@ -0,0 +1,17 @@
|
|
1
|
+
version: 2
|
2
|
+
registries:
|
3
|
+
artifactory:
|
4
|
+
type: rubygems-server
|
5
|
+
url: ${{secrets.ARTIFACTORY_URL}}
|
6
|
+
username: ${{secrets.ARTIFACTORY_USERNAME}}
|
7
|
+
password: ${{secrets.ARTIFACTORY_API_KEY}}
|
8
|
+
updates:
|
9
|
+
- package-ecosystem: "bundler"
|
10
|
+
vendor: true
|
11
|
+
directory: "/"
|
12
|
+
registries:
|
13
|
+
- artifactory
|
14
|
+
schedule:
|
15
|
+
interval: "daily"
|
16
|
+
allow:
|
17
|
+
- dependency-type: "direct" # only explicitly defined dependencies.
|
data/.github/workflows/ci.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,20 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## v2.8.2
|
6
|
+
* Handles ErroneousStateError, in previous versions the consumer would do several unecessary group leave/joins. The log level is also changed to WARN instead of ERROR. ([#285](https://github.com/zendesk/racecar/pull/295))
|
7
|
+
|
8
|
+
## v2.8.1
|
9
|
+
* Adds new ErroneousStateError to racecar in order to give more information on this new possible exception.
|
10
|
+
|
11
|
+
## v2.8.0
|
12
|
+
* Update librdkafka version from 1.8.2 to 1.9.0 by upgrading from rdkafka 0.10.0 to 0.12.0. ([#283](https://github.com/zendesk/racecar/pull/293))
|
13
|
+
|
14
|
+
## v2.7.0
|
15
|
+
|
16
|
+
* Update librdkafka version from 1.5.0 to 1.8.2 by upgrading from rdkafka 0.10.0 to 0.11.1. ([#283](https://github.com/zendesk/racecar/pull/283))
|
17
|
+
* Bumps minimum required Ruby version to 2.6
|
18
|
+
|
5
19
|
## v2.6.0
|
6
20
|
|
7
21
|
* Add capability to specify partition number when producing messages
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
racecar (2.
|
4
|
+
racecar (2.8.2.beta)
|
5
5
|
king_konf (~> 1.0.0)
|
6
|
-
rdkafka (~> 0.
|
6
|
+
rdkafka (~> 0.12.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
@@ -22,16 +22,16 @@ GEM
|
|
22
22
|
concurrent-ruby (~> 1.0)
|
23
23
|
king_konf (1.0.0)
|
24
24
|
method_source (1.0.0)
|
25
|
-
mini_portile2 (2.
|
25
|
+
mini_portile2 (2.8.0)
|
26
26
|
minitest (5.14.4)
|
27
27
|
pry (0.13.1)
|
28
28
|
coderay (~> 1.1)
|
29
29
|
method_source (~> 1.0)
|
30
30
|
rake (13.0.1)
|
31
|
-
rdkafka (0.
|
32
|
-
ffi (~> 1.
|
33
|
-
mini_portile2 (~> 2.
|
34
|
-
rake (
|
31
|
+
rdkafka (0.12.0)
|
32
|
+
ffi (~> 1.15)
|
33
|
+
mini_portile2 (~> 2.6)
|
34
|
+
rake (> 12)
|
35
35
|
rspec (3.10.0)
|
36
36
|
rspec-core (~> 3.10.0)
|
37
37
|
rspec-expectations (~> 3.10.0)
|
@@ -64,4 +64,4 @@ DEPENDENCIES
|
|
64
64
|
timecop
|
65
65
|
|
66
66
|
BUNDLED WITH
|
67
|
-
2.3.
|
67
|
+
2.3.7
|
data/lib/racecar/consumer_set.rb
CHANGED
@@ -49,6 +49,12 @@ module Racecar
|
|
49
49
|
|
50
50
|
def store_offset(message)
|
51
51
|
current.store_offset(message)
|
52
|
+
rescue Rdkafka::RdkafkaError => e
|
53
|
+
if e.code == :state # -172
|
54
|
+
@logger.warn "Attempted to store_offset, but we're not subscribed to it: #{ErroneousStateError.new(e)}"
|
55
|
+
return
|
56
|
+
end
|
57
|
+
raise e
|
52
58
|
end
|
53
59
|
|
54
60
|
def commit
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# `rd_kafka_offsets_store()` (et.al) returns an error for any
|
2
|
+
# partition that is not currently assigned (through `rd_kafka_*assign()`).
|
3
|
+
# This prevents a race condition where an application would store offsets
|
4
|
+
# after the assigned partitions had been revoked (which resets the stored
|
5
|
+
# offset), that could cause these old stored offsets to be committed later
|
6
|
+
# when the same partitions were assigned to this consumer again - effectively
|
7
|
+
# overwriting any committed offsets by any consumers that were assigned the
|
8
|
+
# same partitions previously. This would typically result in the offsets
|
9
|
+
# rewinding and messages to be reprocessed.
|
10
|
+
# As an extra effort to avoid this situation the stored offset is now
|
11
|
+
# also reset when partitions are assigned (through `rd_kafka_*assign()`).
|
12
|
+
module Racecar
|
13
|
+
class ErroneousStateError < StandardError
|
14
|
+
def initialize(rdkafka_error)
|
15
|
+
raise rdkafka_error unless rdkafka_error.is_a?(Rdkafka::RdkafkaError)
|
16
|
+
|
17
|
+
@rdkafka_error = rdkafka_error
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :rdkafka_error
|
21
|
+
|
22
|
+
def code
|
23
|
+
@rdkafka_error.code
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
<<~EOM
|
28
|
+
Partition is no longer assigned to this consumer and the offset could not be stored for commit.
|
29
|
+
#{@rdkafka_error.to_s}
|
30
|
+
EOM
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
data/lib/racecar/runner.rb
CHANGED
data/lib/racecar/version.rb
CHANGED
data/racecar.gemspec
CHANGED
@@ -20,10 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.required_ruby_version = '>= 2.
|
23
|
+
spec.required_ruby_version = '>= 2.6'
|
24
24
|
|
25
25
|
spec.add_runtime_dependency "king_konf", "~> 1.0.0"
|
26
|
-
spec.add_runtime_dependency "rdkafka", "~> 0.
|
26
|
+
spec.add_runtime_dependency "rdkafka", "~> 0.12.0"
|
27
27
|
|
28
28
|
spec.add_development_dependency "bundler", [">= 1.13", "< 3"]
|
29
29
|
spec.add_development_dependency "pry"
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: racecar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Schierbeck
|
8
8
|
- Benjamin Quorning
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-07-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: king_konf
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.
|
34
|
+
version: 0.12.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.
|
41
|
+
version: 0.12.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: bundler
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,7 +155,7 @@ dependencies:
|
|
155
155
|
- - "<"
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '6.1'
|
158
|
-
description:
|
158
|
+
description:
|
159
159
|
email:
|
160
160
|
- dschierbeck@zendesk.com
|
161
161
|
- bquorning@zendesk.com
|
@@ -166,6 +166,7 @@ extensions: []
|
|
166
166
|
extra_rdoc_files: []
|
167
167
|
files:
|
168
168
|
- ".circleci/config.yml"
|
169
|
+
- ".github/dependabot.yml"
|
169
170
|
- ".github/workflows/ci.yml"
|
170
171
|
- ".gitignore"
|
171
172
|
- ".rspec"
|
@@ -199,6 +200,7 @@ files:
|
|
199
200
|
- lib/racecar/ctl.rb
|
200
201
|
- lib/racecar/daemon.rb
|
201
202
|
- lib/racecar/datadog.rb
|
203
|
+
- lib/racecar/erroneous_state_error.rb
|
202
204
|
- lib/racecar/heroku.rb
|
203
205
|
- lib/racecar/instrumenter.rb
|
204
206
|
- lib/racecar/message.rb
|
@@ -214,7 +216,7 @@ homepage: https://github.com/zendesk/racecar
|
|
214
216
|
licenses:
|
215
217
|
- Apache License Version 2.0
|
216
218
|
metadata: {}
|
217
|
-
post_install_message:
|
219
|
+
post_install_message:
|
218
220
|
rdoc_options: []
|
219
221
|
require_paths:
|
220
222
|
- lib
|
@@ -222,7 +224,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
222
224
|
requirements:
|
223
225
|
- - ">="
|
224
226
|
- !ruby/object:Gem::Version
|
225
|
-
version: '2.
|
227
|
+
version: '2.6'
|
226
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
227
229
|
requirements:
|
228
230
|
- - ">="
|
@@ -230,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
230
232
|
version: '0'
|
231
233
|
requirements: []
|
232
234
|
rubygems_version: 3.0.3
|
233
|
-
signing_key:
|
235
|
+
signing_key:
|
234
236
|
specification_version: 4
|
235
237
|
summary: A framework for running Kafka consumers
|
236
238
|
test_files: []
|