Skip to content

[v25.3.x] transform: multi-produce failure wedge fix - #30856

Merged
WillemKauf merged 2 commits into
redpanda-data:v25.3.xfrom
vbotbuildovich:backport-pr-30836-v25.3.x-871
Jun 22, 2026
Merged

[v25.3.x] transform: multi-produce failure wedge fix#30856
WillemKauf merged 2 commits into
redpanda-data:v25.3.xfrom
vbotbuildovich:backport-pr-30836-v25.3.x-871

Conversation

@vbotbuildovich

Copy link
Copy Markdown
Collaborator

Backport of PR #30836

Anish2454 and others added 2 commits June 19, 2026 20:09
Signed-off-by: Anish Shenoy <anish@onechronos.com>
(cherry picked from commit 638caa4)
`run_all_producers()` fanned out one producer loop per output via
`ss::parallel_for_each()`, which captures the first exception but waits
for every loop to finish before resolving. A producer loop only exits
once its abort source fires, so when a single producer threw (e.g. a
transient "not a leader for partition" during a leadership transfer) the
surviving loops spun forever. parallel_for_each stayed pending, the
exception was never observed, and state::errored never fired -- so the
processor's reported state stayed stuck at running with no progress on
the affected output until an external pause/resume.

Single-output transforms were unaffected because `parallel_for_each()`
over one element resolves exceptionally immediately.

Drive the producer loops off a composite abort source that fires when
either the processor stops (_as) or a producer fails (a local source).
The first producer to fail records its exception and aborts the local
source, which unwinds the sibling producer loops promptly; the captured
exception is then rethrown so it is reported exactly once as
state::errored, and the manager restarts the processor.

Also updates the repro test from the previous commit to assert the
failure is reported for any output count, and adds a regression test that
fails a producer, restarts, and asserts a clean restart with no spurious
second error.

(cherry picked from commit 38526c5)
@vbotbuildovich vbotbuildovich added this to the v25.3.x-next milestone Jun 19, 2026
@vbotbuildovich vbotbuildovich added the kind/backport PRs targeting a stable branch label Jun 19, 2026
@vbotbuildovich

vbotbuildovich commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator Author

Retry command for Build#86050

please wait until all jobs are finished before running the slash command

/ci-repeat 1
skip-redpanda-build
skip-units
skip-rebase
tests/rptest/tests/write_caching_fi_e2e_test.py::WriteCachingFailureInjectionE2ETest.test_crash_all@{"use_transactions":false}

@vbotbuildovich

Copy link
Copy Markdown
Collaborator Author

CI test results

test results on build#86050
test_status test_class test_method test_arguments test_kind job_url passed reason test_history
FLAKY(FAIL) WriteCachingFailureInjectionE2ETest test_crash_all {"use_transactions": false} integration https://buildkite.com/redpanda/redpanda/builds/86050#019ee1a1-85cb-4e1f-a377-ab562b40e62d 8/11 Test FAILS after retries.Significant increase in flaky rate(baseline=0.0000, p0=0.0000, reject_threshold=0.0100) https://redpanda.metabaseapp.com/dashboard/87-tests?tab=142-dt-individual-test-history&test_class=WriteCachingFailureInjectionE2ETest&test_method=test_crash_all

@WillemKauf
WillemKauf enabled auto-merge June 22, 2026 12:39
@WillemKauf
WillemKauf merged commit 03edbcc into redpanda-data:v25.3.x Jun 22, 2026
17 checks passed
@tyson-redpanda tyson-redpanda modified the milestones: v25.3.x-next, v25.3.16 Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/build area/redpanda area/wasm WASM Data Transforms kind/backport PRs targeting a stable branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants