Dale Lane created FLINK-40374:
---------------------------------
Summary: Redeploying a FlinkSessionJob from an explicit savepoint
fails with IllegalArgumentException: Cannot parse JobID from "null" if the job
was previously suspended
Key: FLINK-40374
URL: https://issues.apache.org/jira/browse/FLINK-40374
Project: Flink
Issue Type: Bug
Components: Kubernetes Operator
Reporter: Dale Lane
For a {{{}FlinkSessionJob{}}}, if a job is suspended with a savepoint, and the
user then tries to explicitly redeploy it from a specific savepoint path (by
setting {{{}spec.job.state=RUNNING{}}}, {{{}spec.job.initialSavepointPath{}}},
and bumping {{{}spec.job.savepointRedeployNonce{}}}), the reconciler fails
instead of redeploying the job.
*Steps to reproduce:*
1. Deploy a {{FlinkSessionJob}} with {{spec.job.upgradeMode=SAVEPOINT}} and
{{{}spec.job.state=RUNNING{}}}.
2. Suspend the job: set {{{}spec.job.state=SUSPENDED{}}}. The operator suspends
the job with a savepoint, and clears the job id
3. Request a redeploy from an explicit savepoint: set
{{{}spec.job.state=RUNNING{}}}, set {{spec.job.initialSavepointPath}} to a
savepoint path, and bump {{spec.job.savepointRedeployNonce}} to a new value.
4. Reconciliation fails with:
{code:java}
org.apache.flink.kubernetes.operator.exception.ReconciliationException:
java.lang.IllegalArgumentException: Cannot parse JobID from "null".
The expected format is [0-9a-fA-F]{32}, e.g. fd72014d4c864993a2e5a9287b4a9c5d.
{code}
The same sequence (suspend, then trigger a savepoint redeploy via
{{savepointRedeployNonce}} + {{{}initialSavepointPath{}}}) works as expected
for {{FlinkDeployment}} in Application mode — it's already covered by an
existing passing test ({{{}ApplicationReconcilerTest.testSavepointRedeploy{}}}).
The failure appears specific to {{{}FlinkSessionJob{}}}.
A test reproducing this issue is available here:
[https://github.com/apache/flink-kubernetes-operator/commit/6a1b76fe9e778effe09946f31c9850f4bcb9dc03]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)