Repository navigation
vulngate: each program scanned on its own, in a process of its own - #33
Merged
Merged
Conversation
govulncheck builds one call graph of everything it is handed: spin's ./... at once peaked at 11.5 GB, and a plain govulncheck of it was OOM-killed during the gate, where its largest program alone is 4.1 GB. vulngate scans each main package the patterns name, then what no main imports, each as this binary run again so a run's memory goes with it, and judges every run's findings together: 4.2 GB and 46 s on spin. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
On spin,
go tool vulngate ./...peaked at 11.5 GB, and a plain govulncheck of./...got OOM-killed at 10 GB while the gate ran. govulncheck builds one SSA program and call graph of everything it is handed, and the union costs far more than its parts. Measured on spin, 2026-10-13:./...at once (before)cmd/proxy, Caddy)go list. Eachmainpackage becomes its own govulncheck run, plus one run of the named packages that no main imports. Findings from every run are judged together, so the rule is the same.VULNGATE_SCAN=1), so a run's memory is given back when it ends.-flag=value.-tags=also reachesgo list.mutate: 18 refused, 0 survived.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.