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]

Reply via email to