waterdrop 2.7.0.rc2 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b34784c24ea856bc39203d722b386282960a3387b34171a6911d030a70b308f
4
- data.tar.gz: fc095eae32f55193b98b3d1d9f13b96cdc74eaa9d2e25d50e773046e4749843a
3
+ metadata.gz: 5308262b20199b02906783387f294a58beb01fa8850db3db19bb7be39395121a
4
+ data.tar.gz: d35c18c4b7352c20c8eeb623f54581476f108cb656912a571ef067cc796e884c
5
5
  SHA512:
6
- metadata.gz: aaec4c4216c2c8360c5a6b17e5a33fc726ee5fa6220d496216d1181c535b5755c4b6a51a28c9ff72757768c3c513cc3e81a3d3cad24a532d6cebe1a7bf2e8e1c
7
- data.tar.gz: 8589024b7bcbd01f4c0f41c85224ace586dbe5e0a4679fe68abbdf66b9d49ff279ee44f15887cc864e50f0bc28302095c87e6d0863561db258db3e95e7507ad5
6
+ metadata.gz: ac6693e44080e4edf9b201a5e735b283bb7fa81d36ae10bf0d7501faa00e5f099917144966beb7febc4b95c50ed78feb7c659e59753a78e4495111e3d00af322
7
+ data.tar.gz: 100439b79cc59bd668f40e4fed8086c49f13bfedebb68409981d8c70a39c692eb2b4f453d9a45c367f2612578b2c6ac8303bd56acdbbd27d3a02d5aab803d57a
checksums.yaml.gz.sig CHANGED
Binary file
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.0
1
+ 3.3.1
data/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # WaterDrop changelog
2
2
 
3
- ## 2.7.0 (Unreleased)
3
+ ## 2.7.0 (2024-04-26)
4
4
 
5
5
  This release contains **BREAKING** changes. Make sure to read and apply upgrade notes.
6
6
 
@@ -12,6 +12,7 @@ This release contains **BREAKING** changes. Make sure to read and apply upgrade
12
12
  - **[Breaking]** Do **not** validate or morph (via middleware) messages added to the buffer prior to `flush_sync` or `flush_async`.
13
13
  - [Enhancement] Provide `WaterDrop::Producer#transaction?` that returns only when producer has an active transaction running.
14
14
  - [Enhancement] Introduce `instrument_on_wait_queue_full` flag (defaults to `true`) to be able to configure whether non critical (retryable) queue full errors should be instrumented in the error pipeline. Useful when building high-performance pipes with WaterDrop queue retry backoff as a throttler.
15
+ - [Enhancement] Protect critical `rdkafka` thread executable code sections.
15
16
  - [Enhancement] Treat the queue size as a gauge rather than a cumulative stat (isturdy).
16
17
  - [Fix] Fix a case where purge on non-initialized client would crash.
17
18
  - [Fix] Middlewares run twice when using buffered produce.
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- waterdrop (2.7.0.rc2)
5
- karafka-core (>= 2.4.0.rc2, < 3.0.0)
4
+ waterdrop (2.7.0)
5
+ karafka-core (>= 2.4.0, < 3.0.0)
6
6
  zeitwerk (~> 2.3)
7
7
 
8
8
  GEM
@@ -31,16 +31,16 @@ GEM
31
31
  ffi (1.16.3)
32
32
  i18n (1.14.4)
33
33
  concurrent-ruby (~> 1.0)
34
- karafka-core (2.4.0.rc2)
35
- karafka-rdkafka (>= 0.15.0.rc2, < 0.16.0)
36
- karafka-rdkafka (0.15.0.rc2)
34
+ karafka-core (2.4.0)
35
+ karafka-rdkafka (>= 0.15.0, < 0.16.0)
36
+ karafka-rdkafka (0.15.0)
37
37
  ffi (~> 1.15)
38
38
  mini_portile2 (~> 2.6)
39
39
  rake (> 12)
40
- mini_portile2 (2.8.5)
40
+ mini_portile2 (2.8.6)
41
41
  minitest (5.22.3)
42
42
  mutex_m (0.2.0)
43
- rake (13.1.0)
43
+ rake (13.2.1)
44
44
  rspec (3.13.0)
45
45
  rspec-core (~> 3.13.0)
46
46
  rspec-expectations (~> 3.13.0)
@@ -76,4 +76,4 @@ DEPENDENCIES
76
76
  waterdrop!
77
77
 
78
78
  BUNDLED WITH
79
- 2.5.7
79
+ 2.5.9
@@ -44,6 +44,17 @@ module WaterDrop
44
44
  else
45
45
  instrument_error(delivery_report)
46
46
  end
47
+ # This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
48
+ # crashes even if the instrumentation code fails. If it would bubble-up, it could crash
49
+ # the rdkafka background thread
50
+ rescue StandardError => e
51
+ @monitor.instrument(
52
+ 'error.occurred',
53
+ caller: self,
54
+ error: e,
55
+ producer_id: @producer_id,
56
+ type: 'callbacks.delivery.error'
57
+ )
47
58
  end
48
59
 
49
60
  private
@@ -32,6 +32,17 @@ module WaterDrop
32
32
  producer_id: @producer_id,
33
33
  type: 'librdkafka.error'
34
34
  )
35
+ # This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
36
+ # crashes even if the instrumentation code fails. If it would bubble-up, it could crash
37
+ # the rdkafka background thread
38
+ rescue StandardError => e
39
+ @monitor.instrument(
40
+ 'error.occurred',
41
+ caller: self,
42
+ error: e,
43
+ producer_id: @producer_id,
44
+ type: 'callbacks.error.error'
45
+ )
35
46
  end
36
47
  end
37
48
  end
@@ -31,6 +31,17 @@ module WaterDrop
31
31
  bearer: @bearer,
32
32
  caller: self
33
33
  )
34
+ # This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
35
+ # crashes even if the instrumentation code fails. If it would bubble-up, it could crash
36
+ # the rdkafka background thread
37
+ rescue StandardError => e
38
+ @monitor.instrument(
39
+ 'error.occurred',
40
+ caller: self,
41
+ error: e,
42
+ producer_id: @producer_id,
43
+ type: 'callbacks.oauthbearer_token_refresh.error'
44
+ )
34
45
  end
35
46
  end
36
47
  end
@@ -34,6 +34,17 @@ module WaterDrop
34
34
  producer_id: @producer_id,
35
35
  statistics: @statistics_decorator.call(statistics)
36
36
  )
37
+ # This runs from the rdkafka thread, thus we want to safe-guard it and prevent absolute
38
+ # crashes even if the instrumentation code fails. If it would bubble-up, it could crash
39
+ # the rdkafka background thread
40
+ rescue StandardError => e
41
+ @monitor.instrument(
42
+ 'error.occurred',
43
+ caller: self,
44
+ error: e,
45
+ producer_id: @producer_id,
46
+ type: 'callbacks.statistics.error'
47
+ )
37
48
  end
38
49
  end
39
50
  end
@@ -3,5 +3,5 @@
3
3
  # WaterDrop library
4
4
  module WaterDrop
5
5
  # Current WaterDrop version
6
- VERSION = '2.7.0.rc2'
6
+ VERSION = '2.7.0'
7
7
  end
data/waterdrop.gemspec CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.description = spec.summary
17
17
  spec.license = 'MIT'
18
18
 
19
- spec.add_dependency 'karafka-core', '>= 2.4.0.rc2', '< 3.0.0'
19
+ spec.add_dependency 'karafka-core', '>= 2.4.0', '< 3.0.0'
20
20
  spec.add_dependency 'zeitwerk', '~> 2.3'
21
21
 
22
22
  spec.required_ruby_version = '>= 3.0.0'
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waterdrop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0.rc2
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -35,7 +35,7 @@ cert_chain:
35
35
  AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
36
36
  msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
37
37
  -----END CERTIFICATE-----
38
- date: 2024-04-18 00:00:00.000000000 Z
38
+ date: 2024-04-26 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: karafka-core
@@ -43,7 +43,7 @@ dependencies:
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 2.4.0.rc2
46
+ version: 2.4.0
47
47
  - - "<"
48
48
  - !ruby/object:Gem::Version
49
49
  version: 3.0.0
@@ -53,7 +53,7 @@ dependencies:
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 2.4.0.rc2
56
+ version: 2.4.0
57
57
  - - "<"
58
58
  - !ruby/object:Gem::Version
59
59
  version: 3.0.0
@@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  requirements: []
155
- rubygems_version: 3.5.3
155
+ rubygems_version: 3.5.9
156
156
  signing_key:
157
157
  specification_version: 4
158
158
  summary: Kafka messaging made easy!
metadata.gz.sig CHANGED
Binary file