Repository navigation
Optimize fuzzing runs for memory - #680
Merged
Merged
Conversation
Contributor
Author
|
I'm guessing that if this is approved and works, it'll probably be a good idea to also migrate it to v1. |
alejandro-vaz
approved these changes
Sep 28, 2026
Collaborator
|
yeah let's migrate this to v1 @bolshoytoster thanks @pedrodesu |
bolshoytoster
added a commit
to bolshoytoster/rust-smallvec
that referenced
this pull request
Sep 28, 2026
alejandro-vaz
pushed a commit
that referenced
this pull request
Sep 28, 2026
* Port new fuzzer to v1 * Just copy the workflows from v2 (probably won't work) * Add iai-callgrind as a dev-dependency * Add callgrind profile * Add callgrind benches * Change fuzz back to edition = "2018" * Update the right version this time * Change fuzz edition back to 2018 * Remove callgrind benches * Fix tests on MSRV * Didn't mean to commit that * Port #680 * Change fuzz dependency syntax
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.
As observed in #677, the fuzzer currently runs OOM before the expected 30 minutes. This PR intends to fix this problem: It lets the fuzzer use 4GB of memory instead of the default 2GB (the default GitHub actions runner gives us about 7GB to work with, so this should be acceptable) and divides the 30 minutes of fuzzing between 6 consecutive batches of 5 minute runs. This is because ASan often times doesn't actually free memory but instead marks it as available (and indeed, the log shows big chunks of memory being kept allocated. This shouldn't be a fuzzing problem as we clamp all operations and arrays to a max of 255 elements). With this PR, everything is freed periodically and the fuzzer has double the memory to work with, which should mean the 30 minutes are ran without problems.