You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by "Standing-Man (via GitHub)" <gi...@apache.org> on 2026/04/26 09:48:39 UTC

[PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Standing-Man opened a new pull request, #3180:
URL: https://github.com/apache/iggy/pull/3180

   ## Which issue does this PR close?
   
   <!--
   We generally require a GitHub issue to be filed for all bug fixes and enhancements. You can link an issue to this PR using the GitHub syntax. For example `Closes #123` indicates that this PR will close issue #123.
   -->
   
   Closes #2927
   
   ## Rationale
   
   <!--
   Why is this change needed? If the issue explains it well, a one-liner is fine.
   -->
   
   ## What changed?
   
   <!--
   2-4 sentences. Problem first (before), then solution (after).
   
   GOOD:
   
   "Messages were unavailable when background message_saver committed the
   journal and started async disk I/O before completion. Polling during
   this window found neither journal nor disk data.
   
   The fix freezes journal batches in the in-flight buffer before async persist."
   
   GOOD:
   
   "When many small messages accumulate in the journal, the flush passes
   thousands of IO vectors to writev(), exceeding IOV_MAX (1024 on Linux)."
   
   BAD:
   - Walls of text
   - "This PR adds..." (we can see the diff)
   -->
   
   ## Local Execution
   
   - Passed / not passed
   Passed
   - Pre-commit hooks ran / not ran
   Ran
   
   <!--
   You must run your code locally before submitting.
   "Relying on CI" is not acceptable - PRs from authors who haven't run the code will be closed.
   
   Did you have `prek` installed? It runs automatically on commit and covers all project languages. See [CONTRIBUTING.md](https://github.com/apache/iggy/blob/master/CONTRIBUTING.md).
   -->
   
   ## AI Usage
   
   <!--
   If AI tools were used, please answer:
   1. Which tools? (e.g., GitHub Copilot, Claude, ChatGPT)
   2. Scope of usage? (e.g., autocomplete, generated functions, entire implementation)
   3. How did you verify the generated code works correctly?
   4. Can you explain every line of the code if asked?
   
   If no AI tools were used, write "None" or delete this section.
   -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "Standing-Man (via GitHub)" <gi...@apache.org>.
Standing-Man commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4325219823

   Hi @hubcio, @spetz, @numinnex and @mmodzelewski, just a gentle ping — this PR is ready on my side. Could you please take a look when convenient?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "hubcio (via GitHub)" <gi...@apache.org>.
hubcio commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4499516366

   thanks for being reasonable. we really appreciate sticking around.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "kriti-sc (via GitHub)" <gi...@apache.org>.
kriti-sc commented on code in PR #3180:
URL: https://github.com/apache/iggy/pull/3180#discussion_r3177104908


##########
core/connectors/runtime/src/sink.rs:
##########
@@ -591,6 +591,100 @@ async fn process_messages(
         messages.as_ptr(),
         messages.len(),
     );
+    if status != 0 {
+        return Err(RuntimeError::SinkConsumeFailed {
+            plugin_id,
+            status,
+            stream: topic_metadata.stream.clone(),
+            topic: topic_metadata.topic.clone(),
+            partition_id: messages_metadata.partition_id,
+            current_offset: messages_metadata.current_offset,
+            schema: messages_metadata.schema.to_string(),
+            messages_count: processed_count,

Review Comment:
   We should aim for consistency here as messages_count & processed_count mean different things in Iggy. The field name should be renamed to `processed_count`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "kriti-sc (via GitHub)" <gi...@apache.org>.
kriti-sc commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4364523190

   Out of scope for this PR, but Iggy has an error count metric `iggy_connector_errors_total` that is not being incremented for sink failures. Might be worth addressing in this PR as it is already touching the error path.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "Standing-Man (via GitHub)" <gi...@apache.org>.
Standing-Man closed pull request #3180: fix(connectors): propagate sink consume FFI failures with batch context
URL: https://github.com/apache/iggy/pull/3180


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "kriti-sc (via GitHub)" <gi...@apache.org>.
kriti-sc commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4364558808

   Correct me if I am wrong, but does the sink exit after it throws an error? Exiting the sink if one message batch fails is too aggressive a strategy. This paradigm sees a lot of transient failures. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "hubcio (via GitHub)" <gi...@apache.org>.
hubcio commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4344025457

   @mlevkov @atharvalade @kriti-sc please review this once you have some free time - you're doing most contributions in connectors.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "Standing-Man (via GitHub)" <gi...@apache.org>.
Standing-Man commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4499434194

   Thanks a lot for the detailed reviews, @hubcio and @kriti-sc! I’m going to release my claim on this issue for now and come back to it after I’ve gained a deeper understanding of the connector internals 😄


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "hubcio (via GitHub)" <gi...@apache.org>.
hubcio commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4450483301

   /ready


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "hubcio (via GitHub)" <gi...@apache.org>.
hubcio commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4325690037

   We will check in upcoming days.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "kriti-sc (via GitHub)" <gi...@apache.org>.
kriti-sc commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4470262597

   /author


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "Standing-Man (via GitHub)" <gi...@apache.org>.
Standing-Man commented on code in PR #3180:
URL: https://github.com/apache/iggy/pull/3180#discussion_r3254734679


##########
core/connectors/runtime/src/sink.rs:
##########
@@ -591,6 +591,100 @@ async fn process_messages(
         messages.as_ptr(),
         messages.len(),
     );
+    if status != 0 {
+        return Err(RuntimeError::SinkConsumeFailed {
+            plugin_id,
+            status,
+            stream: topic_metadata.stream.clone(),
+            topic: topic_metadata.topic.clone(),
+            partition_id: messages_metadata.partition_id,
+            current_offset: messages_metadata.current_offset,
+            schema: messages_metadata.schema.to_string(),
+            messages_count: processed_count,

Review Comment:
   Thanks, I’ve updated the field name to `processed_count` for consistency.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "Standing-Man (via GitHub)" <gi...@apache.org>.
Standing-Man commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4470909451

   > Correct me if I am wrong, but does the sink exit after it throws an error? Exiting the sink if one message batch fails is too aggressive a strategy. This paradigm of data shipping from a streaming system to a target system sees a lot of transient failures.
   
   Thanks for the review — good point. I’ll update the PR so non-zero FFI consume statuses are logged with batch context without terminating the sink task. Failed batches will return a processed_count of 0 and won’t be counted as successfully processed.
   
   /ready


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "hubcio (via GitHub)" <gi...@apache.org>.
hubcio commented on code in PR #3180:
URL: https://github.com/apache/iggy/pull/3180#discussion_r3257997823


##########
core/connectors/sinks/http_sink/src/lib.rs:
##########
@@ -1195,8 +1195,8 @@ impl Sink for HttpSink {
     ///
     /// **Runtime note**: The FFI boundary in `sdk/src/sink.rs` maps `consume()`'s `Result` to
     /// `i32` (0=ok, 1=err), but the runtime's `process_messages()` in `runtime/src/sink.rs`
-    /// discards that return code. All retry logic lives inside this method — returning `Err`
-    /// does not trigger a runtime-level retry.
+    /// treats a non-zero return code as a processing error. All retry logic lives inside this
+    /// method — returning `Err` stops the sink task but does not retry the already-polled batch.

Review Comment:
   says `returning Err stops the sink task`. false - `runtime/src/sink.rs:663` returns `Ok(0)` on non-zero status and the loop at `sink.rs:312` keeps polling. line 1240 below (`runtime will receive non-zero FFI status`) is technically true, but the runtime does nothing with it beyond logging. match the actual behavior here or change the runtime.



##########
core/connectors/sinks/http_sink/README.md:
##########
@@ -786,7 +786,7 @@ cargo test -p integration --test connectors -- http_sink
 
 ## Delivery Semantics
 
-All retry logic lives inside `consume()`. The connector runtime invokes `consume()` via an FFI callback that returns an `i32` status code. The runtime does not inspect this return value (see `process_messages()` in `runtime/src/sink.rs`), so errors logged by the sink are not propagated to the runtime's retry or alerting mechanisms. Additionally, consumer group offsets are committed before processing ([runtime issue #1](#known-limitations)). This means:
+All retry logic lives inside `consume()`. The connector runtime invokes `consume()` via an FFI callback that returns an `i32` status code. A non-zero return value is treated as a processing error by `process_messages()` in `runtime/src/sink.rs`, stopping the sink task and surfacing the failure to the runtime. Additionally, consumer group offsets are committed before processing ([runtime issue #1](#known-limitations)). This means:

Review Comment:
   this line says non-zero status `stops the sink task and surfaces the failure to the runtime`, but `process_messages()` in `runtime/src/sink.rs` returns `Ok(0)` on non-zero status (line 663) and the consume loop at `sink.rs:312` keeps polling. also self-contradicts line 798 (`failed batch is not retried`) within this same file. pick one story: either propagate `Err` from `process_messages` so `consume_messages` exits (matches this doc), or rewrite to `logs the failure and continues polling; failed batch is dropped`.



##########
core/connectors/runtime/src/sink.rs:
##########
@@ -649,5 +649,90 @@ async fn process_messages(
         messages.len(),
     );
 
+    if status != 0 {
+        error!(
+            "Sink connector with ID: {plugin_id} failed to consume {processed_count} processed messages \
+             from stream: {}, topic: {}, partition: {}, current offset: {}, schema: {}, status: {}",
+            topic_metadata.stream,
+            topic_metadata.topic,
+            messages_metadata.partition_id,
+            messages_metadata.current_offset,
+            messages_metadata.schema,
+            status,
+        );
+        return Ok(0);

Review Comment:
   `Ok(0)` here drops the batch silently. `AutoCommit::When(AutoCommitWhen::PollingMessages)` at `sink.rs:467` commits offsets server-side before `consume()` runs (see `consumer.rs:181-185`, `auto_commit_after_polling=true`), so the failed batch is already committed when this return fires. pre-existing at-most-once behavior, but this pr introduces a structured failure point without taking ownership of the loss - no dlq, no retry, no error metric. either propagate `Err` and exit the task (matches the docs at `README.md:789` and `lib.rs:1199`) or add a `messages_failed` counter + backoff and own the at-most-once semantics explicitly.
   
   note: this also affects `mongodb_sink/README.md:135`, which still claims at-least-once. see review body for cross-sink impact.



##########
core/connectors/runtime/src/sink.rs:
##########
@@ -649,5 +649,90 @@ async fn process_messages(
         messages.len(),
     );
 
+    if status != 0 {
+        error!(
+            "Sink connector with ID: {plugin_id} failed to consume {processed_count} processed messages \
+             from stream: {}, topic: {}, partition: {}, current offset: {}, schema: {}, status: {}",
+            topic_metadata.stream,
+            topic_metadata.topic,
+            messages_metadata.partition_id,
+            messages_metadata.current_offset,
+            messages_metadata.schema,
+            status,
+        );
+        return Ok(0);
+    }
+
     Ok(processed_count)
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+    use iggy::prelude::IggyMessageHeader;
+    use iggy_connector_sdk::{Error, Payload, Schema};
+
+    struct TestDecoder;
+
+    impl StreamDecoder for TestDecoder {
+        fn schema(&self) -> Schema {
+            Schema::Raw
+        }
+
+        fn decode(&self, payload: Vec<u8>) -> Result<Payload, Error> {
+            Ok(Payload::Raw(payload))
+        }
+    }
+
+    extern "C" fn failing_consume(

Review Comment:
   `failing_consume` stub takes 6 raw pointer/len args with `_` prefix and never derefs them. acceptable for the narrow status-check path (no deref happens before the return), but brittle if the ffi signature evolves. nit.



##########
core/connectors/runtime/src/sink.rs:
##########
@@ -649,5 +649,90 @@ async fn process_messages(
         messages.len(),
     );
 
+    if status != 0 {

Review Comment:
   sdk returns `-1` at `sdk/src/sink.rs:141,156,169,180` for abi/decode failures (missing instance, postcard decode fail) and `1` at `sdk/src/sink.rs:233` for sink `consume()` `Err`. this `if status != 0` collapses both into the same log+drop+continue. `-1` from `instance not found` is reachable on plugin lifecycle bugs and means the runtime/sdk abi is broken - retrying is pointless. positive status is data-plane and may continue. either `match status { -1 => Err(...), 1.. => log+continue, 0 => Ok }` or document the `i32` contract on `ConsumeCallback` so the conflation is intentional.



##########
core/connectors/runtime/src/sink.rs:
##########
@@ -649,5 +649,90 @@ async fn process_messages(
         messages.len(),
     );
 
+    if status != 0 {
+        error!(
+            "Sink connector with ID: {plugin_id} failed to consume {processed_count} processed messages \
+             from stream: {}, topic: {}, partition: {}, current offset: {}, schema: {}, status: {}",
+            topic_metadata.stream,
+            topic_metadata.topic,
+            messages_metadata.partition_id,
+            messages_metadata.current_offset,
+            messages_metadata.schema,
+            status,
+        );
+        return Ok(0);

Review Comment:
   missing `metrics.increment_errors(plugin_key, ConnectorType::Sink)` call. `metrics.rs:213` exposes the api; `source.rs:422,436` already calls it for the symmetric source-side failure path. operators currently only see this failure as drift between `messages_consumed` (`sink.rs:339`) and `messages_processed` (`sink.rs:377`). trivial one-liner.



##########
core/connectors/runtime/src/sink.rs:
##########
@@ -649,5 +649,90 @@ async fn process_messages(
         messages.len(),
     );
 
+    if status != 0 {
+        error!(
+            "Sink connector with ID: {plugin_id} failed to consume {processed_count} processed messages \
+             from stream: {}, topic: {}, partition: {}, current offset: {}, schema: {}, status: {}",
+            topic_metadata.stream,
+            topic_metadata.topic,
+            messages_metadata.partition_id,
+            messages_metadata.current_offset,
+            messages_metadata.schema,
+            status,
+        );
+        return Ok(0);
+    }
+
     Ok(processed_count)
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+    use iggy::prelude::IggyMessageHeader;
+    use iggy_connector_sdk::{Error, Payload, Schema};
+
+    struct TestDecoder;
+
+    impl StreamDecoder for TestDecoder {
+        fn schema(&self) -> Schema {
+            Schema::Raw
+        }
+
+        fn decode(&self, payload: Vec<u8>) -> Result<Payload, Error> {
+            Ok(Payload::Raw(payload))
+        }
+    }
+
+    extern "C" fn failing_consume(
+        _plugin_id: u32,
+        _topic_meta_ptr: *const u8,
+        _topic_meta_len: usize,
+        _messages_meta_ptr: *const u8,
+        _messages_meta_len: usize,
+        _messages_ptr: *const u8,
+        _messages_len: usize,
+    ) -> i32 {
+        1
+    }
+
+    #[tokio::test]

Review Comment:
   single test covers `status=1` only. no loop-survival test (assert that the next batch reaches the ffi after a failure), no `-1` vs `1` distinction (impossible given the conflation flagged at line 652), no metrics-drift assertion. a 2-batch test where the first fails and the second succeeds would have caught the doc/code contradiction at `README.md:789` and `lib.rs:1199`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(connectors): propagate sink consume FFI failures with batch context [iggy]

Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #3180:
URL: https://github.com/apache/iggy/pull/3180#issuecomment-4321764310

   ## [Codecov](https://app.codecov.io/gh/apache/iggy/pull/3180?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :x: Patch coverage is `0%` with `79 lines` in your changes missing coverage. Please review.
   :white_check_mark: Project coverage is 20.02%. Comparing base ([`aa4762f`](https://app.codecov.io/gh/apache/iggy/commit/aa4762fd541b5f09771e0543403842f32d29f3e9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`5df8a9a`](https://app.codecov.io/gh/apache/iggy/commit/5df8a9a1ae1329931e44b8b3c14007dce23c4f97?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 1 commits behind head on master.
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/iggy/pull/3180?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
   |---|---|---|
   | [core/connectors/runtime/src/sink.rs](https://app.codecov.io/gh/apache/iggy/pull/3180?src=pr&el=tree&filepath=core%2Fconnectors%2Fruntime%2Fsrc%2Fsink.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29yZS9jb25uZWN0b3JzL3J1bnRpbWUvc3JjL3NpbmsucnM=) | 0.00% | [78 Missing :warning: ](https://app.codecov.io/gh/apache/iggy/pull/3180?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [core/connectors/runtime/src/error.rs](https://app.codecov.io/gh/apache/iggy/pull/3180?src=pr&el=tree&filepath=core%2Fconnectors%2Fruntime%2Fsrc%2Ferror.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29yZS9jb25uZWN0b3JzL3J1bnRpbWUvc3JjL2Vycm9yLnJz) | 0.00% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/iggy/pull/3180?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   
   :x: Your patch check has failed because the patch coverage (0.00%) is below the target coverage (50.00%). You can increase the patch coverage or adjust the [target](https://docs.codecov.com/docs/commit-status#target) coverage.
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@              Coverage Diff              @@
   ##             master    #3180       +/-   ##
   =============================================
   - Coverage     73.63%   20.02%   -53.61%     
     Complexity      943      943               
   =============================================
     Files          1141     1139        -2     
     Lines        100869    89378    -11491     
     Branches      78045    66554    -11491     
   =============================================
   - Hits          74271    17895    -56376     
   - Misses        23938    71061    +47123     
   + Partials       2660      422     -2238     
   ```
   
   | [Components](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=components&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [Rust Core](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `1.77% <0.00%> (-72.84%)` | :arrow_down: |
   | [Java SDK](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `62.30% <ø> (ø)` | |
   | [C# SDK](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `69.42% <ø> (ø)` | |
   | [Python SDK](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `81.43% <ø> (ø)` | |
   | [Node SDK](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `91.40% <ø> (ø)` | |
   | [Go SDK](https://app.codecov.io/gh/apache/iggy/pull/3180/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `39.41% <ø> (ø)` | |
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/iggy/pull/3180?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [core/connectors/runtime/src/error.rs](https://app.codecov.io/gh/apache/iggy/pull/3180?src=pr&el=tree&filepath=core%2Fconnectors%2Fruntime%2Fsrc%2Ferror.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29yZS9jb25uZWN0b3JzL3J1bnRpbWUvc3JjL2Vycm9yLnJz) | `0.00% <0.00%> (ø)` | |
   | [core/connectors/runtime/src/sink.rs](https://app.codecov.io/gh/apache/iggy/pull/3180?src=pr&el=tree&filepath=core%2Fconnectors%2Fruntime%2Fsrc%2Fsink.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-Y29yZS9jb25uZWN0b3JzL3J1bnRpbWUvc3JjL3NpbmsucnM=) | `0.00% <0.00%> (-74.52%)` | :arrow_down: |
   
   ... and [637 files with indirect coverage changes](https://app.codecov.io/gh/apache/iggy/pull/3180/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   </details>
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@iggy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org