nextcloud/core/Command/TaskProcessing
Yoan Bozhilov 3f3f9c6464 fix(taskprocessing): guard lockTask on scheduled, record started_at, Oracle fallback
Address review feedback (@marcelklehr, Copilot):
- lockTask claims only SCHEDULED tasks (was status != RUNNING) and stamps
  started_at in the same atomic UPDATE, so a finished task cannot be re-claimed
  and the external-provider claim path records started_at as well.
- claimWithBoundedRetry re-reads after lockTask instead of a follow-up UPDATE.
- Oracle joins SQLite on the bounded-retry fallback: Oracle cannot combine a
  row-limiting clause with FOR UPDATE (ORA-02014), which failed the claim tests
  on Oracle CI.
- Reword the worker docblock/comments to "prefer oldest available" (parallel
  SKIP LOCKED does not guarantee a strict global order).
- Add a regression test that lockTask does not resurrect a finished task.

Signed-off-by: Yoan Bozhilov <bygadd@gmail.com>
Assisted-by: Claude Code:claude-opus-4-8
2026-06-17 19:00:53 +02:00
..
Cleanup.php chore: add missing Override attribute to core code 2026-04-28 21:29:28 +02:00
EnabledCommand.php chore: add missing Override attribute to core code 2026-04-28 21:29:28 +02:00
GetCommand.php chore: add missing Override attribute to core code 2026-04-28 21:29:28 +02:00
ListCommand.php chore: add missing Override attribute to core code 2026-04-28 21:29:28 +02:00
Statistics.php chore: add missing Override attribute to core code 2026-04-28 21:29:28 +02:00
WorkerCommand.php fix(taskprocessing): guard lockTask on scheduled, record started_at, Oracle fallback 2026-06-17 19:00:53 +02:00