lifecycle-poc: force-stop never sets StatusDegraded (bare ErrForceStop not wrapped fatal)
- Dominant language
- Go
- Stars
- 610
- Forks
- 63
- Avg merge
- 12h 28m
- Merged PRs (30d)
- 57
Description
Surfaced by the #2578 review (non-blocking, out of scope there). `pkg/lifecycle-poc` force-stop uses bare `pipeline.ErrForceStop` (`service.go:248`) where the sibling `pkg/lifecycle` wraps it `cerrors.FatalError(pipeline.ErrForceStop)` (`pkg/lifecycle:337`). In the cleanup `default` branch, `IsFatalError(ErrForceStop)` is false → it falls into the stubbed-out recovery `else`, so a force-stopped POC pipeline never gets `StatusDegraded`. Relatedly, the 'recovery not implemented' branch leaves a dead pipeline stuck at `Running` forever. Both are POC-arch gaps to close as that path matures.
Contributor guide
Research direction
Start with the cleanup path in pkg/lifecycle-poc/service.go at line 248, then compare it with the sibling handling at pkg/lifecycle:337. Trace the default branch through IsFatalError and the recovery-not-implemented branch; done means force-stopping a POC pipeline sets StatusDegraded and the dead-pipeline path no longer remains at Running.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100