From c97c973ec679b9c22650a2853871e7da01d691b0 Mon Sep 17 00:00:00 2001 From: David Reiss Date: Fri, 31 Mar 2023 11:16:56 -0700 Subject: [PATCH] Use correct time for initial schedule memo (#4128) --- service/frontend/workflow_handler.go | 2 +- service/worker/scheduler/workflow.go | 3 ++- tests/schedule_test.go | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/service/frontend/workflow_handler.go b/service/frontend/workflow_handler.go index 9f52c09d92a..e2218a79c79 100644 --- a/service/frontend/workflow_handler.go +++ b/service/frontend/workflow_handler.go @@ -4969,7 +4969,7 @@ func (wh *WorkflowHandler) cleanScheduleMemo(memo *commonpb.Memo) *commonpb.Memo // This mutates request (but idempotent so safe for retries) func (wh *WorkflowHandler) addInitialScheduleMemo(request *workflowservice.CreateScheduleRequest, args *schedspb.StartScheduleArgs) { - info := scheduler.GetListInfoFromStartArgs(args) + info := scheduler.GetListInfoFromStartArgs(args, time.Now().UTC()) infoBytes, err := info.Marshal() if err != nil { wh.logger.Error("encoding initial schedule memo failed", tag.Error(err)) diff --git a/service/worker/scheduler/workflow.go b/service/worker/scheduler/workflow.go index 3aa3676827f..fc89052ad0d 100644 --- a/service/worker/scheduler/workflow.go +++ b/service/worker/scheduler/workflow.go @@ -1012,7 +1012,7 @@ func panicIfErr(err error) { } } -func GetListInfoFromStartArgs(args *schedspb.StartScheduleArgs) *schedpb.ScheduleListInfo { +func GetListInfoFromStartArgs(args *schedspb.StartScheduleArgs, now time.Time) *schedpb.ScheduleListInfo { // note that this does not take into account InitialPatch fakeScheduler := &scheduler{ StartScheduleArgs: *args, @@ -1020,5 +1020,6 @@ func GetListInfoFromStartArgs(args *schedspb.StartScheduleArgs) *schedpb.Schedul } fakeScheduler.ensureFields() fakeScheduler.compileSpec() + fakeScheduler.State.LastProcessedTime = timestamp.TimePtr(now) return fakeScheduler.getListInfo() } diff --git a/tests/schedule_test.go b/tests/schedule_test.go index 8e2f9eb6598..e0f51c79562 100644 --- a/tests/schedule_test.go +++ b/tests/schedule_test.go @@ -695,6 +695,8 @@ func (s *scheduleIntegrationSuite) TestListBeforeRun() { RequestId: uuid.New(), } + startTime := time.Now() + _, err := s.engine.CreateSchedule(NewContext(), req) s.NoError(err) @@ -714,6 +716,7 @@ func (s *scheduleIntegrationSuite) TestListBeforeRun() { s.Equal(wt, entry.Info.WorkflowType.Name) s.False(entry.Info.Paused) s.Greater(len(entry.Info.FutureActionTimes), 1) + s.True(entry.Info.FutureActionTimes[0].After(startTime)) return true }, 10*time.Second, 1*time.Second)