Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Behaviour when container HealthStartPeriod < HealthStartInterval is unintuitive #46747

Open
Tracked by #45897
corhere opened this issue Oct 30, 2023 · 2 comments
Open
Tracked by #45897
Labels
area/api area/runtime kind/bug Bugs are bugs. The cause may or may not be known at triage time so debugging may be needed. version/master
Milestone

Comments

@corhere
Copy link
Contributor

corhere commented Oct 30, 2023

Description

The daemon waits for HealthStartInterval to elapse before it performs the next probe, even if HealthStartPeriod ends before that time.

Reproduce

Run a container with a health-check, e.g.:

StartPeriod: 2s
StartInterval: 30s
Interval: 2s
Retries: 1
Test: ["CMD", "/bin/false"]

The container's health status will become unhealthy ~30s after the container is started.

Expected behavior

The container's health status becomes unhealthy within one Interval after StartPeriod has elapsed since the container has started.

docker version

Client:
 Cloud integration: v1.0.35+desktop.5
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:28:49 2023
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.24.2 (124339)
 Engine:
  Version:          dev
  API version:      1.44 (minimum version 1.12)
  Go version:       go1.20.8
  Git commit:       HEAD
  Built:            Tue Sep 26 11:52:32 2023
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.22
  GitCommit:        8165feabfdfe38c65b599c4993d227328c231fca
 runc:
  Version:          1.1.8
  GitCommit:        v1.1.8-0-g82f18fe
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client:
 Version:    24.0.6
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2-desktop.5
    Path:     /Users/tyler/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.22.0-desktop.2
    Path:     /Users/tyler/.docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/tyler/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     /Users/tyler/.docker/cli-plugins/docker-extension
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.8
    Path:     /Users/tyler/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/tyler/.docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /Users/tyler/.docker/cli-plugins/docker-scan
  scout: Docker Scout (Docker Inc.)
    Version:  v1.0.7
    Path:     /Users/tyler/.docker/cli-plugins/docker-scout

Server:
 Containers: 30
  Running: 24
  Paused: 0
  Stopped: 6
 Images: 77
 Server Version: dev
 Storage Driver: stargz
  driver-type: io.containerd.snapshotter.v1
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8165feabfdfe38c65b599c4993d227328c231fca
 runc version: v1.1.8-0-g82f18fe
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.4.16-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 8
 Total Memory: 19.52GiB
 Name: docker-desktop
 ID: 36252aca-a483-4b9d-b39c-ea24c2c0d207
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Additional Info

@corhere corhere added area/api area/runtime kind/bug Bugs are bugs. The cause may or may not be known at triage time so debugging may be needed. labels Oct 30, 2023
@corhere corhere added this to the 25.0.0 milestone Oct 30, 2023
@thaJeztah thaJeztah modified the milestones: 25.0.0, 26.0.0 Jan 19, 2024
@vvoland vvoland modified the milestones: 26.0.0, 27.0.0 Feb 28, 2024
@vvoland vvoland modified the milestones: 26.1.0, 27.0.0 Apr 10, 2024
@make-github-pseudonymous-again
Copy link

@corhere Did you mean HealthStartInterval > HealthStartPeriod in the title of this issue?

@corhere corhere changed the title Behaviour when container HealthStartInterval < HealthStartPeriod is unintuitive Behaviour when container HealthStartPeriod < HealthStartInterval is unintuitive Apr 17, 2024
@corhere
Copy link
Contributor Author

corhere commented Apr 17, 2024

@make-github-pseudonymous-again thank you, fixed! I had accidentally switched HealthStartPeriod with HealthStartInterval in the title and a couple places in the description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api area/runtime kind/bug Bugs are bugs. The cause may or may not be known at triage time so debugging may be needed. version/master
Projects
None yet
Development

No branches or pull requests

4 participants