knative: goroutine leak in Deploy when service becomes ready before private-registry check
@Elvand-Lie is already working on this.
Since Jun 2, 2026.
Assessment
This issue has not been assessed yet.
Description
In pkg/knative/deployer.go, the Deploy function (new-service creation path, around line 237) starts a background goroutine that polls isImageInPrivateRegistry every 5 seconds and sends results on an unbuffered channel (chprivate).
If the WaitForService goroutine completes first (service becomes ready via cherr), the main function breaks out of the select loop and returns. The poller goroutine is then stuck on the unbuffered channel send at line 242 (chprivate <- private) with no receiver, and it blocks forever. The time.Sleep at line 240 also does not respect context cancellation.
This leaks the goroutine and everything it captures (the deployer, serving client, and function struct).
Fix: use a done channel or context to signal the poller goroutine to exit when the main select loop finishes.
- Dominant language
- Go
- Stars
- 365
- Forks
- 223
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 25
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from knative/func
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
lifecycle/stale
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
setServiceOptions: %f format produces invalid autoscaling annotation values with trailing zeros Openlifecycle/stale
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
enhancement needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
kind/cleanup
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
kubernetes-sigs/kueue#15947 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·