Rangsh commented on PR #12081: URL: https://github.com/apache/seatunnel/pull/12081#issuecomment-5642873865
@SEZ9 thanks for the two remaining F4 confirms on `f17373ac5` — answering both against the new head `6d7e999f0`: **1. Survivability test (F1/F2/F4)** — confirmed, no production change needed. `WALWorkHandlerSurvivabilityTest.nonIoExceptionFromWriteShouldNotKillWorkerAndSubsequentAppendIsFailClosed` asserts exactly the behavior you listed: worker survives a non-`IOException` from `writer.write()`, first future completes with `done(false)`, second APPEND is fail-closed (`write()` once only, `isAppendBlockedAfterWriteFailure()` sticky). Happy for you to verify against the diff before marking F4 resolved. **2. Fail-close on flush/sync** — finishing the earlier thought that got cut off at `"complete with done(false) wit"`: > …complete with `done(false)` without touching the stream — same as a failure from the append/`write` bytes themselves. There is no separate caveat path where flush/sync throws but the sticky flag is *not* set: `WALWorkHandler` wraps `writer.write(...)` in `catch (Exception)`, and `HdfsWriter.write` always ends in `flush()` (the single `hsync`-family call), so any exception from that sync path trips `appendBlockedAfterWriteFailure` the same way. There was previously no test that drove the failure through `flush()`/`hsync` rather than `write()` throwing at the mock boundary. Added `WALWorkHandlerSurvivabilityTest.flushFailureFromHdfsWriterShouldFailCloseSubsequentAppend`: real `HdfsWriter` with a mocked `FSDataOutputStream` where append/`write(byte[])` succeeds and only `hsync()` throws; asserts the same fail-close contract plus `verify(out, times(1)).hsync()`. Also addressed @DanielLeens Issue 1 from the latest review in the same commit: removed the redundant `walDisruptor.tryAppendPublish(...)` in `IMapFileStorage.deleteAll()` (`sendToDisruptorQueue` already publishes). Locally: `WALWorkHandlerSurvivabilityTest` — 2 tests, both green. -- 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]
