Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package cadvisor for openSUSE:Factory 
checked in at 2026-07-17 18:50:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cadvisor (Old)
 and      /work/SRC/openSUSE:Factory/.cadvisor.new.24530 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cadvisor"

Fri Jul 17 18:50:29 2026 rev:6 rq:1366422 version:0.60.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/cadvisor/cadvisor.changes        2026-06-30 
15:12:08.317412002 +0200
+++ /work/SRC/openSUSE:Factory/.cadvisor.new.24530/cadvisor.changes     
2026-07-17 18:51:57.422280410 +0200
@@ -1,0 +2,22 @@
+Fri Jul 17 14:17:06 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.60.5 (bsc#1266645, CVE-2026-39821):
+  * build: discover bootstrap image tag instead of pinning it
+  * lib/manager: allow disabling container discovery
+  * **Full Changelog**:
+    https://github.com/google/cadvisor/compare/v0.60.4...v0.60.5
+  * build: discover bootstrap image tag instead of pinning it
+  * lib/manager: allow disabling container discovery
+  * **Full Changelog**:
+    https://github.com/google/cadvisor/compare/v0.60.4...v0.60.5
+- update to 0.60.4:
+  * build(deps): bump the go_modules group across 2 directories
+    with 1 update
+  * Update containerd ttrpc and typeurl
+  * build(deps): bump the go_modules group across 3 directories
+    with 1 update
+  * crio: add retry to ContainerInfo call
+  * build(deps): bump golang.org/x/crypto from 0.51.0 to 0.54.0
+    in the go_modules group across 0 directory
+
+-------------------------------------------------------------------

Old:
----
  cadvisor-0.60.3.tar.gz

New:
----
  cadvisor-0.60.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cadvisor.spec ++++++
--- /var/tmp/diff_new_pack.HT2ufn/_old  2026-07-17 18:51:58.466315738 +0200
+++ /var/tmp/diff_new_pack.HT2ufn/_new  2026-07-17 18:51:58.470315873 +0200
@@ -19,7 +19,7 @@
 
 %global goipath github.com/google/cadvisor
 Name:           cadvisor
-Version:        0.60.3
+Version:        0.60.5
 Release:        0
 Summary:        A Simple and Comprehensive Vulnerability Scanner for Containers
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.HT2ufn/_old  2026-07-17 18:51:58.514317362 +0200
+++ /var/tmp/diff_new_pack.HT2ufn/_new  2026-07-17 18:51:58.518317498 +0200
@@ -3,7 +3,6 @@
   <service name="go_modules" mode="manual">
     <param name="subdir">cmd</param>
     <param name="compression">zst</param>
-    <param name="replace">golang.org/x/net=golang.org/x/[email protected]</param>
   </service>
   <service name="set_version" mode="manual">
     <param name="basename">cadvisor</param>

++++++ cadvisor-0.60.3.tar.gz -> cadvisor-0.60.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/build/integration-in-docker-crio.sh 
new/cadvisor-0.60.5/build/integration-in-docker-crio.sh
--- old/cadvisor-0.60.3/build/integration-in-docker-crio.sh     2026-06-26 
17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/build/integration-in-docker-crio.sh     2026-07-11 
07:07:30.000000000 +0200
@@ -76,7 +76,7 @@
     --cgroupns=host \
     --pid=host \
     --entrypoint="" \
-    gcr.io/k8s-staging-test-infra/bootstrap:v20251209-855adc2699 \
+    "${BOOTSTRAP_IMAGE}" \
     bash -c "export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
     apt-get install -y $PACKAGES curl conntrack iptables dbus && \
@@ -206,4 +206,12 @@
 BUILD_PACKAGES=${BUILD_PACKAGES:-}
 CADVISOR_ARGS=${CADVISOR_ARGS:-}
 GOLANG_VERSION=${GOLANG_VERSION:-"1.25"}
+
+# The staging registry garbage-collects old images, so a pinned tag rots.
+# Discover the newest dated tag instead; set BOOTSTRAP_TAG to pin one.
+BOOTSTRAP_TAG=${BOOTSTRAP_TAG:-$(curl -sSfL 
https://gcr.io/v2/k8s-staging-test-infra/bootstrap/tags/list \
+  | grep -oE 'v[0-9]{8}-[0-9a-f]+' | sort -ru | head -n1)}
+[ -n "${BOOTSTRAP_TAG}" ] || { echo "Failed to discover bootstrap image tag" 
>&2; exit 1; }
+BOOTSTRAP_IMAGE="gcr.io/k8s-staging-test-infra/bootstrap:${BOOTSTRAP_TAG}"
+
 run_tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/build/integration-in-docker.sh 
new/cadvisor-0.60.5/build/integration-in-docker.sh
--- old/cadvisor-0.60.3/build/integration-in-docker.sh  2026-06-26 
17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/build/integration-in-docker.sh  2026-07-11 
07:07:30.000000000 +0200
@@ -61,7 +61,7 @@
     --privileged \
     --cap-add="sys_admin" \
     --entrypoint="" \
-    gcr.io/k8s-staging-test-infra/bootstrap:v20251209-855adc2699 \
+    "${BOOTSTRAP_IMAGE}" \
     bash -c "export DEBIAN_FRONTEND=noninteractive && \
     apt update && \
     apt install -y $PACKAGES && \
@@ -74,4 +74,12 @@
 CADVISOR_ARGS=${CADVISOR_ARGS:-}
 GOLANG_VERSION=${GOLANG_VERSION:-"1.25"}
 DEBIAN_VERSION=${DEBIAN_VERSION:-"trixie"}
+
+# The staging registry garbage-collects old images, so a pinned tag rots.
+# Discover the newest dated tag instead; set BOOTSTRAP_TAG to pin one.
+BOOTSTRAP_TAG=${BOOTSTRAP_TAG:-$(curl -sSfL 
https://gcr.io/v2/k8s-staging-test-infra/bootstrap/tags/list \
+  | grep -oE 'v[0-9]{8}-[0-9a-f]+' | sort -ru | head -n1)}
+[ -n "${BOOTSTRAP_TAG}" ] || { echo "Failed to discover bootstrap image tag" 
>&2; exit 1; }
+BOOTSTRAP_IMAGE="gcr.io/k8s-staging-test-infra/bootstrap:${BOOTSTRAP_TAG}"
+
 run_tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/cmd/go.mod 
new/cadvisor-0.60.5/cmd/go.mod
--- old/cadvisor-0.60.3/cmd/go.mod      2026-06-26 17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/cmd/go.mod      2026-07-11 07:07:30.000000000 +0200
@@ -1,6 +1,6 @@
 module github.com/google/cadvisor/cmd
 
-go 1.24.0
+go 1.25.0
 
 // Record that the cmd module requires the cadvisor library module.
 // The github.com/google/cadvisor/cmd module is built using the Makefile
@@ -21,7 +21,7 @@
        github.com/onsi/gomega v1.24.1 // indirect
        github.com/prometheus/client_golang v1.22.0
        github.com/stretchr/testify v1.11.1
-       golang.org/x/oauth2 v0.34.0
+       golang.org/x/oauth2 v0.36.0
        google.golang.org/api v0.235.0
        gopkg.in/olivere/elastic.v2 v2.0.61
        k8s.io/klog/v2 v2.130.1
@@ -53,8 +53,8 @@
        github.com/containerd/errdefs v1.0.0 // indirect
        github.com/containerd/errdefs/pkg v0.3.0 // indirect
        github.com/containerd/log v0.1.0 // indirect
-       github.com/containerd/ttrpc v1.2.8 // indirect
-       github.com/coreos/go-systemd/v22 v22.6.0 // indirect
+       github.com/containerd/ttrpc v1.2.9 // indirect
+       github.com/coreos/go-systemd/v22 v22.7.0 // indirect
        github.com/cyphar/filepath-securejoin v0.6.1 // indirect
        github.com/davecgh/go-spew v1.1.1 // indirect
        github.com/distribution/reference v0.6.0 // indirect
@@ -93,7 +93,7 @@
        github.com/opencontainers/cgroups v0.0.6 // indirect
        github.com/opencontainers/go-digest v1.0.0 // indirect
        github.com/opencontainers/image-spec v1.1.1 // indirect
-       github.com/opencontainers/runc v1.4.0 // indirect
+       github.com/opencontainers/runc v1.4.3 // indirect
        github.com/opencontainers/runtime-spec v1.3.0 // indirect
        github.com/pierrec/lz4/v4 v4.1.22 // indirect
        github.com/pmezard/go-difflib v1.0.0 // indirect
@@ -105,17 +105,17 @@
        github.com/stretchr/objx v0.5.2 // indirect
        go.opentelemetry.io/auto/sdk v1.2.1 // indirect
        go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
// indirect
-       go.opentelemetry.io/otel v1.39.0 // indirect
-       go.opentelemetry.io/otel/metric v1.39.0 // indirect
-       go.opentelemetry.io/otel/trace v1.39.0 // indirect
-       golang.org/x/crypto v0.46.0 // indirect
-       golang.org/x/net v0.48.0 // indirect
-       golang.org/x/sys v0.39.0 // indirect
+       go.opentelemetry.io/otel v1.43.0 // indirect
+       go.opentelemetry.io/otel/metric v1.43.0 // indirect
+       go.opentelemetry.io/otel/trace v1.43.0 // indirect
+       golang.org/x/crypto v0.54.0 // indirect
+       golang.org/x/net v0.57.0 // indirect
+       golang.org/x/sys v0.47.0 // indirect
        golang.org/x/telemetry v0.0.0-20251215142616-e75fd47794af // indirect
-       golang.org/x/text v0.32.0 // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20251202230838-ff82c1b0f217 // indirect
-       google.golang.org/grpc v1.79.3 // indirect
-       google.golang.org/protobuf v1.36.10 // indirect
+       golang.org/x/text v0.40.0 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171 // indirect
+       google.golang.org/grpc v1.81.1 // indirect
+       google.golang.org/protobuf v1.36.11 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/cmd/go.sum 
new/cadvisor-0.60.5/cmd/go.sum
--- old/cadvisor-0.60.3/cmd/go.sum      2026-06-26 17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/cmd/go.sum      2026-07-11 07:07:30.000000000 +0200
@@ -60,12 +60,12 @@
 github.com/containerd/errdefs/pkg v0.3.0/go.mod 
h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk=
 github.com/containerd/log v0.1.0 
h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
 github.com/containerd/log v0.1.0/go.mod 
h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
-github.com/containerd/ttrpc v1.2.8 
h1:xbVu6D4qF2jihdh9rDVOKqUMiFBQk6YctTdo1zk087Y=
-github.com/containerd/ttrpc v1.2.8/go.mod 
h1:wyZW2K79t4Hfcxl+GUvkZqRBzJlqFFvgEeeWXa42tyE=
-github.com/containerd/typeurl/v2 v2.2.3 
h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
-github.com/containerd/typeurl/v2 v2.2.3/go.mod 
h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
-github.com/coreos/go-systemd/v22 v22.6.0 
h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo=
-github.com/coreos/go-systemd/v22 v22.6.0/go.mod 
h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU=
+github.com/containerd/ttrpc v1.2.9 
h1:ha0ak962T0s3CA/RoZ6S6xiWZQF24GrBaEpiGX1uihg=
+github.com/containerd/ttrpc v1.2.9/go.mod 
h1:jjtQRwXm4DL3KsHKW8vDiUOV6wO0hi6IPhmJhxU7aEs=
+github.com/containerd/typeurl/v2 v2.3.0 
h1:HZHPhRWo5XMy3QGQoPrUzbW/2ckwjfweHmOwlkIrPAQ=
+github.com/containerd/typeurl/v2 v2.3.0/go.mod 
h1:Qk+PAdUYArVj41TnGi6rJ+48RF0PkcTc4i/taoBcK0w=
+github.com/coreos/go-systemd/v22 v22.7.0 
h1:LAEzFkke61DFROc7zNLX/WA2i5J8gYqe0rSj9KI28KA=
+github.com/coreos/go-systemd/v22 v22.7.0/go.mod 
h1:xNUYtjHu2EDXbsxz1i41wouACIwT7Ybq9o0BQhMwD0w=
 github.com/cyphar/filepath-securejoin v0.6.1 
h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
 github.com/cyphar/filepath-securejoin v0.6.1/go.mod 
h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -104,8 +104,6 @@
 github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gofrs/uuid v3.3.0+incompatible 
h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84=
 github.com/gofrs/uuid v3.3.0+incompatible/go.mod 
h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang/protobuf v1.2.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.4.0-rc.1/go.mod 
h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod 
h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
@@ -204,8 +202,8 @@
 github.com/opencontainers/go-digest v1.0.0/go.mod 
h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
 github.com/opencontainers/image-spec v1.1.1 
h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
 github.com/opencontainers/image-spec v1.1.1/go.mod 
h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
-github.com/opencontainers/runc v1.4.0 
h1:FG1Hw0GBYPsNki+mBz1QOrSzbwbAcerhrAD2r097QCc=
-github.com/opencontainers/runc v1.4.0/go.mod 
h1:sch3Bh3c1NlyAkALoAUz5Br9ubMLZzFcxuovZbnkErk=
+github.com/opencontainers/runc v1.4.3 
h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI=
+github.com/opencontainers/runc v1.4.3/go.mod 
h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk=
 github.com/opencontainers/runtime-spec v1.3.0 
h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg=
 github.com/opencontainers/runtime-spec v1.3.0/go.mod 
h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opentracing/opentracing-go v1.2.0 
h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
@@ -257,16 +255,16 @@
 go.opentelemetry.io/auto/sdk v1.2.1/go.mod 
h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod 
h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q=
-go.opentelemetry.io/otel v1.39.0 
h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
-go.opentelemetry.io/otel v1.39.0/go.mod 
h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
-go.opentelemetry.io/otel/metric v1.39.0 
h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
-go.opentelemetry.io/otel/metric v1.39.0/go.mod 
h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
-go.opentelemetry.io/otel/sdk v1.39.0 
h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
-go.opentelemetry.io/otel/sdk v1.39.0/go.mod 
h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
-go.opentelemetry.io/otel/sdk/metric v1.39.0 
h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
-go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod 
h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
-go.opentelemetry.io/otel/trace v1.39.0 
h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
-go.opentelemetry.io/otel/trace v1.39.0/go.mod 
h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
+go.opentelemetry.io/otel v1.43.0 
h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
+go.opentelemetry.io/otel v1.43.0/go.mod 
h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
+go.opentelemetry.io/otel/metric v1.43.0 
h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
+go.opentelemetry.io/otel/metric v1.43.0/go.mod 
h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
+go.opentelemetry.io/otel/sdk v1.43.0 
h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
+go.opentelemetry.io/otel/sdk v1.43.0/go.mod 
h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
+go.opentelemetry.io/otel/sdk/metric v1.43.0 
h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
+go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod 
h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
+go.opentelemetry.io/otel/trace v1.43.0 
h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
+go.opentelemetry.io/otel/trace v1.43.0/go.mod 
h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
 go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
 go.uber.org/atomic v1.7.0/go.mod 
h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
@@ -278,14 +276,14 @@
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.6.0/go.mod 
h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
-golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
-golang.org/x/crypto v0.46.0/go.mod 
h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
+golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw=
+golang.org/x/crypto v0.54.0/go.mod 
h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk=
 golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 
h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM=
 golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod 
h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
-golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
+golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
+golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -296,16 +294,16 @@
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
-golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
-golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
-golang.org/x/oauth2 v0.34.0/go.mod 
h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
+golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
+golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
+golang.org/x/oauth2 v0.36.0/go.mod 
h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
-golang.org/x/sync v0.19.0/go.mod 
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek=
+golang.org/x/sync v0.22.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -321,8 +319,8 @@
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
-golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
+golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
 golang.org/x/telemetry v0.0.0-20251215142616-e75fd47794af 
h1:JLNgZmN0uDGV+zlgKknvmvX9+atzn9b7S6M1L6J5tQs=
 golang.org/x/telemetry v0.0.0-20251215142616-e75fd47794af/go.mod 
h1:ArQvPJS723nJQietgilmZA+shuB3CZxH1n2iXq9VSfs=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -332,40 +330,40 @@
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
-golang.org/x/text v0.32.0/go.mod 
h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
+golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
+golang.org/x/text v0.40.0/go.mod 
h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
-golang.org/x/tools v0.39.0/go.mod 
h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
+golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
+golang.org/x/tools v0.47.0/go.mod 
h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 
h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU=
 golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod 
h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
-gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
-gonum.org/v1/gonum v0.16.0/go.mod 
h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
+gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
+gonum.org/v1/gonum v0.17.0/go.mod 
h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
 google.golang.org/api v0.235.0 h1:C3MkpQSRxS1Jy6AkzTGKKrpSCOd2WOGrezZ+icKSkKo=
 google.golang.org/api v0.235.0/go.mod 
h1:QpeJkemzkFKe5VCE/PMv7GsUfn9ZF+u+q1Q7w6ckxTg=
 google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 
h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78=
 google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod 
h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk=
-google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 
h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20251202230838-ff82c1b0f217/go.mod 
h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 
h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20251202230838-ff82c1b0f217/go.mod 
h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
-google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
-google.golang.org/grpc v1.79.3/go.mod 
h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 
h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20260226221140-a57be14db171/go.mod 
h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 
h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171/go.mod 
h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
+google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
+google.golang.org/grpc v1.81.1/go.mod 
h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
 google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod 
h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 google.golang.org/protobuf v1.21.0/go.mod 
h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 google.golang.org/protobuf v1.23.0/go.mod 
h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.36.10 
h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
-google.golang.org/protobuf v1.36.10/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+google.golang.org/protobuf v1.36.11 
h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/go.mod new/cadvisor-0.60.5/go.mod
--- old/cadvisor-0.60.3/go.mod  2026-06-26 17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/go.mod  2026-07-11 07:07:30.000000000 +0200
@@ -1,6 +1,6 @@
 module github.com/google/cadvisor
 
-go 1.24.0
+go 1.25.0
 
 require (
        cloud.google.com/go/compute/metadata v0.9.0
@@ -14,12 +14,12 @@
        github.com/moby/moby/client v0.4.0
        github.com/moby/sys/mountinfo v0.7.2
        github.com/opencontainers/cgroups v0.0.6
-       github.com/opencontainers/runc v1.4.0
+       github.com/opencontainers/runc v1.4.3
        github.com/opencontainers/runtime-spec v1.3.0
        github.com/prometheus/client_model v0.6.2
        github.com/prometheus/common v0.64.0
        github.com/stretchr/testify v1.11.1
-       golang.org/x/sys v0.39.0
+       golang.org/x/sys v0.47.0
        k8s.io/klog/v2 v2.130.1
 )
 
@@ -28,10 +28,10 @@
        github.com/containerd/containerd/api v1.10.0 // indirect
        github.com/containerd/errdefs v1.0.0 // indirect
        github.com/containerd/errdefs/pkg v0.3.0 // indirect
-       github.com/containerd/ttrpc v1.2.8 // indirect
+       github.com/containerd/ttrpc v1.2.9 // indirect
        github.com/docker/go-units v0.5.0 // indirect
-       google.golang.org/grpc v1.79.3 // indirect
-       google.golang.org/protobuf v1.36.10 // indirect
+       google.golang.org/grpc v1.81.1 // indirect
+       google.golang.org/protobuf v1.36.11 // indirect
        k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979 // indirect
 )
 
@@ -49,7 +49,7 @@
        github.com/aws/smithy-go v1.22.3 // indirect
        github.com/cespare/xxhash/v2 v2.3.0 // indirect
        github.com/containerd/log v0.1.0 // indirect
-       github.com/coreos/go-systemd/v22 v22.6.0 // indirect
+       github.com/coreos/go-systemd/v22 v22.7.0 // indirect
        github.com/cyphar/filepath-securejoin v0.6.1 // indirect
        github.com/davecgh/go-spew v1.1.1 // indirect
        github.com/distribution/reference v0.6.0 // indirect
@@ -68,12 +68,12 @@
        github.com/stretchr/objx v0.5.2 // indirect
        go.opentelemetry.io/auto/sdk v1.2.1 // indirect
        go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
// indirect
-       go.opentelemetry.io/otel v1.39.0 // indirect
-       go.opentelemetry.io/otel/metric v1.39.0 // indirect
-       go.opentelemetry.io/otel/trace v1.39.0 // indirect
-       golang.org/x/net v0.48.0 // indirect
-       golang.org/x/text v0.32.0 // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20251202230838-ff82c1b0f217 // indirect
+       go.opentelemetry.io/otel v1.43.0 // indirect
+       go.opentelemetry.io/otel/metric v1.43.0 // indirect
+       go.opentelemetry.io/otel/trace v1.43.0 // indirect
+       golang.org/x/net v0.57.0 // indirect
+       golang.org/x/text v0.40.0 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/go.sum new/cadvisor-0.60.5/go.sum
--- old/cadvisor-0.60.3/go.sum  2026-06-26 17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/go.sum  2026-07-11 07:07:30.000000000 +0200
@@ -40,12 +40,12 @@
 github.com/containerd/errdefs/pkg v0.3.0/go.mod 
h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk=
 github.com/containerd/log v0.1.0 
h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
 github.com/containerd/log v0.1.0/go.mod 
h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
-github.com/containerd/ttrpc v1.2.8 
h1:xbVu6D4qF2jihdh9rDVOKqUMiFBQk6YctTdo1zk087Y=
-github.com/containerd/ttrpc v1.2.8/go.mod 
h1:wyZW2K79t4Hfcxl+GUvkZqRBzJlqFFvgEeeWXa42tyE=
-github.com/containerd/typeurl/v2 v2.2.3 
h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
-github.com/containerd/typeurl/v2 v2.2.3/go.mod 
h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
-github.com/coreos/go-systemd/v22 v22.6.0 
h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo=
-github.com/coreos/go-systemd/v22 v22.6.0/go.mod 
h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU=
+github.com/containerd/ttrpc v1.2.9 
h1:ha0ak962T0s3CA/RoZ6S6xiWZQF24GrBaEpiGX1uihg=
+github.com/containerd/ttrpc v1.2.9/go.mod 
h1:jjtQRwXm4DL3KsHKW8vDiUOV6wO0hi6IPhmJhxU7aEs=
+github.com/containerd/typeurl/v2 v2.3.0 
h1:HZHPhRWo5XMy3QGQoPrUzbW/2ckwjfweHmOwlkIrPAQ=
+github.com/containerd/typeurl/v2 v2.3.0/go.mod 
h1:Qk+PAdUYArVj41TnGi6rJ+48RF0PkcTc4i/taoBcK0w=
+github.com/coreos/go-systemd/v22 v22.7.0 
h1:LAEzFkke61DFROc7zNLX/WA2i5J8gYqe0rSj9KI28KA=
+github.com/coreos/go-systemd/v22 v22.7.0/go.mod 
h1:xNUYtjHu2EDXbsxz1i41wouACIwT7Ybq9o0BQhMwD0w=
 github.com/cyphar/filepath-securejoin v0.6.1 
h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
 github.com/cyphar/filepath-securejoin v0.6.1/go.mod 
h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -68,8 +68,6 @@
 github.com/go-logr/stdr v1.2.2/go.mod 
h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
 github.com/godbus/dbus/v5 v5.1.0 
h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
 github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang/protobuf v1.5.4 
h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
 github.com/golang/protobuf v1.5.4/go.mod 
h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
@@ -100,8 +98,8 @@
 github.com/opencontainers/go-digest v1.0.0/go.mod 
h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
 github.com/opencontainers/image-spec v1.1.1 
h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
 github.com/opencontainers/image-spec v1.1.1/go.mod 
h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
-github.com/opencontainers/runc v1.4.0 
h1:FG1Hw0GBYPsNki+mBz1QOrSzbwbAcerhrAD2r097QCc=
-github.com/opencontainers/runc v1.4.0/go.mod 
h1:sch3Bh3c1NlyAkALoAUz5Br9ubMLZzFcxuovZbnkErk=
+github.com/opencontainers/runc v1.4.3 
h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI=
+github.com/opencontainers/runc v1.4.3/go.mod 
h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk=
 github.com/opencontainers/runtime-spec v1.3.0 
h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg=
 github.com/opencontainers/runtime-spec v1.3.0/go.mod 
h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -126,31 +124,31 @@
 go.opentelemetry.io/auto/sdk v1.2.1/go.mod 
h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod 
h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q=
-go.opentelemetry.io/otel v1.39.0 
h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
-go.opentelemetry.io/otel v1.39.0/go.mod 
h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
-go.opentelemetry.io/otel/metric v1.39.0 
h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
-go.opentelemetry.io/otel/metric v1.39.0/go.mod 
h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
-go.opentelemetry.io/otel/sdk v1.39.0 
h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
-go.opentelemetry.io/otel/sdk v1.39.0/go.mod 
h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
-go.opentelemetry.io/otel/sdk/metric v1.39.0 
h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
-go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod 
h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
-go.opentelemetry.io/otel/trace v1.39.0 
h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
-go.opentelemetry.io/otel/trace v1.39.0/go.mod 
h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
-golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
-golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
+go.opentelemetry.io/otel v1.43.0 
h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
+go.opentelemetry.io/otel v1.43.0/go.mod 
h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
+go.opentelemetry.io/otel/metric v1.43.0 
h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
+go.opentelemetry.io/otel/metric v1.43.0/go.mod 
h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
+go.opentelemetry.io/otel/sdk v1.43.0 
h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
+go.opentelemetry.io/otel/sdk v1.43.0/go.mod 
h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
+go.opentelemetry.io/otel/sdk/metric v1.43.0 
h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
+go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod 
h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
+go.opentelemetry.io/otel/trace v1.43.0 
h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
+go.opentelemetry.io/otel/trace v1.43.0/go.mod 
h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
+golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
+golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
-golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
-golang.org/x/text v0.32.0/go.mod 
h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
-gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
-gonum.org/v1/gonum v0.16.0/go.mod 
h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 
h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20251202230838-ff82c1b0f217/go.mod 
h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
-google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
-google.golang.org/grpc v1.79.3/go.mod 
h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
-google.golang.org/protobuf v1.36.10 
h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
-google.golang.org/protobuf v1.36.10/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
+golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
+golang.org/x/text v0.40.0/go.mod 
h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
+gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
+gonum.org/v1/gonum v0.17.0/go.mod 
h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 
h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171/go.mod 
h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
+google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
+google.golang.org/grpc v1.81.1/go.mod 
h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
+google.golang.org/protobuf v1.36.11 
h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/lib/container/crio/client.go 
new/cadvisor-0.60.5/lib/container/crio/client.go
--- old/cadvisor-0.60.3/lib/container/crio/client.go    2026-06-26 
17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/lib/container/crio/client.go    2026-07-11 
07:07:30.000000000 +0200
@@ -17,6 +17,7 @@
 import (
        "context"
        "encoding/json"
+       "errors"
        "flag"
        "fmt"
        "io"
@@ -27,6 +28,11 @@
        "time"
 )
 
+// ErrContainerNotFound indicates that CRI-O does not yet know about the
+// requested container. This is expected during a short window after the
+// container cgroup is created but before CRI-O finishes registration.
+var ErrContainerNotFound = errors.New("container not found")
+
 var crioClientTimeout = flag.Duration("crio_client_timeout", time.Duration(0), 
"CRI-O client timeout. Default is no timeout.")
 
 const (
@@ -152,6 +158,9 @@
                if err != nil {
                        return nil, fmt.Errorf("error finding container %s: 
status %d", id, resp.StatusCode)
                }
+               if resp.StatusCode == http.StatusNotFound {
+                       return nil, fmt.Errorf("error finding container %s: %s: 
%w", id, string(respBody), ErrContainerNotFound)
+               }
                return nil, fmt.Errorf("error finding container %s: status %d 
returned error %s", id, resp.StatusCode, string(respBody))
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/lib/container/crio/handler.go 
new/cadvisor-0.60.5/lib/container/crio/handler.go
--- old/cadvisor-0.60.3/lib/container/crio/handler.go   2026-06-26 
17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/lib/container/crio/handler.go   2026-07-11 
07:07:30.000000000 +0200
@@ -18,10 +18,12 @@
 package crio
 
 import (
+       "errors"
        "fmt"
        "path/filepath"
        "strconv"
        "strings"
+       "time"
 
        "github.com/opencontainers/cgroups"
 
@@ -30,6 +32,8 @@
        containerlibcontainer 
"github.com/google/cadvisor/lib/container/libcontainer"
        "github.com/google/cadvisor/lib/fs"
        info "github.com/google/cadvisor/lib/model"
+
+       "k8s.io/klog/v2"
 )
 
 type crioContainerHandler struct {
@@ -108,9 +112,27 @@
        id := ContainerNameToCrioId(name)
        pidKnown := true
 
-       cInfo, err := client.ContainerInfo(id)
-       if err != nil {
-               return nil, err
+       // Cgroup is created during container setup. When cadvisor sees the 
cgroup
+       // via inotify, the container may not be fully registered in CRI-O yet.
+       // Use retry+backoff to tolerate the race condition, mirroring the
+       // containerd handler's approach for the same issue.
+       var cInfo *ContainerInfo
+       backoff := 100 * time.Millisecond
+       retry := 5
+       for {
+               cInfo, err = client.ContainerInfo(id)
+               if err == nil && cInfo != nil {
+                       break
+               }
+
+               if !errors.Is(err, ErrContainerNotFound) || retry == 0 {
+                       return nil, err
+               }
+
+               klog.V(4).Infof("Container %s not yet registered in CRI-O, 
retrying (%d retries left): %v", id, retry, err)
+               retry--
+               time.Sleep(backoff)
+               backoff *= 2
        }
        if cInfo.Pid == 0 {
                // If pid is not known yet, network related stats can not be 
retrieved by the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/lib/go.mod 
new/cadvisor-0.60.5/lib/go.mod
--- old/cadvisor-0.60.3/lib/go.mod      2026-06-26 17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/lib/go.mod      2026-07-11 07:07:30.000000000 +0200
@@ -1,20 +1,20 @@
 module github.com/google/cadvisor/lib
 
-go 1.24.0
+go 1.25.0
 
 require (
        github.com/containerd/containerd/api v1.10.0
-       github.com/containerd/ttrpc v1.2.8
-       github.com/containerd/typeurl/v2 v2.2.3
+       github.com/containerd/ttrpc v1.2.9
+       github.com/containerd/typeurl/v2 v2.3.0
        github.com/moby/sys/mountinfo v0.7.2
        github.com/opencontainers/cgroups v0.0.6
        github.com/opencontainers/runtime-spec v1.3.0
        github.com/prometheus/client_golang v1.22.0
        github.com/prometheus/common v0.64.0
        github.com/stretchr/testify v1.11.1
-       golang.org/x/sys v0.39.0
-       google.golang.org/grpc v1.79.3
-       google.golang.org/protobuf v1.36.10
+       golang.org/x/sys v0.47.0
+       google.golang.org/grpc v1.81.1
+       google.golang.org/protobuf v1.36.11
        k8s.io/klog/v2 v2.130.1
        k8s.io/utils v0.0.0-20250502105355-0f33e8f1c979
 )
@@ -28,7 +28,6 @@
        github.com/davecgh/go-spew v1.1.1 // indirect
        github.com/go-logr/logr v1.4.3 // indirect
        github.com/godbus/dbus/v5 v5.1.0 // indirect
-       github.com/gogo/protobuf v1.3.2 // indirect
        github.com/kr/text v0.2.0 // indirect
        github.com/kylelemons/godebug v1.1.0 // indirect
        github.com/moby/sys/userns v0.1.0 // indirect
@@ -40,8 +39,8 @@
        github.com/prometheus/procfs v0.16.1 // indirect
        github.com/sirupsen/logrus v1.9.3 // indirect
        github.com/stretchr/objx v0.5.2 // indirect
-       golang.org/x/net v0.48.0 // indirect
-       golang.org/x/text v0.32.0 // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20251202230838-ff82c1b0f217 // indirect
+       golang.org/x/net v0.57.0 // indirect
+       golang.org/x/text v0.40.0 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/lib/go.sum 
new/cadvisor-0.60.5/lib/go.sum
--- old/cadvisor-0.60.3/lib/go.sum      2026-06-26 17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/lib/go.sum      2026-07-11 07:07:30.000000000 +0200
@@ -6,10 +6,10 @@
 github.com/containerd/containerd/api v1.10.0/go.mod 
h1:NBm1OAk8ZL+LG8R0ceObGxT5hbUYj7CzTmR3xh0DlMM=
 github.com/containerd/log v0.1.0 
h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
 github.com/containerd/log v0.1.0/go.mod 
h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
-github.com/containerd/ttrpc v1.2.8 
h1:xbVu6D4qF2jihdh9rDVOKqUMiFBQk6YctTdo1zk087Y=
-github.com/containerd/ttrpc v1.2.8/go.mod 
h1:wyZW2K79t4Hfcxl+GUvkZqRBzJlqFFvgEeeWXa42tyE=
-github.com/containerd/typeurl/v2 v2.2.3 
h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
-github.com/containerd/typeurl/v2 v2.2.3/go.mod 
h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
+github.com/containerd/ttrpc v1.2.9 
h1:ha0ak962T0s3CA/RoZ6S6xiWZQF24GrBaEpiGX1uihg=
+github.com/containerd/ttrpc v1.2.9/go.mod 
h1:jjtQRwXm4DL3KsHKW8vDiUOV6wO0hi6IPhmJhxU7aEs=
+github.com/containerd/typeurl/v2 v2.3.0 
h1:HZHPhRWo5XMy3QGQoPrUzbW/2ckwjfweHmOwlkIrPAQ=
+github.com/containerd/typeurl/v2 v2.3.0/go.mod 
h1:Qk+PAdUYArVj41TnGi6rJ+48RF0PkcTc4i/taoBcK0w=
 github.com/coreos/go-systemd/v22 v22.6.0 
h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo=
 github.com/coreos/go-systemd/v22 v22.6.0/go.mod 
h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU=
 github.com/creack/pty v1.1.9/go.mod 
h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
@@ -24,16 +24,12 @@
 github.com/go-logr/stdr v1.2.2/go.mod 
h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
 github.com/godbus/dbus/v5 v5.1.0 
h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
 github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang/protobuf v1.5.4 
h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
 github.com/golang/protobuf v1.5.4/go.mod 
h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod 
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/kisielk/errcheck v1.5.0/go.mod 
h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod 
h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pretty v0.3.1/go.mod 
h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -74,60 +70,33 @@
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.11.1 
h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
 github.com/stretchr/testify v1.11.1/go.mod 
h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
-github.com/yuin/goldmark v1.1.27/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 go.opentelemetry.io/auto/sdk v1.2.1 
h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
 go.opentelemetry.io/auto/sdk v1.2.1/go.mod 
h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
-go.opentelemetry.io/otel v1.39.0 
h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
-go.opentelemetry.io/otel v1.39.0/go.mod 
h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
-go.opentelemetry.io/otel/metric v1.39.0 
h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
-go.opentelemetry.io/otel/metric v1.39.0/go.mod 
h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
-go.opentelemetry.io/otel/sdk v1.39.0 
h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
-go.opentelemetry.io/otel/sdk v1.39.0/go.mod 
h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
-go.opentelemetry.io/otel/sdk/metric v1.39.0 
h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
-go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod 
h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
-go.opentelemetry.io/otel/trace v1.39.0 
h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
-go.opentelemetry.io/otel/trace v1.39.0/go.mod 
h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
-golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+go.opentelemetry.io/otel v1.43.0 
h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
+go.opentelemetry.io/otel v1.43.0/go.mod 
h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
+go.opentelemetry.io/otel/metric v1.43.0 
h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
+go.opentelemetry.io/otel/metric v1.43.0/go.mod 
h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
+go.opentelemetry.io/otel/sdk v1.43.0 
h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
+go.opentelemetry.io/otel/sdk v1.43.0/go.mod 
h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
+go.opentelemetry.io/otel/sdk/metric v1.43.0 
h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
+go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod 
h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
+go.opentelemetry.io/otel/trace v1.43.0 
h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
+go.opentelemetry.io/otel/trace v1.43.0/go.mod 
h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
+golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE=
+golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
-golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
-golang.org/x/text v0.32.0/go.mod 
h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
-gonum.org/v1/gonum v0.16.0/go.mod 
h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 
h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20251202230838-ff82c1b0f217/go.mod 
h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
-google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
-google.golang.org/grpc v1.79.3/go.mod 
h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
-google.golang.org/protobuf v1.36.10 
h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
-google.golang.org/protobuf v1.36.10/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs=
+golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs=
+golang.org/x/text v0.40.0/go.mod 
h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY=
+gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
+gonum.org/v1/gonum v0.17.0/go.mod 
h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 
h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171/go.mod 
h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
+google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ=
+google.golang.org/grpc v1.81.1/go.mod 
h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I=
+google.golang.org/protobuf v1.36.11 
h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod 
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/lib/manager/manager.go 
new/cadvisor-0.60.5/lib/manager/manager.go
--- old/cadvisor-0.60.3/lib/manager/manager.go  2026-06-26 17:52:16.000000000 
+0200
+++ new/cadvisor-0.60.5/lib/manager/manager.go  2026-07-11 07:07:30.000000000 
+0200
@@ -74,6 +74,7 @@
 var HousekeepingConfigFlags = HousekeepingConfig{
        flag.Duration("max_housekeeping_interval", 60*time.Second, "Largest 
interval to allow between container housekeepings"),
        flag.Bool("allow_dynamic_housekeeping", true, "Whether to allow the 
housekeeping interval to be dynamic"),
+       false,
 }
 
 // The Manager interface defines operations for starting a manager and getting
@@ -157,6 +158,10 @@
 type HousekeepingConfig = struct {
        Interval     *time.Duration
        AllowDynamic *bool
+       // When set to true, the manager will not discover or watch for new
+       // containers. Only the root container ("/") is created at startup;
+       // other cgroup paths are created on demand when first queried.
+       DisableContainerDiscovery bool
 }
 
 // New takes a memory storage and returns a new manager.
@@ -208,6 +213,7 @@
                startupTime:                           time.Now(),
                maxHousekeepingInterval:               
*HousekeepingConfig.Interval,
                allowDynamicHousekeeping:              
*HousekeepingConfig.AllowDynamic,
+               disableContainerDiscovery:             
HousekeepingConfig.DisableContainerDiscovery,
                includedMetrics:                       includedMetricsSet,
                containerWatchers:                     
[]watcher.ContainerWatcher{},
                eventsChannel:                         eventsChannel,
@@ -291,21 +297,22 @@
 }
 
 type manager struct {
-       containers               containerMap
-       memoryCache              *memory.InMemoryCache
-       fsInfo                   fs.FsInfo
-       sysFs                    sysfs.SysFs
-       machineMu                sync.RWMutex // protects machineInfo
-       machineInfo              info.MachineInfo
-       quitChannels             []chan error
-       cadvisorContainer        string
-       inHostNamespace          bool
-       startupTime              time.Time
-       maxHousekeepingInterval  time.Duration
-       allowDynamicHousekeeping bool
-       includedMetrics          container.MetricSet
-       containerWatchers        []watcher.ContainerWatcher
-       eventsChannel            chan watcher.ContainerEvent
+       containers                containerMap
+       memoryCache               *memory.InMemoryCache
+       fsInfo                    fs.FsInfo
+       sysFs                     sysfs.SysFs
+       machineMu                 sync.RWMutex // protects machineInfo
+       machineInfo               info.MachineInfo
+       quitChannels              []chan error
+       cadvisorContainer         string
+       inHostNamespace           bool
+       startupTime               time.Time
+       maxHousekeepingInterval   time.Duration
+       allowDynamicHousekeeping  bool
+       disableContainerDiscovery bool
+       includedMetrics           container.MetricSet
+       containerWatchers         []watcher.ContainerWatcher
+       eventsChannel             chan watcher.ContainerEvent
        // List of raw container cgroup path prefix whitelist.
        rawContainerCgroupPathPrefixWhiteList []string
        // List of container env prefix whitelist, the matched container envs 
would be collected into metrics as extra labels.
@@ -324,18 +331,22 @@
 
 // Start the container manager.
 func (m *manager) Start() error {
-       m.containerWatchers = container.InitializePlugins(m, m.fsInfo, 
m.includedMetrics)
+       if !m.disableContainerDiscovery {
+               m.containerWatchers = container.InitializePlugins(m, m.fsInfo, 
m.includedMetrics)
+       }
 
        err := raw.Register(m, m.fsInfo, m.includedMetrics, 
m.rawContainerCgroupPathPrefixWhiteList)
        if err != nil {
                klog.Errorf("Registration of the raw container factory failed: 
%v", err)
        }
 
-       rawWatcher, err := raw.NewRawContainerWatcher(m.includedMetrics)
-       if err != nil {
-               return err
+       if !m.disableContainerDiscovery {
+               rawWatcher, err := raw.NewRawContainerWatcher(m.includedMetrics)
+               if err != nil {
+                       return err
+               }
+               m.containerWatchers = append(m.containerWatchers, rawWatcher)
        }
-       m.containerWatchers = append(m.containerWatchers, rawWatcher)
 
        // If there are no factories, don't start any housekeeping and serve 
the information we do have.
        if !container.HasFactories() {
@@ -347,25 +358,30 @@
        if err != nil {
                return err
        }
-       klog.V(2).Infof("Starting recovery of all containers")
-       err = m.detectSubcontainers("/")
-       if err != nil {
-               return err
-       }
-       klog.V(2).Infof("Recovery completed")
 
-       // Watch for new container.
-       quitWatcher := make(chan error)
-       err = m.watchForNewContainers(quitWatcher)
-       if err != nil {
-               return err
-       }
-       m.quitChannels = append(m.quitChannels, quitWatcher)
+       if !m.disableContainerDiscovery {
+               klog.V(2).Infof("Starting recovery of all containers")
+               err = m.detectSubcontainers("/")
+               if err != nil {
+                       return err
+               }
+               klog.V(2).Infof("Recovery completed")
 
-       // Look for new containers in the main housekeeping thread.
-       quitGlobalHousekeeping := make(chan error)
-       m.quitChannels = append(m.quitChannels, quitGlobalHousekeeping)
-       go m.globalHousekeeping(quitGlobalHousekeeping)
+               // Watch for new container.
+               quitWatcher := make(chan error)
+               err = m.watchForNewContainers(quitWatcher)
+               if err != nil {
+                       return err
+               }
+               m.quitChannels = append(m.quitChannels, quitWatcher)
+
+               // Look for new containers in the main housekeeping thread.
+               quitGlobalHousekeeping := make(chan error)
+               m.quitChannels = append(m.quitChannels, quitGlobalHousekeeping)
+               go m.globalHousekeeping(quitGlobalHousekeeping)
+       } else {
+               klog.V(2).Infof("Container discovery disabled; only root 
container will be tracked")
+       }
 
        quitUpdateMachineInfo := make(chan error)
        m.quitChannels = append(m.quitChannels, quitUpdateMachineInfo)
@@ -543,10 +559,21 @@
 
 func (m *manager) getContainer(containerName string) (*containerData, error) {
        cont, ok := m.containers.Load(namespacedContainerName{Name: 
containerName})
-       if !ok {
-               return nil, fmt.Errorf("unknown container %q", containerName)
+       if ok {
+               return cont, nil
+       }
+
+       if m.disableContainerDiscovery {
+               if err := m.createContainer(containerName, watcher.Raw); err != 
nil {
+                       return nil, fmt.Errorf("on-demand creation of container 
%q failed: %v", containerName, err)
+               }
+               cont, ok = m.containers.Load(namespacedContainerName{Name: 
containerName})
+               if ok {
+                       return cont, nil
+               }
        }
-       return cont, nil
+
+       return nil, fmt.Errorf("unknown container %q", containerName)
 }
 
 func (m *manager) getSubcontainers(containerName string) 
map[string]*containerData {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cadvisor-0.60.3/lib/manager/manager_test.go 
new/cadvisor-0.60.5/lib/manager/manager_test.go
--- old/cadvisor-0.60.3/lib/manager/manager_test.go     2026-06-26 
17:52:16.000000000 +0200
+++ new/cadvisor-0.60.5/lib/manager/manager_test.go     2026-07-11 
07:07:30.000000000 +0200
@@ -28,6 +28,7 @@
        itest "github.com/google/cadvisor/lib/model/test"
        "github.com/google/cadvisor/lib/stats"
        "github.com/google/cadvisor/lib/utils/sysfs/fakesysfs"
+       "github.com/google/cadvisor/lib/watcher"
 
        "github.com/stretchr/testify/assert"
 
@@ -751,6 +752,84 @@
        return nil
 }
 
+// mockContainerHandlerFactory is a minimal ContainerHandlerFactory for testing
+// on-demand container creation without requiring real cgroup access.
+type mockContainerHandlerFactory struct {
+       canHandle bool
+       canAccept bool
+}
+
+func (f *mockContainerHandlerFactory) String() string { return "mock" }
+
+func (f *mockContainerHandlerFactory) DebugInfo() map[string][]string {
+       return map[string][]string{}
+}
+
+func (f *mockContainerHandlerFactory) CanHandleAndAccept(name string) (bool, 
bool, error) {
+       return f.canHandle, f.canAccept, nil
+}
+
+func (f *mockContainerHandlerFactory) NewContainerHandler(name string, 
metadataEnvAllowList []string, inHostNamespace bool) 
(container.ContainerHandler, error) {
+       return &mockHandler{
+               ref:  info.ContainerReference{Name: name},
+               spec: info.ContainerSpec{HasCpu: true},
+       }, nil
+}
+
+func TestGetContainerDiscoveryDisabled(t *testing.T) {
+       container.ClearContainerHandlerFactories()
+       defer container.ClearContainerHandlerFactories()
+
+       container.RegisterContainerHandlerFactory(
+               &mockContainerHandlerFactory{canHandle: true, canAccept: true},
+               []watcher.ContainerWatchSource{watcher.Raw},
+       )
+
+       m := newTestManager()
+       m.disableContainerDiscovery = true
+
+       // First call: container doesn't exist, should be lazily created.
+       cont, err := m.getContainer("/system.slice/kubelet.service")
+       if err != nil {
+               t.Fatalf("getContainer() returned unexpected error: %v", err)
+       }
+       if cont == nil {
+               t.Fatal("getContainer() returned nil container")
+       }
+       if cont.info.Name != "/system.slice/kubelet.service" {
+               t.Errorf("container name = %q, want 
/system.slice/kubelet.service", cont.info.Name)
+       }
+
+       // Second call: should return cached container without re-creating.
+       cont2, err := m.getContainer("/system.slice/kubelet.service")
+       if err != nil {
+               t.Fatalf("second getContainer() returned unexpected error: %v", 
err)
+       }
+       if cont2 != cont {
+               t.Error("second getContainer() returned a different container 
instance, expected cached")
+       }
+}
+
+func TestGetContainerDiscoveryEnabled(t *testing.T) {
+       container.ClearContainerHandlerFactories()
+       defer container.ClearContainerHandlerFactories()
+
+       container.RegisterContainerHandlerFactory(
+               &mockContainerHandlerFactory{canHandle: true, canAccept: true},
+               []watcher.ContainerWatchSource{watcher.Raw},
+       )
+
+       m := newTestManager()
+
+       _, err := m.getContainer("/system.slice/kubelet.service")
+       if err == nil {
+               t.Fatal("getContainer() should return error when container 
discovery is not disabled")
+       }
+       if !strings.Contains(err.Error(), "unknown container") {
+               t.Errorf("error = %q, want it to contain 'unknown container'", 
err)
+       }
+}
+
 // TestContainerDataStopConcurrent verifies that concurrent calls to Stop()
 // do not cause a panic. This is a regression test for a race condition where
 // multiple goroutines could call Stop() on the same containerData, causing a

++++++ vendor.tar.zst ++++++
++++ 30659 lines of diff (skipped)

Reply via email to