Merge pull request #390 from rhatdan/MissingExit
If the container exit file is missing default exit code to -1
This commit is contained in:
commit
4feb74cee9
1 changed files with 14 additions and 12 deletions
26
oci/oci.go
26
oci/oci.go
|
@ -429,20 +429,22 @@ func (r *Runtime) UpdateStatus(c *Container) error {
|
||||||
exitFilePath := filepath.Join(c.bundlePath, "exit")
|
exitFilePath := filepath.Join(c.bundlePath, "exit")
|
||||||
fi, err := os.Stat(exitFilePath)
|
fi, err := os.Stat(exitFilePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to find container exit file: %v", err)
|
logrus.Warnf("failed to find container exit file: %v", err)
|
||||||
}
|
c.state.ExitCode = -1
|
||||||
st := fi.Sys().(*syscall.Stat_t)
|
} else {
|
||||||
c.state.Finished = time.Unix(st.Ctim.Sec, st.Ctim.Nsec)
|
st := fi.Sys().(*syscall.Stat_t)
|
||||||
|
c.state.Finished = time.Unix(st.Ctim.Sec, st.Ctim.Nsec)
|
||||||
|
|
||||||
statusCodeStr, err := ioutil.ReadFile(exitFilePath)
|
statusCodeStr, err := ioutil.ReadFile(exitFilePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to read exit file: %v", err)
|
return fmt.Errorf("failed to read exit file: %v", err)
|
||||||
|
}
|
||||||
|
statusCode, err := strconv.Atoi(string(statusCodeStr))
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("status code conversion failed: %v", err)
|
||||||
|
}
|
||||||
|
c.state.ExitCode = int32(statusCode)
|
||||||
}
|
}
|
||||||
statusCode, err := strconv.Atoi(string(statusCodeStr))
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("status code conversion failed: %v", err)
|
|
||||||
}
|
|
||||||
c.state.ExitCode = int32(statusCode)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in a new issue