From 30c9addd6ca0052ed38d541ff88812c6152013a6 Mon Sep 17 00:00:00 2001 From: zhuangqh Date: Mon, 26 Oct 2020 17:56:57 +0800 Subject: [PATCH] fix: always set unknown to false when handling exit event Signed-off-by: jerryzhuang --- pkg/cri/server/events.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkg/cri/server/events.go b/pkg/cri/server/events.go index c8ed431f8..0a1ecea01 100644 --- a/pkg/cri/server/events.go +++ b/pkg/cri/server/events.go @@ -325,14 +325,12 @@ func handleContainerExit(ctx context.Context, e *eventtypes.TaskExit, cntr conta } } err = cntr.Status.UpdateSync(func(status containerstore.Status) (containerstore.Status, error) { - // If FinishedAt has been set (e.g. with start failure), keep as - // it is. - if status.FinishedAt != 0 { - return status, nil + if status.FinishedAt == 0 { + status.Pid = 0 + status.FinishedAt = e.ExitedAt.UnixNano() + status.ExitCode = int32(e.ExitStatus) } - status.Pid = 0 - status.FinishedAt = e.ExitedAt.UnixNano() - status.ExitCode = int32(e.ExitStatus) + // Unknown state can only transit to EXITED state, so we need // to handle unknown state here. if status.Unknown {