[P1][BUG] Scheduler ist vollständig sequentiell — ein laufendes Backup blockiert alle anderen Jobs und Ticks (Blocker für Mehr-Node-Betrieb) #226
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?
Blockiert das Anbinden weiterer Produktiv-Nodes.
Befund
server/scheduler.py:370—run_scheduler()ist eine einzige sequentielle Schleife, und_tick()(Zeile 114) arbeitet fällige Jobs nacheinander mitawaitab:_run_job()setzt für Backupstimeout = 3660(61 Minuten), fürcommand.runbis zu 3600 s (command_router.py,min(3600, timeout)).Auswirkung
Solange ein Backup läuft, läuft im gesamten Scheduler nichts anderes:
_cve_scan_tick()_docker_check_tick()maybe_run_docgen()_auto_update_tick()Alle diese Ticks stehen in
run_scheduler()hinterawait _tick().Rechnung: 10 Produktiv-Nodes, nächtliches Backup à 40 min → 400 min = 6,7 Stunden serialisiert. Ein Backup-Fenster von 4 Stunden reicht nicht. Job 1 läuft um 2:00, Job 10 um 8:00 während der Arbeitszeit.
Mit einem Node ist das unauffällig. Genau deshalb fällt es jetzt nicht auf und beim Hochskalieren sofort.
Sekundäreffekt
Ein hängender Agent (siehe #214) hält den vollen Timeout. 61 Minuten Scheduler-Stillstand durch einen einzigen unerreichbaren Node.
Prompt für Claude Code
Definition of Done
Aus dem Code-Review vom 2026-07-27 (Commit
4152c4d). Gesamtblock: #226, #227, #228, #229, #230, #231.Abarbeitung niedrig → hoch: #231 → #230 → #229 → #228 → #227 → #226.