waterdrop 2.6.3 → 2.6.5

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: f051a62baab08b5b23bb85a5b2264f3b33bebb77c0f3628ed90eda5eda8c22f2
4
- data.tar.gz: 9a5f27b24bee02bb2efcaeec926a8568c540c420c77cf1c9a06a6d72fcf496b1
3
+ metadata.gz: 908779a6b04cc938fc6f2801d1cd8650191a8cc61db1cda5e8331ca31b2a044e
4
+ data.tar.gz: 610c8c9e35cc0bd8f1ac47ad34e8e5c36e10283806085c10797ca61cf1761a06
5
5
  SHA512:
6
- metadata.gz: 7fd5cd82e391ad95e9c48b4e6794ad6b4e0715b6f4a64e838c676064b96e22c2c0a0cea1f18e4131c5dc60ae33923b943d2828278404038f5f7a79b754cb6e37
7
- data.tar.gz: 004d5f3fdbbe48733ba47f132e12dcf1bd3ab5e0705181825f8e93b207e12b955b97cf6c283dcb58049153dd3325dd3ea655130e60982d0300ec309460e0d583
6
+ metadata.gz: 8274e596617d0ba318948f11dda305e8e36819a2f499b8344536a769b576439fcb9a99daaa759d33d2a25629586a5bbff99259ded9682931a8fb5be6357bb2fd
7
+ data.tar.gz: 9931e5cff829a95398adeac12e22a8461ac3abb0b0001829876495e53b66489ef13896dea7106624602bc1ddc2abcacf2bbd3df107266cbf99c69e5ca84e7e05
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # WaterDrop changelog
2
2
 
3
+ ### 2.6.5 (2023-07-22)
4
+ - [Fix] Add cause to the errors that are passed into instrumentation (konalegi)
5
+
6
+ ### 2.6.4 (2023-07-11)
7
+ - [Improvement] Use original error `#inspect` for `WaterDrop::Errors::ProduceError` and `WaterDrop::Errors::ProduceManyError` instead of the current empty string.
8
+
3
9
  ### 2.6.3 (2023-06-28)
4
10
  - [Change] Use `Concurrent::AtomicFixnum` to track operations in progress to prevent potential race conditions on JRuby and TruffleRuby (not yet supported but this is for future usage).
5
11
  - [Change] Require `karafka-rdkafka` `>= 0.13.2`.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- waterdrop (2.6.3)
4
+ waterdrop (2.6.5)
5
5
  karafka-core (>= 2.1.1, < 3.0.0)
6
6
  zeitwerk (~> 2.3)
7
7
 
@@ -38,8 +38,9 @@ module WaterDrop
38
38
 
39
39
  # @param dispatched [Array<Rdkafka::Producer::DeliveryHandle>] handlers of the
40
40
  # messages that we've dispatched
41
- def initialize(dispatched)
42
- super()
41
+ # @param message [String] error message
42
+ def initialize(dispatched, message)
43
+ super(message)
43
44
  @dispatched = dispatched
44
45
  end
45
46
  end
@@ -22,18 +22,22 @@ module WaterDrop
22
22
  producer_id: id,
23
23
  message: message
24
24
  ) { produce(message) }
25
- rescue *SUPPORTED_FLOW_ERRORS
26
- re_raised = Errors::ProduceError.new
25
+ rescue *SUPPORTED_FLOW_ERRORS => e
26
+ # We use this syntax here because we want to preserve the original `#cause` when we
27
+ # instrument the error and there is no way to manually assign `#cause` value
28
+ begin
29
+ raise Errors::ProduceError, e.inspect
30
+ rescue Errors::ProduceError => ex
31
+ @monitor.instrument(
32
+ 'error.occurred',
33
+ producer_id: id,
34
+ message: message,
35
+ error: ex,
36
+ type: 'message.produce_async'
37
+ )
27
38
 
28
- @monitor.instrument(
29
- 'error.occurred',
30
- producer_id: id,
31
- message: message,
32
- error: re_raised,
33
- type: 'message.produce_async'
34
- )
35
-
36
- raise re_raised
39
+ raise ex
40
+ end
37
41
  end
38
42
 
39
43
  # Produces many messages to Kafka and does not wait for them to be delivered
@@ -62,8 +66,8 @@ module WaterDrop
62
66
 
63
67
  dispatched
64
68
  end
65
- rescue *SUPPORTED_FLOW_ERRORS
66
- re_raised = Errors::ProduceManyError.new(dispatched)
69
+ rescue *SUPPORTED_FLOW_ERRORS => e
70
+ re_raised = Errors::ProduceManyError.new(dispatched, e.inspect)
67
71
 
68
72
  @monitor.instrument(
69
73
  'error.occurred',
@@ -26,18 +26,22 @@ module WaterDrop
26
26
  ) do
27
27
  wait(produce(message))
28
28
  end
29
- rescue *SUPPORTED_FLOW_ERRORS
30
- re_raised = Errors::ProduceError.new
29
+ rescue *SUPPORTED_FLOW_ERRORS => e
30
+ # We use this syntax here because we want to preserve the original `#cause` when we
31
+ # instrument the error and there is no way to manually assign `#cause` value
32
+ begin
33
+ raise Errors::ProduceError, e.inspect
34
+ rescue Errors::ProduceError => ex
35
+ @monitor.instrument(
36
+ 'error.occurred',
37
+ producer_id: id,
38
+ message: message,
39
+ error: ex,
40
+ type: 'message.produce_sync'
41
+ )
31
42
 
32
- @monitor.instrument(
33
- 'error.occurred',
34
- producer_id: id,
35
- message: message,
36
- error: re_raised,
37
- type: 'message.produce_sync'
38
- )
39
-
40
- raise re_raised
43
+ raise ex
44
+ end
41
45
  end
42
46
 
43
47
  # Produces many messages to Kafka and waits for them to be delivered
@@ -69,8 +73,8 @@ module WaterDrop
69
73
 
70
74
  dispatched
71
75
  end
72
- rescue *SUPPORTED_FLOW_ERRORS
73
- re_raised = Errors::ProduceManyError.new(dispatched)
76
+ rescue *SUPPORTED_FLOW_ERRORS => e
77
+ re_raised = Errors::ProduceManyError.new(dispatched, e.inspect)
74
78
 
75
79
  @monitor.instrument(
76
80
  'error.occurred',
@@ -228,7 +228,7 @@ module WaterDrop
228
228
  # the original cause to maintain the same API across all the errors dispatched to the
229
229
  # notifications pipeline.
230
230
  begin
231
- raise Errors::ProduceError
231
+ raise Errors::ProduceError, e.inspect
232
232
  rescue Errors::ProduceError => e
233
233
  # We want to instrument on this event even when we restart it.
234
234
  # The reason is simple: instrumentation and visibility.
@@ -3,5 +3,5 @@
3
3
  # WaterDrop library
4
4
  module WaterDrop
5
5
  # Current WaterDrop version
6
- VERSION = '2.6.3'
6
+ VERSION = '2.6.5'
7
7
  end
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.6.3
4
+ version: 2.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -35,7 +35,7 @@ cert_chain:
35
35
  Qf04B9ceLUaC4fPVEz10FyobjaFoY4i32xRto3XnrzeAgfEe4swLq8bQsR3w/EF3
36
36
  MGU0FeSV2Yj7Xc2x/7BzLK8xQn5l7Yy75iPF+KP3vVmDHnNl
37
37
  -----END CERTIFICATE-----
38
- date: 2023-06-28 00:00:00.000000000 Z
38
+ date: 2023-07-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: karafka-core
metadata.gz.sig CHANGED
Binary file