@@ -230,7 +230,15 @@ public void testUpgrade(FlinkVersion flinkVersion) throws Exception {
230
230
.isFirstDeployment ());
231
231
232
232
JobID jobId = runningJobs .get (0 ).f1 .getJobId ();
233
- verifyJobId (deployment , runningJobs .get (0 ).f1 , runningJobs .get (0 ).f2 , jobId );
233
+
234
+ // Last state upgrade
235
+ FlinkDeployment lastStateUpgrade = ReconciliationUtils .clone (deployment );
236
+ getJobSpec (lastStateUpgrade ).setUpgradeMode (UpgradeMode .LAST_STATE );
237
+ lastStateUpgrade .getSpec ().setRestartNonce (1234L );
238
+ reconciler .reconcile (deployment , context );
239
+ reconciler .reconcile (deployment , context );
240
+ // Make sure jobId is rotated on last-state startup
241
+ verifyJobId (lastStateUpgrade , runningJobs .get (0 ).f1 , runningJobs .get (0 ).f2 , jobId );
234
242
235
243
// Test stateless upgrade
236
244
FlinkDeployment statelessUpgrade = ReconciliationUtils .clone (deployment );
@@ -284,7 +292,10 @@ public void testUpgrade(FlinkVersion flinkVersion) throws Exception {
284
292
SnapshotTriggerType .UPGRADE ,
285
293
getSavepointInfo (statefulUpgrade ).getLastSavepoint ().getTriggerType ());
286
294
assertEquals (SnapshotStatus .SUCCEEDED , getLastSnapshotStatus (statefulUpgrade , SAVEPOINT ));
287
- verifyJobId (deployment , runningJobs .get (0 ).f1 , runningJobs .get (0 ).f2 , jobId );
295
+
296
+ // Make sure jobId rotated on savepoint
297
+ verifyNewJobId (runningJobs .get (0 ).f1 , runningJobs .get (0 ).f2 , jobId );
298
+ jobId = runningJobs .get (0 ).f1 .getJobId ();
288
299
289
300
getJobSpec (deployment ).setUpgradeMode (UpgradeMode .LAST_STATE );
290
301
deployment .getSpec ().setRestartNonce (100L );
@@ -325,7 +336,8 @@ public void testUpgrade(FlinkVersion flinkVersion) throws Exception {
325
336
326
337
assertEquals (1 , flinkService .getRunningCount ());
327
338
assertEquals ("finished_sp" , runningJobs .get (0 ).f0 );
328
- verifyJobId (deployment , runningJobs .get (0 ).f1 , runningJobs .get (0 ).f2 , jobId );
339
+ // Make sure jobId rotated on savepoint
340
+ verifyNewJobId (runningJobs .get (0 ).f1 , runningJobs .get (0 ).f2 , jobId );
329
341
}
330
342
331
343
private void verifyJobId (
@@ -335,6 +347,13 @@ private void verifyJobId(
335
347
assertEquals (conf .get (PipelineOptionsInternal .PIPELINE_FIXED_JOB_ID ), jobId .toHexString ());
336
348
}
337
349
350
+ private void verifyNewJobId (JobStatusMessage status , Configuration conf , JobID jobId ) {
351
+ assertNotEquals (jobId .toHexString (), status .getJobId ());
352
+ assertEquals (
353
+ conf .get (PipelineOptionsInternal .PIPELINE_FIXED_JOB_ID ),
354
+ status .getJobId ().toHexString ());
355
+ }
356
+
338
357
@ NotNull
339
358
private static Savepoint savepointFromSavepointInfo (
340
359
SavepointInfo savepointInfo , Long savepointTriggerNonce ) {
0 commit comments