Skip to content

[m15] containerstdout: goleak test missing — MILESTONES claim unsubstantiated #160

Description

@trilamsr

Summary

`MILESTONES.md` line 371 (M15 §Back-pressure) is checked ☑:

Back-pressure: 1M-line burst from one rank MUST NOT block sibling streams; bounded per-file goroutine + bounded channel (1024); `goleak` test.

The `goleak` test does not exist. `grep -r goleak components/receivers/containerstdout/` returns nothing.

Risk

Receiver goroutines (tailer.Run, healthLoop, informer.Run, rate-limit evict ticker) survive Shutdown if Stop semantics drift. Without goleak, regression goes silent.

Fix

Add `TestReceiver_NoGoroutineLeak` to `receiver_test.go` or new `leak_test.go`:

  • TestMain pattern: `goleak.VerifyTestMain(m, ...)`
  • OR per-test: `defer goleak.VerifyNone(t)` on Start/Shutdown cycle
  • Whitelist informer's controller-runtime goroutines that are known to survive (document why)

Affected files

  • `components/receivers/containerstdout/receiver_test.go` or new `leak_test.go`
  • `go.mod` (add `go.uber.org/goleak` if not present transitively)

Why load-bearing

MILESTONES.md ☑ misrepresents the receiver's leak-safety posture. Either implement or flip to ☐.

Origin

PR #158 self-review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions