SEZ9 commented on issue #12492: URL: https://github.com/apache/seatunnel/issues/12492#issuecomment-6051893797
Thanks @Rangsh — the recorded contract matches the agreed direction, and the gate stands: no implementation on this follow-up until #12081 is merged and this work is rebased on it. Confirming the points as the locked v1 scope: - Fatal VM / thread / linkage errors (and any non-enumerated `Error`): best-effort `done(false)` on the affected request, trip the sticky permanent fail-close, then rethrow. No in-process consumer resume, no writer reopen. - Already-queued APPENDs: best-effort completed with failure, not left to wait timeouts. - Later APPENDs: observe permanent fail-close immediately without calling `write(...)`. - `Exception` handling from #12081 stays unchanged. - Regression uses a safe synthetic `Error` only, never a real OOM. Two things to pin down before the PR so there's no ambiguity at review time: 1. **Single owner for the fail-close trip.** State explicitly whether the trip + best-effort completion happens in the handler's own catch path or in the custom Disruptor `ExceptionHandler`, and make sure it is idempotent so a fatal error that passes through both does not double-complete a future or race the sticky flag. 2. **Queued-APPEND completion must not touch the writer.** The best-effort failure completion for already-queued events should only complete their futures — confirm it cannot re-enter `write(...)` or any writer state once fail-close is tripped. Once #12081 lands, please open the PR against the rebased baseline with the regression test included and reference this contract in the description. <!-- streview-comment:1600 --> -- 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]
