ConduitIO / ConduitIO/conduit

lifecycle-poc: no test coverage for the force-stop path

Open
#2,563 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
610
Forks
63
Avg merge
12h 28m
Merged PRs (30d)
57

Description

Noted during the #2559 review. `pkg/lifecycle-poc/service_test.go` has no test exercising force-stop (`grep -n 'ErrForceStop\|Kill('` returns nothing). The force branch of `stopRunnablePipeline` (`service.go:229`) only does `rp.t.Kill(pipeline.ErrForceStop)`, canceling the tomb ctx; the source `Read` unblocks via `context.Canceled` and `Worker.Close` performs the sole teardown.

Pre-existing gap, but #2559's fix changes behavior on that path (`Close` now tears the source down where it previously leaked it too), so it's worth a test: force-stop a running poc pipeline, assert the source is torn down exactly once and no records are lost/dropped beyond the force-stop semantics. Complements the graceful + fatal-error coverage.

Contributor guide

Open the contributing guide

Research direction

Read pkg/lifecycle-poc/service_test.go alongside the force branch of stopRunnablePipeline at service.go:229, and compare the existing graceful and fatal-error coverage. Add coverage for force-stopping a running pipeline, verifying the source is torn down exactly once and that records are not lost or dropped beyond force-stop semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
data-engineering, testing
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.