Skip to content

Commit 06dcf41

Browse files
committed
[core] Ensure SOEOR/EOEOR events are pushed in case of kill
1 parent 67cda98 commit 06dcf41

1 file changed

Lines changed: 33 additions & 2 deletions

File tree

core/environment/manager.go

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,12 +483,43 @@ func (envs *Manager) TeardownEnvironment(environmentId uid.ID, force bool) error
483483
if env.CurrentState() == "RUNNING" {
484484
endTime, ok := env.workflow.GetUserVars().Get("run_end_time_ms")
485485
if ok && endTime == "" {
486-
runEndTime := strconv.FormatInt(time.Now().UnixMilli(), 10)
487-
env.workflow.SetRuntimeVar("run_end_time_ms", runEndTime)
486+
runEndTime := time.Now()
487+
runEndTimeS := strconv.FormatInt(runEndTime.UnixMilli(), 10)
488+
env.workflow.SetRuntimeVar("run_end_time_ms", runEndTimeS)
489+
490+
the.EventWriterWithTopic(topic.Run).WriteEventWithTimestamp(&evpb.Ev_RunEvent{
491+
EnvironmentId: environmentId.String(),
492+
RunNumber: env.GetCurrentRunNumber(),
493+
State: env.Sm.Current(),
494+
Error: "",
495+
Transition: "TEARDOWN",
496+
TransitionStatus: evpb.OpStatus_STARTED,
497+
Vars: nil,
498+
}, runEndTime)
488499
} else {
489500
log.WithField("partition", environmentId.String()).
490501
Debug("O2 End time already set before DESTROY")
491502
}
503+
504+
endCompletionTime, ok := env.workflow.GetUserVars().Get("run_end_completion_time_ms")
505+
if ok && endCompletionTime == "" {
506+
runEndCompletionTime := time.Now()
507+
runEndCompletionTimeS := strconv.FormatInt(runEndCompletionTime.UnixMilli(), 10)
508+
env.workflow.SetRuntimeVar("run_end_completion_time_ms", runEndCompletionTimeS)
509+
510+
the.EventWriterWithTopic(topic.Run).WriteEventWithTimestamp(&evpb.Ev_RunEvent{
511+
EnvironmentId: environmentId.String(),
512+
RunNumber: env.GetCurrentRunNumber(),
513+
State: env.Sm.Current(),
514+
Error: "",
515+
Transition: "TEARDOWN",
516+
TransitionStatus: evpb.OpStatus_STARTED,
517+
Vars: nil,
518+
}, runEndCompletionTime)
519+
} else {
520+
log.WithField("partition", environmentId.String()).
521+
Debug("O2 End Completion time already set before DESTROY")
522+
}
492523
}
493524

494525
tasksToRelease := env.Workflow().GetTasks()

0 commit comments

Comments
 (0)