Kubernetes Concurrent Watch Decoder Goroutine Panic Handling Issues
- Investigating(current)
- Trending(upcoming)
- Workaround available(upcoming)
- Resolved(upcoming)
Executive summary
An issue was discovered in Kubernetes where adding HandleCrash calls to the concurrent watch decoder's goroutines caused callers to wait indefinitely if a worker recovered from a panic without publishing a result. Recovery mechanisms must ensure failures are properly reported so callers can finish execution.
No verified workaround yet
None of the linked reports describe a mitigation. Follow this incident to hear when one appears.
Official fixWorkers recovering from a panic via HandleCrash failed to publish results, causing callers to wait indefinitely without notification of failure.
Evidence
1 report · 1 GitHubShow
- [1]GitHub First reportInvestigate goroutine panic handling issues(opens GitHub issue in a new tab)
What happened? PR #143845 added HandleCrash calls to the concurrent watch decoder’s goroutines. During review, we found that adding a panic handler alone was not enough. If a worker recovers from a panic without publishing a result, its caller can wait indefinitely. Recovery must also ensure that failures are reported and callers can finish. We then used an AI agent to inspect the code for similar goroutine panic handling issues. Its findings are copied below. These findings are based on code…
by p0lyn0mial 0upvotes 5comments
Timeline
- First report on GitHub issue
Investigate goroutine panic handling issues
Source