racecar 2.7.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/CHANGELOG.md +9 -0
- data/Gemfile.lock +3 -3
- 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 +1 -1
- metadata +6 -5
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
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
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
|
+
|
|
5
14
|
## v2.7.0
|
|
6
15
|
|
|
7
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))
|
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/
|
|
@@ -28,7 +28,7 @@ GEM
|
|
|
28
28
|
coderay (~> 1.1)
|
|
29
29
|
method_source (~> 1.0)
|
|
30
30
|
rake (13.0.1)
|
|
31
|
-
rdkafka (0.
|
|
31
|
+
rdkafka (0.12.0)
|
|
32
32
|
ffi (~> 1.15)
|
|
33
33
|
mini_portile2 (~> 2.6)
|
|
34
34
|
rake (> 12)
|
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
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
|
23
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,7 +1,7 @@
|
|
|
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
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
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
|
|
@@ -200,6 +200,7 @@ files:
|
|
|
200
200
|
- lib/racecar/ctl.rb
|
|
201
201
|
- lib/racecar/daemon.rb
|
|
202
202
|
- lib/racecar/datadog.rb
|
|
203
|
+
- lib/racecar/erroneous_state_error.rb
|
|
203
204
|
- lib/racecar/heroku.rb
|
|
204
205
|
- lib/racecar/instrumenter.rb
|
|
205
206
|
- lib/racecar/message.rb
|
|
@@ -230,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
230
231
|
- !ruby/object:Gem::Version
|
|
231
232
|
version: '0'
|
|
232
233
|
requirements: []
|
|
233
|
-
rubygems_version: 3.
|
|
234
|
+
rubygems_version: 3.0.3
|
|
234
235
|
signing_key:
|
|
235
236
|
specification_version: 4
|
|
236
237
|
summary: A framework for running Kafka consumers
|