Karte 896: Job-Timeout ueber das Step-Timeout heben — sonst greift continue-on-error am CVE-Scan nie - #71
Merged
Conversation
…der CVE-Ausfall sichtbar wird Job und OWASP-Schritt standen beide auf 90 Minuten. Der Job startet aber frueher, also griff sein Limit immer zuerst: der Lauf endete auf 'cancelled', 'continue-on-error' am Schritt kam nie zum Tragen, und die dort vorgesehene ::error::-Meldung lief nie. Deshalb blieb der Timeout-Fix aus Karte 420 ohne Wirkung — alle fuenf Laeufe des 17.08. endeten bei 90:19 bis 90:44 Minuten. Job jetzt 150, OWASP-Schritt 120. Die 120 sind noetig, weil der NVD-Download ohne API-Key rund 96 Minuten braucht (gemessen: 84 Minuten fuer 330.000 von 378.426 Eintraegen). Mit 90 stirbt er jedes Mal bei 87 %, der Cache bleibt unvollstaendig und der Zustand erhaelt sich selbst.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Der Fehler, der zwei fruehere Fixes unwirksam gemacht hat
Job und OWASP-Schritt standen beide auf
timeout-minutes: 90. Der Job startet aber immerzuerst, also greift sein Limit zuerst — gemessen am 17.08.2026 in
plaintext-schuetu(Lauf31995201432):
Folge: der Lauf endet auf
cancelled, dascontinue-on-error: trueam Schritt kommt nie zumTragen, und die dort vorgesehene Meldung
wird nie ausgefuehrt. Genau deshalb war der Timeout-Fix aus Karte 420 (30 -> 90 Minuten) ohne
Wirkung, und genau deshalb steht in allen sechs
quality-gate.propertiesweiterhincve.high.count=n/a— der Zustand, den Karte 604 beschrieben hat.Alle fuenf Wochenlaeufe des 17.08. bestaetigen es: 90:19 · 90:20 · 90:20 · 90:22 · 90:44 Minuten.
Fuenfmal das Job-Limit, keine einzige echte Laufzeit. Der Kommentar im Schritt („Der naechste
Weekly liefert die erste echte Dauer") konnte sich damit nicht erfuellen.
Aenderung
Warum 120 am Schritt: Ohne
NVD_API_KEYbraucht allein der NVD-Download rund 96 Minuten —gemessen 84 Minuten fuer 330.000 von 378.426 Eintraegen, dann Abbruch bei 87 %. Mit 90 stirbt er
jedes Mal kurz vor dem Ziel; der persistente Cache in
$HOME/.cache/owasp-dc-datableibtunvollstaendig (auf den vier Runnern gemessen: 411 · 527 · 647 · 722 MB, jeder anders weit) und der
Zustand erhaelt sich selbst. Mit 120 wird der Cache einmal fertig, danach laeuft der Scan
inkrementell in Minuten.
Warum 150 am Job: damit das Job-Limit ueber dem Schritt-Limit liegt und
continue-on-errorueberhaupt greifen kann. Das ist der eigentliche Fix — ohne ihn bliebe jeder weitere
Timeout-Wert wirkungslos.
Der eigentliche Ausweg bleibt der NVD-API-Key (Karte 897, ein Handgriff Daniels): mit Key ist
das Rate-Limit zehnmal hoeher. Sobald er gesetzt ist, gehoert das Schritt-Limit zurueck auf ~30 —
das steht als Kommentar an der Zeile.
Geprueft
Ein Skript liest die YAML und vergleicht jedes Job-Limit mit dem groessten Step-Limit
darin:
Die uebrigen Jobs (
ci,deploy,namespace-lint) haben gar kein Job-Limit, dort kann dieKollision nicht auftreten;
verify-dev/verify-prodebenso.Nebenbefund, bewusst nicht mitgeaendert
ciunddeployhaben keintimeout-minutes— fuer sie gilt GitHubs Vorgabe von sechsStunden. Ein haengender Deploy-Job blockiert damit sechs Stunden lang die Gruppe
deploy-<project>. Das ist derselbe Fall, den Karte 365 fuer fwtool beschrieben hat, nur an eineranderen Stelle. Nicht Teil dieses PRs, weil ein zu knapper Wert einen laufenden Blue-Green-Deploy
mitten im Umschalten abschneiden koennte — das gehoert gemessen, nicht geschaetzt.
Nicht geprueft
Ob 120 Minuten fuer den Download tatsaechlich reichen. Die 96 Minuten sind aus 84 Minuten fuer 87 %
linear fortgeschrieben; die letzten Prozente koennen langsamer sein. Der naechste Wochenlauf sagt
es — und diesmal kann er es sagen, weil der Job nicht mehr vorher abbricht.