-
Notifications
You must be signed in to change notification settings - Fork 316
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
136 additions
and
36 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
608e4c4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a feature idea or specific question, though this is an awesome idea say a crash happens and it chooses random args in this manor one wouldn't know what arg with said poc triggered the crash, also with that in mind I feel as also you should add something to pass to the fuzzer so it could reuse the same args that triggered the crash for example...
lets say poc.js : "let o = {}" triggered a crash with --useBaselineJIT=true,
and this triggered the crash and lets say this would've stayed deterministic if the flag stayed the same.
But on the other hand lets say the randomization flips it to --useBaselineJIT=false,
and the crash doesn't happen wouldn't it turn the case a flaky ?
Considering the fact that when determining determinism it executes it I believe a default of 3 times reference :
fuzzilli/Sources/FuzzilliCli/main.swift
Line 139 in 608e4c4
IDK how @saelo fuzzer goes after that and what file actually does the execution probably would be Fuzzer.swift but this would definitely be an issue if crashes are found by a user.
At least if your not going to add the above the minimum is to output args to crash output that be at the bottom of the crashing js file like such :
"// CRASH INFO
// ==========
//Args : --useBaselineJIT=true --useConcurrentJIT=false etc etc.
// TERMSIG: 11
// STDERR:
// ASSERTION FAILED: [redacted]
// /Users/bootywarrior/Downloads/Webkit/latest/WebKit/Source/JavaScriptCore/runtime/[redacted]
// 1 0x102efd714 WTFCrash
[redacted]
// 16 0x100e533e8 llint_entry
// 17 0x100e2db04 vmEntryToJavaScript
// 18 0x102111eac JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
// 19 0x10255b210 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtrJSC::Exception&)
// 20 0x100dd63a0 jscmain(int, char**)
// 21 0x100dd4d48 main
// 22 0x104e9908c
"
608e4c4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR already adds the process arguments to the "CRASH INFO" comment so they are available for reproducing crashes locally here: 608e4c4#diff-e524fe9b24bf74c95c52ee3d975a12c5352c04d22436945653f33828e38ada06R649
I think this is what you mean? Crashes may still be marked as flaky if they don't reproduce on other instances, but that's exactly what flaky means...
608e4c4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@saelo ahh I see so that is actually handled by MockFuzzer.swift I was looking in other places and thought It was missing :) that's great!