26
26
import com .starrocks .common .util .ThreadUtil ;
27
27
import com .starrocks .common .util .TimeUtils ;
28
28
import com .starrocks .common .util .UUIDUtil ;
29
+ import com .starrocks .persist .ImageWriter ;
30
+ import com .starrocks .persist .metablock .SRMetaBlockReader ;
29
31
import com .starrocks .qe .ConnectContext ;
32
+ import com .starrocks .scheduler .history .TaskRunHistory ;
30
33
import com .starrocks .scheduler .persist .TaskRunStatus ;
31
34
import com .starrocks .scheduler .persist .TaskRunStatusChange ;
32
35
import com .starrocks .server .GlobalStateMgr ;
@@ -886,4 +889,49 @@ public void testTaskRunWithLargeDefinition3() {
886
889
String definition = taskRun1 .getStatus ().getDefinition ();
887
890
Assert .assertTrue (definition == null );
888
891
}
892
+
893
+ @ Test
894
+ public void saveTasksV2SkipsSkippedTaskRunStatuses () throws Exception {
895
+ UtFrameUtils .PseudoImage image = new UtFrameUtils .PseudoImage ();
896
+ {
897
+ TaskManager taskManager = new TaskManager ();
898
+ ImageWriter imageWriter = image .getImageWriter ();
899
+
900
+ Task task = new Task ("task" );
901
+ task .setId (1L );
902
+ taskManager .replayCreateTask (task );
903
+
904
+ TaskRunStatus skippedStatus = new TaskRunStatus ();
905
+ skippedStatus .setTaskId (1 );
906
+ skippedStatus .setQueryId ("task_run_1" );
907
+ skippedStatus .setTaskName ("task_run_1" );
908
+ skippedStatus .setState (Constants .TaskRunState .SKIPPED );
909
+ skippedStatus .setExpireTime (System .currentTimeMillis () + 1000000 );
910
+ taskManager .replayCreateTaskRun (skippedStatus );
911
+
912
+ TaskRunStatus validStatus = new TaskRunStatus ();
913
+ validStatus .setTaskId (2 );
914
+ validStatus .setQueryId ("task_run_2" );
915
+ validStatus .setTaskName ("task_run_2" );
916
+ validStatus .setState (Constants .TaskRunState .SUCCESS );
917
+ validStatus .setExpireTime (System .currentTimeMillis () + 1000000 );
918
+ taskManager .replayCreateTaskRun (validStatus );
919
+
920
+ TaskRunHistory taskRunHistory = taskManager .getTaskRunHistory ();
921
+ Assert .assertEquals (2 , taskRunHistory .getTaskRunCount ());
922
+
923
+ taskManager .saveTasksV2 (imageWriter );
924
+ }
925
+
926
+ SRMetaBlockReader imageReader = image .getMetaBlockReader ();
927
+ {
928
+ TaskManager taskManager = new TaskManager ();
929
+ taskManager .loadTasksV2 (imageReader );
930
+ TaskRunHistory taskRunHistory = taskManager .getTaskRunHistory ();
931
+ Assert .assertEquals (2 , taskRunHistory .getTaskRunCount ());
932
+ taskRunHistory .getInMemoryHistory ()
933
+ .stream ()
934
+ .forEach (status -> Assert .assertEquals (status .getState (), Constants .TaskRunState .SUCCESS ));
935
+ }
936
+ }
889
937
}
0 commit comments