racecar 2.8.0.beta.2 → 2.8.2.beta

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: 5a3696b9f3752f470a5af563afbfc3965d2de85c5fb2498f34b5ae62bb5d0099
4
- data.tar.gz: f25772b1e03670d6d3064913e1cb9f28f1d77d4eaf36eb993cd7d54b9d24b61d
3
+ metadata.gz: af359d8c13a9daeddded0e42a18b5bb2c4eff61d5e534777bf4e9311cbc71697
4
+ data.tar.gz: 6e7245bdbe7892ddb980ebb1be5e71b5dc445002899742688458ad627befc0b2
5
5
  SHA512:
6
- metadata.gz: f00c0bf89d9f2f1fc3721f6efc1dd54ff4991bb8a8d3f8a2c569b59bf53149d6a8d08e9c412d9a926854130e22ee74c9354ee93922f42a5fce681462957562a4
7
- data.tar.gz: dbbb334b71e761ef8e52c46dd2f9522957bd18b5b9f6f7bc08d7d05f87607e082d975cefa1f6969358d01571621c529505a464bdc5c0b5c804a258bc3f18273f
6
+ metadata.gz: e3dc320d68e7b0444ad6254307589c7ec66b4f56d9f42e53b97b390468e9b2e9583d5bd334a19d515cac2c8ba70b827bbb7ca8b334e2c9a77ec2a9e75706a1da
7
+ data.tar.gz: 768ae226817e083e8b9d11fd6e6dc795eaafd14653a04b38b70d54efe1f47fca89e715ac75270809cf66becca39433ba837f62f14842a71d5dc01b29f8bd0e88
data/CHANGELOG.md CHANGED
@@ -2,8 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v2.8.2
6
+ * Changes log level for ErroneousStateError to WARN.
7
+
8
+ ## v2.8.1
9
+ * Adds new ErroneousStateError to racecar in order to give more information on this new possible exception.
10
+
5
11
  ## v2.8.0
6
- * 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/286))
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))
7
13
 
8
14
  ## v2.7.0
9
15
 
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- racecar (2.8.0.beta.2)
4
+ racecar (2.8.2.beta)
5
5
  king_konf (~> 1.0.0)
6
- rdkafka (~> 0.12.0.beta.3)
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.12.0.beta.3)
31
+ rdkafka (0.12.0)
32
32
  ffi (~> 1.15)
33
33
  mini_portile2 (~> 2.6)
34
34
  rake (> 12)
@@ -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
@@ -4,6 +4,7 @@ require "rdkafka"
4
4
  require "racecar/pause"
5
5
  require "racecar/message"
6
6
  require "racecar/message_delivery_error"
7
+ require "racecar/erroneous_state_error"
7
8
 
8
9
  module Racecar
9
10
  class Runner
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Racecar
4
- VERSION = "2.8.0.beta.2"
4
+ VERSION = "2.8.2.beta"
5
5
  end
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.12.0.beta.3"
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.8.0.beta.2
4
+ version: 2.8.2.beta
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-04-12 00:00:00.000000000 Z
12
+ date: 2022-07-11 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.12.0.beta.3
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.12.0.beta.3
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