karafka-rdkafka 0.13.4 → 0.13.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: 501bf43232e0cd64e51a55a22391d0e47d1259f8e77c5687ec3f4a9140e0f3d8
4
- data.tar.gz: a4881cbe3e0f9b4a11c1348cc368b63318d6f784470374132196c1077b09af07
3
+ metadata.gz: 460d2befd6142375c9e19c1874c2c44e749e48d91119395a0e3a2dcee37ddf67
4
+ data.tar.gz: ca6a6f51754841d6b8bce3cd63d644242e28231c3244969264df0f00061ceae6
5
5
  SHA512:
6
- metadata.gz: ac34dee49f449f4f05e570e6b9c6405e312f5d3e8a76fa15b27f9ed5d8c2c143ae33b9ab3a91efaf6b51c5c14cc081f49e734e431fbe538c67b80ab4a0db18c9
7
- data.tar.gz: ffdf9a1ae4288656e28705ed1d08f9f85b81d2befc3b00b3b079e2aab3f42221c14d996fe2cdafdb92ea5659376c2cd9208779699c0fbcc613a0ac3fbed9b8e6
6
+ metadata.gz: '09f5ee7ad4eeaed20631d12810948defc1812bce1962bdf018fc792db6fb59b82431fdc69bcea76968edd7a40b1c4537d01900d1eb084190b607c9682084517e'
7
+ data.tar.gz: 5d525cb93564d1bedde6d4bd6f7022bf064610cab1a8cb6ad676c0fe2097946a160a87f6e3227c73b3bbd7804802130c56a17fef28cb3c06db9d796f62369714
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 0.13.5
2
+ * Fix DeliveryReport `create_result#error` being nil despite an error being associated with it
3
+
1
4
  # 0.13.4
2
5
  * Always call initial poll on librdkafka to make sure oauth bearer cb is handled pre-operations.
3
6
 
@@ -18,7 +18,22 @@ module Rdkafka
18
18
 
19
19
  # @return [DeliveryReport] a report on the delivery of the message
20
20
  def create_result
21
- DeliveryReport.new(self[:partition], self[:offset], self[:topic_name].read_string)
21
+ if self[:response] == 0
22
+ DeliveryReport.new(
23
+ self[:partition],
24
+ self[:offset],
25
+ self[:topic_name].read_string
26
+ )
27
+ else
28
+ DeliveryReport.new(
29
+ self[:partition],
30
+ self[:offset],
31
+ # For part of errors, we will not get a topic name reference and in cases like this
32
+ # we should not return it
33
+ self[:topic_name].null? ? nil : self[:topic_name].read_string,
34
+ RdkafkaError.new(self[:response])
35
+ )
36
+ end
22
37
  end
23
38
  end
24
39
  end
@@ -12,8 +12,9 @@ module Rdkafka
12
12
  # @return [Integer]
13
13
  attr_reader :offset
14
14
 
15
- # The name of the topic this message was produced to.
16
- # @return [String]
15
+ # The name of the topic this message was produced to or nil in case delivery failed and we
16
+ # we not able to get the topic reference
17
+ # @return [String, nil]
17
18
  attr_reader :topic_name
18
19
 
19
20
  # Error in case happen during produce.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rdkafka
4
- VERSION = "0.13.4"
4
+ VERSION = "0.13.5"
5
5
  LIBRDKAFKA_VERSION = "2.2.0"
6
6
  LIBRDKAFKA_SOURCE_SHA256 = "af9a820cbecbc64115629471df7c7cecd40403b6c34bfdbb9223152677a47226"
7
7
  end
@@ -44,4 +44,19 @@ describe Rdkafka::Producer::DeliveryHandle do
44
44
  end
45
45
  end
46
46
  end
47
+
48
+ describe '#create_result' do
49
+ let(:pending_handle) { false }
50
+ let(:report) { subject.create_result }
51
+
52
+ context 'when response is 0' do
53
+ it { expect(report.error).to eq(nil) }
54
+ end
55
+
56
+ context 'when response is not 0' do
57
+ let(:response) { 1 }
58
+
59
+ it { expect(report.error).to eq(Rdkafka::RdkafkaError.new(response)) }
60
+ end
61
+ end
47
62
  end
@@ -627,4 +627,20 @@ describe Rdkafka::Producer do
627
627
  end
628
628
  end
629
629
  end
630
+
631
+ context "when not being able to deliver the message" do
632
+ let(:producer) do
633
+ rdkafka_producer_config(
634
+ "bootstrap.servers": "localhost:9093",
635
+ "message.timeout.ms": 100
636
+ ).producer
637
+ end
638
+
639
+ it "should contain the error in the response when not deliverable" do
640
+ handler = producer.produce(topic: 'produce_test_topic', payload: nil)
641
+ # Wait for the async callbacks and delivery registry to update
642
+ sleep(2)
643
+ expect(handler.create_result.error).to be_a(Rdkafka::RdkafkaError)
644
+ end
645
+ end
630
646
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karafka-rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.4
4
+ version: 0.13.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
@@ -35,7 +35,7 @@ cert_chain:
35
35
  AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
36
36
  msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
37
37
  -----END CERTIFICATE-----
38
- date: 2023-08-22 00:00:00.000000000 Z
38
+ date: 2023-09-16 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ffi
@@ -258,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
258
  - !ruby/object:Gem::Version
259
259
  version: '0'
260
260
  requirements: []
261
- rubygems_version: 3.3.7
261
+ rubygems_version: 3.3.4
262
262
  signing_key:
263
263
  specification_version: 4
264
264
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
metadata.gz.sig CHANGED
Binary file