The GitHub Actions job "Nightly Builds (1.7)" on pekko.git/main has failed. Run started by GitHub user pjfanning (triggered by pjfanning).
Head commit for run: a993c160836e96d8e29e49d10f54ed3588545bb3 / He-Pin(kerr) <[email protected]> fix: add supervision strategy support for aggregateWithBoundary callbacks (#3187) * fix: add supervision strategy support for aggregateWithBoundary callbacks Motivation: aggregateWithBoundary invokes multiple user callbacks (`allocate`, `aggregate`, `harvest`, and timer predicate), but exceptions were not supervised and failed the stream unconditionally. Modification: Add decider-based exception handling in AggregateWithBoundary for all callback sites: - allocate/aggregate in onPush - timer predicate and harvest in onTimer - harvest in onUpstreamFinish Stop fails the stage. Resume/Restart drop failing element/aggregate and continue. For aggregate callback failures, Resume now resets aggregate state to avoid retaining partially-mutated mutable state. Update Scala/Java API docs and operator docs to document supervision behavior. Add directional regression tests in AggregateWithBoundarySpec covering: - aggregate callback failures under Resume/Restart - allocate callback failure under Resume - harvest callback failure under Resume - timer predicate failure under Resume (explicit scheduler) Result: aggregateWithBoundary now honors ActorAttributes.SupervisionStrategy across all user callback failure points with deterministic regression coverage. Tests: - sbt "stream-tests/Test/testOnly org.apache.pekko.stream.scaladsl.AggregateWithBoundarySpec org.apache.pekko.stream.scaladsl.AggregateWithTimeBoundaryAndSimulatedTimeSpec" -- 11/11 passed - sbt "stream/mimaReportBinaryIssues" -- clean - sbt "docs/paradox" -- passed References: Refs #3110 * refactor: deduplicate harvest emission and add upstream-finish supervision test Motivation: The supervision handling introduced two near-identical harvest methods (harvestAndEmitFromOnPush / harvestAndEmitOnTimer) differing only in whether pullIfPossible is called after recovery, and the onUpstreamFinish harvest recovery path lacked directional test coverage. Modification: - Unify the two harvest methods into a single harvestAndEmit(pullOnRecover) that conditionally pulls on recovery; onPush passes true, onTimer passes false to preserve the original timer semantics of not managing pull state. - Add a directional test for harvest failure on upstream completion (Resume): the failing final aggregate is dropped and the stream completes normally. Result: Less duplication in the supervision recovery code and regression coverage for the previously untested onUpstreamFinish harvest path. Tests: - sbt "stream-tests/Test/testOnly org.apache.pekko.stream.scaladsl.AggregateWithBoundarySpec org.apache.pekko.stream.scaladsl.AggregateWithTimeBoundaryAndSimulatedTimeSpec" -- 12/12 passed - sbt "stream/mimaReportBinaryIssues" -- clean - scalafmt --test --mode diff-ref=origin/main -- all formatted References: Refs #3110 Report URL: https://github.com/apache/pekko/actions/runs/28307363530 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
