Stack-overflow with ASan |
|||||||
Issue descriptionDetailed report: https://clusterfuzz.com/testcase?key=5674419409387520 Fuzzer: inferno_js_fuzzer Job Type: windows_asan_d8 Platform Id: windows Crash Type: Stack-overflow Crash Address: 0x00752000 Crash State: v8::internal::compiler::CodeGenerator::AssembleInstruction v8::internal::compiler::CodeGenerator::AssembleCode v8::internal::compiler::PipelineImpl::AssembleCode Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=windows_asan_d8&range=450818:452941 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5674419409387520 Issue filed automatically. See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
,
Jun 7 2017
Recording a bunch of offline discussions here: - short term, the easiest fix is to copy Igor's workaround to any additional required places. - CodeGenerator::AssembleArchInstruction is huge: almost 1800 lines of code, 88KB release binary size (144KB in Debug mode). This is unfortunate, but there is no obvious alternative: one way or another, a large set of opcodes must be mapped onto a corresponding set of code snippets for code generation. It is debatable whether manually splitting it up into a handful of chunks would improve anything (readability or code size or whatever). The function is also quite performance sensitive. - AssembleArchInstruction() requires only 376 bytes of stack space in release mode, but 36.8KB in Debug mode. It seems that the ASan builds that ClusterFuzz uses mirror a Debug build's behavior in this regard. Maybe there is a compiler flag we can set to enable whatever optimization pass is necessary to fold redundant stack space? - to reproduce stack overflow issues on Linux, "ulimit -s 1024" is helpful.
,
Jul 13 2017
ClusterFuzz has detected this issue as fixed in range 485940:486007. Detailed report: https://clusterfuzz.com/testcase?key=5674419409387520 Fuzzer: inferno_js_fuzzer Job Type: windows_asan_d8 Platform Id: windows Crash Type: Stack-overflow Crash Address: 0x00752000 Crash State: v8::internal::compiler::CodeGenerator::AssembleInstruction v8::internal::compiler::CodeGenerator::AssembleCode v8::internal::compiler::PipelineImpl::AssembleCode Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=windows_asan_d8&range=450818:452941 Fixed: https://clusterfuzz.com/revisions?job=windows_asan_d8&range=485940:486007 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5674419409387520 See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information. If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
,
Jul 13 2017
ClusterFuzz testcase 5674419409387520 is verified as fixed, so closing issue. If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
,
Sep 15 2017
Issue 763641 has been merged into this issue.
,
Sep 15 2017
,
Sep 15 2017
This is still getting reported by ClusterFuzz. We should find an ultimate solution as proposed in #2.
,
Sep 18 2017
We have made a bunch of changes on ClusterFuzz side, so resetting ClusterFuzz-Wrong label.
,
Oct 1 2017
Automatically applying components based on information from OWNERS files. If this seems incorrect, please apply the Test-Predator-Wrong-Components label.
,
Nov 7 2017
,
Dec 1 2017
,
Dec 1 2017
Issue 752897 has been merged into this issue.
,
Dec 11 2017
Issue 791287 has been merged into this issue.
,
Dec 21 2017
,
Jan 17 2018
,
Jan 17 2018
This crash still happens from time to time in ClusterFuzz. We should try to fix this, either by generally increasing the "red zone" on the stack (the guaranteed available space after a stack check), or by introducing more explicit stack checks in C++ code where we know that we need a lot of stack space. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by clemensh@chromium.org
, Jun 6 2017Cc: clemensh@chromium.org jkummerow@chromium.org
Owner: ishell@chromium.org
Status: Assigned (was: Untriaged)