The GitHub Actions job "Nightly Builds" on pekko.git/main has failed.
Run started by GitHub user He-Pin (triggered by He-Pin).

Head commit for run:
fe8a81fb1d802e0442e23c920f76ab6d8c585491 / He-Pin(kerr) <[email protected]>
fix: complete MapAsyncPartitioned ordered stage after trailing resumed failures 
(#3009)

* fix: complete MapAsyncPartitioned ordered stage after trailing resumed 
failures

Motivation:
FlowMapAsyncPartitionedSpec "resume after multiple failures if resume
supervision is in place" intermittently hung for 60s and failed with a
ScalaFutures timeout. This is the same completion-path family as the
drainQueue race fixed in #2899 (see #2903).

Modification:
pushNextIfPossibleOrdered's non-empty-partitions branch ended with only
drainQueue(), never calling pullIfNeeded(). The while-loop's Failure
(Supervision.Resume) branch dequeues elements without a completion check
(only the Success branch calls pullIfNeeded). So when the final buffered
elements are resumed failures, the buffer empties with upstream already
closed but completeStage() is never invoked, hanging the stage. Added a
trailing pullIfNeeded() after drainQueue(), mirroring the unordered
branch which already had it.

Result:
The stage now completes once the buffer drains after upstream finish,
regardless of whether the last elements succeed or are resumed failures.
The previously timing-out test passes in ~1ms; all 18 specs green across
5 consecutive runs. The added call is O(1), allocation-free and outside
the per-element loop, so there is no hot-path or JIT impact.

References:
- https://github.com/apache/pekko/issues/2903
- #2899

* test: cover unordered resume after trailing failures in MapAsyncPartitioned

Motivation:
The ordered completion-path hang is covered by the existing "resume after
multiple failures" test. The unordered branch already calls pullIfNeeded()
but had no resume-with-trailing-failures coverage, leaving the symmetric
completion path unguarded against future regressions.

Modification:
Added "resume (unordered) after multiple failures if resume supervision is
in place" mirroring the ordered scenario (final elements 8/9/10 all fail),
asserting the stage completes and emits the surviving elements.

Result:
FlowMapAsyncPartitionedSpec runs 19 specs green; the new test completes in
~1ms, confirming the unordered path drains and completes after upstream
finish.

References:
- https://github.com/apache/pekko/issues/2903

Report URL: https://github.com/apache/pekko/actions/runs/26642806237

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to