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]

Reply via email to