diff --git a/go.mod b/go.mod index cf7c54f5..66af3fe9 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( golang.org/x/time v0.9.0 google.golang.org/protobuf v1.36.5 gopkg.in/evanphx/json-patch.v4 v4.12.0 - k8s.io/api v0.0.0-20250703010437-9ca4bf8538e0 + k8s.io/api v0.0.0-20250705010445-839e6c7fb630 k8s.io/apimachinery v0.0.0-20250703090149-a9de165b70c8 k8s.io/klog/v2 v2.130.1 k8s.io/kube-openapi v0.0.0-20250628140032-d90c4fd18f59 diff --git a/go.sum b/go.sum index 1816a8e2..e9ae0d20 100644 --- a/go.sum +++ b/go.sum @@ -151,8 +151,8 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.0.0-20250703010437-9ca4bf8538e0 h1:iS/S3wfNTxgeC+HNybNhVSLt7y9E1XDkUlzPRXd1c6U= -k8s.io/api v0.0.0-20250703010437-9ca4bf8538e0/go.mod h1:2FUvtol5X8X7D4iFOQdd1W2Q6BoMhvE/DSSRzyWQ2yU= +k8s.io/api v0.0.0-20250705010445-839e6c7fb630 h1:pnI9Db0bmtO4qa+X6jGK8WslPvzLwW8wrAe5B2//yGU= +k8s.io/api v0.0.0-20250705010445-839e6c7fb630/go.mod h1:cQb0K/knyMnN0b7QfEoYB+YzMbFk6PMoa/XTGxEJ7iw= k8s.io/apimachinery v0.0.0-20250703090149-a9de165b70c8 h1:cyn8l4zqyrfCZFbRwIXfhaFQ4KOK9oDCdUMBy5RVeck= k8s.io/apimachinery v0.0.0-20250703090149-a9de165b70c8/go.mod h1:Th679JJyaVRDNFk3vKPKY43ypziDeoGnbEiEgBCz8s4= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= diff --git a/tools/cache/controller.go b/tools/cache/controller.go index 1497700d..5f983b6b 100644 --- a/tools/cache/controller.go +++ b/tools/cache/controller.go @@ -204,13 +204,15 @@ func (c *controller) LastSyncResourceVersion() string { // concurrently. func (c *controller) processLoop(ctx context.Context) { for { - // TODO: Plumb through the ctx so that this can - // actually exit when the controller is stopped. Or just give up on this stuff - // ever being stoppable. - _, err := c.config.Queue.Pop(PopProcessFunc(c.config.Process)) - if err != nil { - if err == ErrFIFOClosed { - return + select { + case <-ctx.Done(): + return + default: + _, err := c.config.Pop(PopProcessFunc(c.config.Process)) + if err != nil { + if errors.Is(err, ErrFIFOClosed) { + return + } } } }