tkestack / tkestack/tke-extend-network-controller

Permanent stuck finalizer in CLBBinding cleanup() - resources can become unkillable

Open
#9 3 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.