Han You created FLINK-40810:
-------------------------------

             Summary: FlinkSessionJob deletion leaves the job running when a 
transient Job Not Found error was never cleared
                 Key: FLINK-40810
                 URL: https://issues.apache.org/jira/browse/FLINK-40810
             Project: Flink
          Issue Type: Bug
          Components: Kubernetes Operator
            Reporter: Han You


When a running session job is briefly missing from the JobManager's job 
overview (for example, one possible cause is 
https://issues.apache.org/jira/browse/FLINK-40602), {{JobStatusObserver}} sets 
{{status.error}} to {{"Job Not Found"}}. Once the job shows up again the job 
state goes back to {{RUNNING}}, but the error is never cleared. Later, when the 
{{FlinkSessionJob}} is deleted, {{SessionJobReconciler.cleanupInternal}} reads 
that stale error as proof that the job is already gone. It removes the 
finalizer without taking a savepoint or cancelling the job. The job keeps 
running on the session cluster, and
- the operator no longer manages it.
- When a controller recreates the {{FlinkSessionJob}} for the same pipeline, 
two jobs can end up running against the same sources and sinks. The same risk 
as FLINK-39891, reached through a different path.
- The expected savepoint on deletion is never taken.
- There is no visible sign. The CR reports {{RUNNING}} / {{STABLE}}, the only 
event on deletion is {{Cleanup}}, and nothing points at the stale error.

We hit this in production. A single JobManager HA recovery left every session 
job on that cluster carrying the stale error.





--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to