mirror of
https://github.com/containers/podman.git
synced 2025-05-21 00:56:36 +08:00
Merge pull request #15752 from vrothberg/fix-15691
health checks: restart timers
This commit is contained in:
@ -1286,6 +1286,12 @@ func (c *Container) stop(timeout uint) error {
|
||||
c.lock.Unlock()
|
||||
}
|
||||
|
||||
if c.config.HealthCheckConfig != nil {
|
||||
if err := c.removeTransientFiles(context.Background()); err != nil {
|
||||
logrus.Error(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
stopErr := c.ociRuntime.StopContainer(c, timeout, all)
|
||||
|
||||
if !c.batched {
|
||||
|
@ -70,7 +70,7 @@ func (c *Container) startTimer() error {
|
||||
|
||||
startFile := fmt.Sprintf("%s.service", c.ID())
|
||||
startChan := make(chan string)
|
||||
if _, err := conn.StartUnitContext(context.Background(), startFile, "fail", startChan); err != nil {
|
||||
if _, err := conn.RestartUnitContext(context.Background(), startFile, "fail", startChan); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := systemdOpSuccessful(startChan); err != nil {
|
||||
|
@ -106,8 +106,7 @@ Log[-1].Output | \"Uh-oh on stdout!\\\nUh-oh on stderr!\"
|
||||
|
||||
# healthcheck should now fail, with exit status 1 and 'unhealthy' output
|
||||
run_podman 1 healthcheck run $ctr
|
||||
# FIXME: #15691 - `healthcheck run` may emit an error log that the timer already exists
|
||||
is "$output" ".*unhealthy.*" "output from 'podman healthcheck run'"
|
||||
is "$output" "unhealthy" "output from 'podman healthcheck run'"
|
||||
|
||||
run_podman inspect $ctr --format "{{.State.Status}} {{.Config.HealthcheckOnFailureAction}}"
|
||||
if [[ $policy == "restart" ]];then
|
||||
@ -118,8 +117,7 @@ Log[-1].Output | \"Uh-oh on stdout!\\\nUh-oh on stderr!\"
|
||||
# Container is still running and health check still broken
|
||||
is "$output" "running $policy" "container continued running"
|
||||
run_podman 1 healthcheck run $ctr
|
||||
# FIXME: #15691 - `healthcheck run` may emit an error log that the timer already exists
|
||||
is "$output" ".*unhealthy.*" "output from 'podman healthcheck run'"
|
||||
is "$output" "unhealthy" "output from 'podman healthcheck run'"
|
||||
else
|
||||
# kill and stop yield the container into a non-running state
|
||||
is "$output" ".* $policy" "container was stopped/killed"
|
||||
|
Reference in New Issue
Block a user