DanielLeens commented on PR #11856:
URL: https://github.com/apache/seatunnel/pull/11856#issuecomment-6138789823

   @SEZ9 I pushed `eed3d9f2f41` to close the remaining F1/F2 items from 
https://github.com/apache/seatunnel/pull/11856#issuecomment-5852104617.
   
   - **F1 lifecycle assumption:** `SeaTunnelServer.java:280-285` now documents 
that the marker write relies on Hazelcast 5.1 `LifecycleServiceImpl#shutdown()` 
publishing `SHUTTING_DOWN` before distributed-object proxies stop accepting the 
write, and explicitly asks that this ordering be re-verified on a Hazelcast 
upgrade.
   - **F2 restore guard:** `CoordinatorService.java:1065-1117` now encloses the 
entire active-job restore phase in `try/finally`. 
`restoringRunningJobsFromMasterSwitch` is reset after success and also after 
worker-wait interruption, future failure, or any other exceptional exit. This 
closes the bug where every later marker was retained until its five-minute TTL.
   - **F2 regression coverage:** 
`CoordinatorServiceTest#testGracefulMarkerClearsAfterActiveJobMasterSwitchRestore`
 (`:305-391`) runs a real two-node cluster, submits a live streaming job, 
switches the active master, waits for the job to be running on the new master, 
then verifies a subsequent graceful-removal marker is removed immediately 
rather than retained.
   - **Non-clearing restore read:** `PhysicalVertex.java:273-278` now states 
explicitly that the restore-path read is intentionally non-clearing and why the 
membership callback owns the conditional clear.
   
   The earlier F3-F8 fixes remain present: member-removal failures still carry 
`JobException`, the marker has Hazelcast entry TTL plus conservative timestamp 
validation, WARN/ERROR classification is typed rather than message-matched, the 
offline message has one producer, and both EN/ZH recovery docs are present.
   
   Formatting verification on `eed3d9f2f41`: module-scoped `spotless:apply`, 
`spotless:check`, and `git diff --check` passed. Per repository policy I did 
not run local compilation/tests; the new GitHub CI run is the runtime 
verification. The prior head's only completed failing test was unrelated 
`PayPalClientTest.closeWakesRetryWait` on Windows; the remaining long-running 
jobs were cancelled at the workflow deadline. I will not claim the requested 
per-method evidence for `testGracefulShutdownPublishesMemberRemovalMarker` 
until the new CI run has actually executed it.
   


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