surafel58 commented on PR #11974: URL: https://github.com/apache/seatunnel/pull/11974#issuecomment-5462858730
Thanks for the thorough review @DanielLeens. Addressed all four points in 7e01c3b1: - **Issue 1 (attempt/backoff consistency):** flush() now uses `maxAttempts = max(1, retry)` so the status-code retry uses the same total-attempt budget as the base transport retryer (`stopAfterAttempt(retry)`) rather than `retry + 1`. Added a comment noting the base uses Fibonacci backoff while the status path uses capped exponential backoff, both bounded by the same `retry_backoff_*` options. (With default `retry=3`, both paths now do 3 total attempts.) - **Issue 2 (dup/OOO heuristic):** raised the tolerated-400 log from INFO to WARN, and noted in both the code comment and the EN/ZH docs that it is a best-effort match on receiver-specific body wording, so a receiver returning 400 with different wording is not recognized and a false positive would drop the batch. - **Issue 3 (dropped cause):** the retries-exhausted `PrometheusConnectorException` now passes the original exception as its cause instead of only folding the message text. - **Issue 4 (per-attempt visibility):** added a WARN log on each retried status-code attempt, matching the base transport retryer's per-attempt logging. Also added the suggested test `shouldRetainBufferAfterRetriesExhausted`, which asserts the batch stays buffered after an exhausted flush and is re-sent by a later flush (pinning down at-least-once). Full module suite passes locally (15 tests). Thanks again. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
