karafka-rdkafka 0.13.4 → 0.13.5

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