fix: parse cron task run ids strictly · openclaw/openclaw@3bf8687
openclaw
·
2026-05-29
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -420,6 +420,35 @@ describe("task-registry maintenance issue #60299", () => {
|
420 | 420 | expect(storedTask.terminalSummary).toBe("done"); |
421 | 421 | }); |
422 | 422 | |
| 423 | +it("does not recover cron tasks from malformed run id timestamps", async () => { |
| 424 | +const task = makeStaleTask({ |
| 425 | +runtime: "cron", |
| 426 | +sourceId: "cron-job-run-log-ok", |
| 427 | +runId: "cron:cron-job-run-log-ok:1e3", |
| 428 | +}); |
| 429 | + |
| 430 | +const { currentTasks } = createTaskRegistryMaintenanceHarness({ |
| 431 | +tasks: [task], |
| 432 | +cronRunLogEntries: { |
| 433 | +"cron-job-run-log-ok": [ |
| 434 | +{ |
| 435 | +ts: 1250, |
| 436 | +jobId: "cron-job-run-log-ok", |
| 437 | +action: "finished", |
| 438 | +status: "ok", |
| 439 | +summary: "done", |
| 440 | +runAtMs: 1000, |
| 441 | +durationMs: 250, |
| 442 | +}, |
| 443 | +], |
| 444 | +}, |
| 445 | +}); |
| 446 | + |
| 447 | +expectMaintenanceCounts(previewTaskRegistryMaintenance(), { reconciled: 1, recovered: 0 }); |
| 448 | +expectMaintenanceCounts(await runTaskRegistryMaintenance(), { reconciled: 1, recovered: 0 }); |
| 449 | +expectTaskStatus(currentTasks, task.taskId, "lost"); |
| 450 | +}); |
| 451 | + |
423 | 452 | it("recovers interrupted cron tasks from durable cron job state when run logs are absent", async () => { |
424 | 453 | const startedAt = Date.now() - GRACE_EXPIRED_MS; |
425 | 454 | const task = makeStaleTask({ |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。