[Bug][Zeta] Worker crash during cancellation resolves job as FAILED
What happened
SplitClusterFaultToleranceIT.testStreamJobCancelResolvesWhenWorkerCrashesBeforeCancelAck expects the job to reach CANCELED after cancellation has started and a worker crashes before the cancel acknowledgement arrives. Instead, the job reaches FAILED.
I reproduced the same result on the unmodified dev base 6ee0c374478a7c8be090e3eb33895027c5ac2ffd and on #11602 head a283df0d52b1fc1935ae6358d80518a5af333ae5, using JDK 17.0.19. Both runs timed out after one minute with expected: <CANCELED> but was: <FAILED>.
This is separate from #11602, which changes terminal metrics retry behavior and does not modify the cancellation test or terminal-state code. It also differs from #11679: that issue reports a client that never reaches a terminal status, while this case reaches FAILED instead of the expected CANCELED.
Reproduction
Run the focused E2E test on dev:
.\mvnw.cmd -B -T 1 verify '-DskipUT=true' '-DskipIT=false' '-DfailIfNoTests=false' '-Dlicense.skipAddThirdParty=true' '-Dskip.ui=true' --no-snapshot-updates -pl :connector-seatunnel-e2e-base,:connector-console-seatunnel-e2e -am -Pci '-Dit.test=SplitClusterFaultToleranceIT#testStreamJobCancelResolvesWhenWorkerCrashesBeforeCancelAck'Expected behavior
Once cancellation has begun, a worker crash before the cancel acknowledgement should not change the job's terminal state from CANCELED to FAILED.
The review trace points at SubPlan.getPipelineEndState() and addPhysicalVertexCallBack() as the likely terminal-state decision path. I have not changed that path as part of the metrics PR.
Source: apache/seatunnel