tkestack / tkestack/tke-extend-network-controller
Permanent stuck finalizer in CLBBinding cleanup() - resources can become unkillable
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 14
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
I found a reliability/security issue in cleanup() (internal/controller/clbbinding.go) affecting CLBPodBinding/CLBNodeBinding deletion: if even one entry in status.PortBindings fails to clean up (stale LB, unreachable listener, etc.), the finalizer never gets removed and the object stays stuck in Terminating permanently, with no retry limit or recovery path.
I've reproduced this reliably in an isolated test cluster, since this repo doesn't have Security Advisories enabled I'd rather not post full reproduction details here. I can share the write-up privately if you're interested.
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.
Research direction
Read internal/controller/clbbinding.go, especially cleanup() and its finalizer handling; trace how CLBPodBinding and CLBNodeBinding deletion handles failures in status.PortBindings. Reproduce the permanently stuck Terminating path in the isolated test cluster and establish a bounded recovery outcome for failed cleanup, including the expected finalizer behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100