fix(scans): de poort wordt niet meer rood om iets wat geen vondst is #805
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!805
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/scans-concurrency"
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?
Nazorg bij #778 / PR #799. De aanleiding is gemeten, niet vermoed.
Twee keer op één middag stond de scanpoort rood zonder dat er iets gevonden was (op
fc2d0a94en op deze eigen PR). De joblogs op de forge wijzen beide keren dezelfde oorzaak aan, een halve seconde na de checkout:Op precies die commits zijn
make check-secretsenmake sastlokaal groen, en op de huidige main ook. Het was dus de download van een gepinde scanner die omviel, niet de repo.Voor déze poort is dat de duurste faalvorm die er is: een rood beveiligingsvinkje dat geen vondst is, leert je het volgende rode vinkje ook weg te klikken. Dan staat de poort er nog wel, maar werkt hij niet meer.
Twee oorzaken, twee reparaties
failurete melden (concurrencyper ref). Afbreken kost hier niets, en dat is geen aanname over snelheid maar een eigenschap van de meting: beide historie-scans lezen de héle historie, dus de latere run dekt onverkort wat de afgebroken run zou hebben gezien. Bij een poort die alléén de wijziging bekijkt zou dit juist fout zijn, en dat staat als waarschuwing in de workflow.Dat Forgejo (16.0.1) de
concurrency-sleutel slikt is gecontroleerd en niet aangenomen — de taak verscheen op deze PR, en in het runnerlog staat een netteRESULT_CANCELLEDvoor een opzijgezette taak. Een niet-herkende sleutel had de scan stil kunnen uitschakelen.Een correctie op mezelf
In #801 schreef ik dat de scanners niet gecachet worden omdat drie minuten de staleness niet waard is. Dat was het zwakke argument. Het echte staat er nu: een cache-restore zou een sha256-geverifieerde download van een beveiligingsscanner vervangen door een artefact uit een eerdere run — en anders dan bij de toolchain in
linux-gate.yml, waarcheck-toolchainde herstelde boom opnieuw toetst, is er hier geen tweede controle. Cachen zou precies de eigenschap opeten waar #778 om begonnen is.make checkgroen.fix(scans): een opzijgezette run mag afbreken, niet rood wordento fix(scans): de poort wordt niet meer rood om iets wat geen vondst is66a2b65ff5dde666525c