The GitHub Actions job "Integration Tests for R2DBC" on pekko-projection.git/r2dbc-offset-store-delete-task has failed. Run started by GitHub user pjfanning (triggered by pjfanning).
Head commit for run: 6ee59a6c47dedebfaa27eac96296be32f9e06c19 / PJ Fanning <[email protected]> Let each projection run own its offset store delete task Motivation: Review of the first commit: the delete task was scheduled before `source.run()`, so it leaked if materialization threw; it kept running when the stream gave up after a finite `max-restarts`; and `stopDeleteTask()` cancelled whatever task was registered on the shared store, so cancelling on stream completion could have cancelled the task of the next run. Modification: `R2dbcOffsetStore.scheduleDeleteTask()` returns the `Cancellable` and keeps no state. `R2dbcRunningProjection` schedules it after `source.run()` and cancels its own task in `stop()` and when its stream completes. The store spec cancels the task in the "periodically delete old records" case, and the spy-store case is renamed to what it covers. Result: No delete task for a projection whose materialization failed, or whose stream has given up, and a late completion of a previous run cannot cancel the task of the next run. Tests: - New R2dbcTimestampOffsetProjectionSpec cases through ProjectionBehavior: "only run the periodic delete while the projection is running" (including a management restart) and "stop the periodic delete when the projection gives up after max restarts"; both fail with the cancels disabled, the second fails without the stream completion callback - sbt "r2dbc-int-test/test" - 118 passed; RuntimePluginConfigSpec aborts in this environment ("database database1 does not exist"), same on the unmodified main branch - sbt "r2dbc/mimaReportBinaryIssues" - success - sbt checkCodeStyle - success References: Review comments on https://github.com/apache/pekko-projection/pull/620 Report URL: https://github.com/apache/pekko-projection/actions/runs/40355655961 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
