waterdrop 2.7.0.rc2 → 2.7.0

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: 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