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]
