You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 84d124e
Browse filesBrowse the repository at this point in the historyBrowse files
Fail safe the canary chain walk and retire dead marker-tag plumbing
buildCanaryChainEvent()'s parent_tag walk now bounds at the frontier's
maxCapacity() like reconstructChain() and returns false on a cyclic or
corrupt chain instead of spinning the poll thread; the walk's
event._root_kind now comes from the terminal root-attached entry rather
than the parent-side interior entry (always 0), matching the
appendStaticFieldRootType(terminal) call and suppressChainEvent()'s
transient-root gate.
Remove the retired canary marker-tag mechanism end to end: nothing
pre-tags candidates anymore, so the decode branches in
heapReferenceCallback() and pollWatchedTargets() were unreachable - and
runPass()'s marker-release loop was worse than dead: with every
_candidate_tags[i] left at 0 it asked GetObjectsWithTags to enumerate
ALL untagged objects once per candidate slot on every search stop.
Also: read the container usage file from the hierarchy that supplied
the winning limit instead of probing v2/v1 filenames in order; clamp
PainBudget::drain() against a backward clock step; refuse symlinked or
non-owned rc-debug override files under /tmp; resolve each container
interface tag independently instead of failing the whole call; reset
consume_tier_fair()'s cursor on a completed-but-unproductive lap; drop
the pod fixture's dead placeholder assignment and assert the
representative carries its leak tag. Tests cover the bounded walk, the
deep-chain reconstruction, the symlink rejection and the cycle
fail-safe.
0 commit comments