MemoryQueue delayed jobs never fire — job.delay is never cleared, so scheduled backups never run #51
Labels
No labels
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-fetch
blocked:lint-failed
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:verify-failed
bug
feature-request
in-progress
needs-decompose
needs-triage
ops-task
quickfix
security/high
security/low
security/medium
test-coverage
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/docker_backup#51
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
MemoryQueue.add()withdelay > 0storesjob.delay, arms asetTimeoutthat callsprocessNextJob()after the delay — but never clearsjob.delay.processNextJob()selects the next job withj.status === 'pending' && !j.delay, so the delayed job is skipped forever, even after its timer fires. Scheduled backups (which are enqueued with a delay viascheduleNextRun) never execute.Location
backend/src/core/queue/memory-queue.ts:delay: options?.delay,— delay stored on the jobsetTimeout(() => { this.delayedJobs.delete(job.id); this.processNextJob(); }, options.delay)— timer fires but does not clearjob.delayArray.from(this.jobs.values()).find(j => j.status === 'pending' && !j.delay)— filter permanently excludes the delayed jobReproduction (from kanban QA card t_3b5379e0)
scheduleNextRun()(backend/src/core/scheduler/schedule-runner.ts:71-80) adds a job withdelay = nextRunAt - nowand jobIdschedule-runner:<id>.setTimeoutfiresprocessNextJob(), but the job still has.delayset, sofind()returns nothing → job stayspendingforever, status never transitions, no backup artifact is produced.job.delayafter the timeout (transient container patch, lost on recreate).Actual vs expected
scheduledAt).pendingforever; scheduled backups never run.References
backend/src/core/queue/memory-queue.ts:51,57-66,72backend/src/core/scheduler/schedule-runner.ts:64,71-80