waterdrop 2.4.3 → 2.4.4

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: 065c53c0e711cfe49e718a321ce64740b68a45bd6ac477c9eaf2a79876de8df7
4
- data.tar.gz: e77179ca5162c4862369838197a62063b5127b4d3a72b7ab08f85f930cee6ea6
3
+ metadata.gz: e260fd0633bf1672fc6f84613d9cf47722d68112dbcc8575f1dca40a2628401b
4
+ data.tar.gz: 9528c011ffb175a22b34d59808dee41b735a008fca09f839b4a6418c2e198a2c
5
5
  SHA512:
6
- metadata.gz: 76af1a5f87a5f31bda8b9f5f111173e1992f6d5ddc85fa2b43d5e1fbd45b93e67601691cbf13b3b2a2e8eb49bc04196b84c5eb81c5b0bd6e11bbe014220fe821
7
- data.tar.gz: 27c667d0c93f6948a85d9411fd1dfa46bd38ebb36f7c6907785658bb58ae3001b8d2b81bcb1a9faac64acc5248bc1300a3530736cdd7193b155e01eca4eefbbe
6
+ metadata.gz: d1021407b74f56a864cb06013c31303a5485b7ef85e1c7214374f679cc7a9c0a04a59e3600d56b1f36929af9870ff3997f4fac320a01e9c4a1256453142c6a8b
7
+ data.tar.gz: 2bcf613fa8be571699534cdd5fb08fe3665024cb2767096d2ba343f6965ec1a5c7db50bdb45fb078931b0eff2572e0176604b667af35d2c1f87d2ce8e508e583
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1 @@
1
- ߸'��A�=�Y撂.�~h��H�ύ̋�`��FI��Bw�+&�����)*�7����ʣ5�w� ��3T���)�K����s���9lPӐ*5 �W�>��'J�����}^2YcN׬b��~[�� 9�?�j5�o�պ�{���2��a�8�
2
- ��,��S�
1
+ ��<T�J�(����N�����!��۷�]���ɉi�Ɏ�3�5�9��4�Xt�l�� $H1L��2ٶz��׮S_ẍR�"���ܐ�ҁ����b{'7{�jA�˶�����_%;T x��s-v�ȳ�C���ib:�h~�c��H(�'TN8�h B3�`��C���7{=�8�<��!:��̵̈́�4y��u�̔�&�`�~�K���1�_�Bކw��XI�nfOja�=>z��%��=[5����P��H��<)M[IM}��t���FV
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # WaterDrop changelog
2
2
 
3
+ ## 2.4.4 (2022-12-09)
4
+ - Add temporary patch on top of `rdkafka-ruby` to mitigate metadata fetch timeout failures.
5
+
3
6
  ## 2.4.3 (2022-12-07)
4
7
  - Support for librdkafka 0.13
5
8
  - Update Github Actions
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- waterdrop (2.4.3)
4
+ waterdrop (2.4.4)
5
5
  karafka-core (>= 2.0.6, < 3.0.0)
6
6
  zeitwerk (~> 2.3)
7
7
 
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WaterDrop
4
+ # Patches to external components
5
+ module Patches
6
+ # Rdkafka related patches
7
+ module Rdkafka
8
+ # Rdkafka::Metadata patches
9
+ module Metadata
10
+ # We overwrite this method because there were reports of metadata operation timing out
11
+ # when Kafka was under stress. While the messages dispatch will be retried, metadata
12
+ # fetch happens prior to that, effectively crashing the process. Metadata fetch was not
13
+ # being retried at all.
14
+ #
15
+ # @param args [Array<Object>] all the metadata original arguments
16
+ def initialize(*args)
17
+ attempt ||= 0
18
+ attempt += 1
19
+
20
+ super(*args)
21
+ rescue Rdkafka::RdkafkaError => e
22
+ raise unless e.code == :timed_out
23
+ raise if attempt > 10
24
+
25
+ backoff_factor = 2**attempt
26
+ timeout = backoff_factor * 0.1
27
+
28
+ sleep(timeout)
29
+
30
+ retry
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ ::Rdkafka::Metadata.prepend ::WaterDrop::Patches::Rdkafka::Metadata
@@ -3,5 +3,5 @@
3
3
  # WaterDrop library
4
4
  module WaterDrop
5
5
  # Current WaterDrop version
6
- VERSION = '2.4.3'
6
+ VERSION = '2.4.4'
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.4.3
4
+ version: 2.4.4
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: 2022-12-07 00:00:00.000000000 Z
38
+ date: 2022-12-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: karafka-core
@@ -108,6 +108,7 @@ files:
108
108
  - lib/waterdrop/instrumentation/notifications.rb
109
109
  - lib/waterdrop/instrumentation/vendors/datadog/dashboard.json
110
110
  - lib/waterdrop/instrumentation/vendors/datadog/listener.rb
111
+ - lib/waterdrop/patches/rdkafka/metadata.rb
111
112
  - lib/waterdrop/patches/rdkafka/producer.rb
112
113
  - lib/waterdrop/producer.rb
113
114
  - lib/waterdrop/producer/async.rb
metadata.gz.sig CHANGED
@@ -1 +1,2 @@
1
- ������H��[��� $��_Fm�˫����C?��bX�;��7FH��=�1�s,�`F+m(Ƙ�}����H���g3��}�F�ʕlvq��yV�=��`���u˦aB3�S�?I�~A̺^�6��)!��=}l���(�?bU��8 7�.���OgpyP]���fCQ��PZ.� ����?~�%��|��m�\�����˃/�4#g(=E�T$Q���I6`(,����&A��l��QD��p"��̏zJ:T0����q�<�B�<Jb��J��E��f}%)x{ ��#A�[v��j6�%�b1��o�㳾W�T�w�%k�g�Z�*
1
+ ">�h �1}�T"�ml 戦��&nG �>�M���i挾>~r:�I��?���&[x������L^Rr��'��J[��cHW��5�s���i��|�g��X�Ƨ�mZIoK4��o���7���'Qn����s��X�����T�b+l�쨪 �ȊKͳ��E �W���44I��ȡ iEľ��
2
+ �HI�:5Si���0�X��D���$sb<��ܘhfF�ygC��j�F� ���YR�@@� ���x���1<X��k�L\�+kHǞ��E{7�ޭ�R�Y���C�~q�xf���UX���F~�I��B���H^ȲF�R�G�`���x2�0�U�