DanielCarter-stack commented on issue #10627:
URL: https://github.com/apache/seatunnel/issues/10627#issuecomment-4095412081

   <!-- code-pr-reviewer -->
   Thank you for the detailed analysis. I've verified the issues in the current 
codebase:
   
   1. **`DorisSinkWriter.checkDone()`** - The scheduled executor runs 
indefinitely with `scheduleWithFixedDelay` (L151-152 in 
`DorisSinkWriter.java`). When `Connection refused` occurs, it only logs errors 
without circuit breaking or backoff.
   
   2. **`DorisCommitter.commitTransaction()`** - Catches `IOException` and 
immediately retries without delay (L77-99 in `DorisCommitter.java`).
   
   3. **`DorisCommitter.abortTransaction()`** - The `maxRetry` field (L51) is 
never initialized from config, defaulting to 0 and breaking the retry loop 
(L135-141). The config `sink.max-retries` exists (`DorisSinkOptions.java` 
L48-52) but isn't used here.
   
   This confirms the cascading failure risk during prolonged Doris BE 
unavailability.
   
   **Would you be interested in contributing a fix?** The main changes needed 
are:
   - Initialize `maxRetry` in `DorisCommitter` constructor
   - Add exponential backoff to retry loops
   - Implement circuit breaker logic in `DorisSinkWriter` with a failure 
threshold config
   
   Otherwise, we'll keep this open for the community. Labels updated.


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