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]
