fix: always set unknown to false when handling exit event

Signed-off-by: jerryzhuang <zhuangqhc@gmail.com>
This commit is contained in:
zhuangqh 2020-10-26 17:56:57 +08:00
parent 656b487d33
commit 30c9addd6c

View File

@ -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) { err = cntr.Status.UpdateSync(func(status containerstore.Status) (containerstore.Status, error) {
// If FinishedAt has been set (e.g. with start failure), keep as if status.FinishedAt == 0 {
// it is.
if status.FinishedAt != 0 {
return status, nil
}
status.Pid = 0 status.Pid = 0
status.FinishedAt = e.ExitedAt.UnixNano() status.FinishedAt = e.ExitedAt.UnixNano()
status.ExitCode = int32(e.ExitStatus) status.ExitCode = int32(e.ExitStatus)
}
// Unknown state can only transit to EXITED state, so we need // Unknown state can only transit to EXITED state, so we need
// to handle unknown state here. // to handle unknown state here.
if status.Unknown { if status.Unknown {