Bug 160283

Summary: [JSC Debug] ASSERTION FAILED: The Compare should have been eliminated, it is known to be always false.
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: JavaScriptCoreAssignee: Saam Barati <sbarati>
Status: NEW ---    
Severity: Normal CC: ap, benjamin, fpizlo, jlewis3, mark.lam, sbarati, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Crashlog none

Description Ryan Haddad 2016-07-27 20:37:44 PDT
Created attachment 284753 [details]
Crashlog

Intermittent assertion failure seen on Yosemite JSC Debug with regress/script-tests/Float32Array-matrix-mult.js.dfg-eager

https://build.webkit.org/builders/Apple%20Yosemite%20Debug%20JSC%20%28Tests%29/builds/6555

regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: ASSERTION FAILED: The Compare should have been eliminated, it is known to be always false.
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: /Volumes/Data/slave/yosemite-debug/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp(219) : void JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined(JSC::DFG::Edge)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 1   0x10e72ea50 WTFCrash
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 2   0x10ddf12a9 JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined(JSC::DFG::Edge)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 3   0x10dd9ff11 JSC::DFG::SpeculativeJIT::compare(JSC::DFG::Node*, JSC::MacroAssemblerX86Common::RelationalCondition, JSC::MacroAssemblerX86Common::DoubleCondition, unsigned long (*)(JSC::ExecState*, long long, long long))
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 4   0x10ddfe2c7 JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node*)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 5   0x10dd8e1bc JSC::DFG::SpeculativeJIT::compileCurrentBlock()
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 6   0x10dd8e996 JSC::DFG::SpeculativeJIT::compile()
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 7   0x10dc5cc17 JSC::DFG::JITCompiler::compileBody()
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 8   0x10dc60690 JSC::DFG::JITCompiler::compileFunction()
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 9   0x10dd4d2cb JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 10  0x10dd4be42 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&, JSC::DFG::ThreadData*)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 11  0x10de8f286 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 12  0x10de8cf94 JSC::DFG::Worklist::threadFunction(void*)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 13  0x10e7a1989 WTF::createThread(void (*)(void*), void*, char const*)::$_0::operator()() const
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 14  0x10e7a195d void std::__1::__invoke_void_return_wrapper<void>::__call<WTF::createThread(void (*)(void*), void*, char const*)::$_0&>(WTF::createThread(void (*)(void*), void*, char const*)::$_0&&&)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 15  0x10e7a18fc std::__1::__function::__func<WTF::createThread(void (*)(void*), void*, char const*)::$_0, std::__1::allocator<WTF::createThread(void (*)(void*), void*, char const*)::$_0>, void ()>::operator()()
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 16  0x10ddb546a std::__1::function<void ()>::operator()() const
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 17  0x10e7a055e WTF::threadEntryPoint(void*)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 18  0x10e7a2001 WTF::wtfThreadEntryPoint(void*)
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 19  0x7fff8103905a _pthread_body
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 20  0x7fff81038fd7 _pthread_body
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: 21  0x7fff810363ed thread_start
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: test_script_19003: line 2: 71759 Segmentation fault: 11  ( "$@" ../../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --useFunctionDotArguments\=true --maxPerThreadStackUsage\=1572864 --thresholdForJITAfterWarmUp\=10 --thresholdForJITSoon\=10 --thresholdForOptimizeAfterWarmUp\=20 --thresholdForOptimizeAfterLongWarmUp\=20 --thresholdForOptimizeSoon\=20 --thresholdForFTLOptimizeAfterWarmUp\=20 --thresholdForFTLOptimizeSoon\=20 --maximumEvalCacheableSourceLength\=150000 Float32Array-matrix-mult.js )
regress/script-tests/Float32Array-matrix-mult.js.dfg-eager: ERROR: Unexpected exit code: 139
FAIL: regress/script-tests/Float32Array-matrix-mult.js.dfg-eager
Comment 1 Ryan Haddad 2016-07-27 20:44:52 PDT
Looking at the last 200 test runs, the first time this appeared was r203403, but that change itself seems unrelated.

https://build.webkit.org/builders/Apple%20Yosemite%20Debug%20JSC%20%28Tests%29/builds/6473
Comment 2 Mark Lam 2016-07-27 20:57:23 PDT
(In reply to comment #1)
> Looking at the last 200 test runs, the first time this appeared was r203403,
> but that change itself seems unrelated.
> 
> https://build.webkit.org/builders/
> Apple%20Yosemite%20Debug%20JSC%20%28Tests%29/builds/6473

I don't think it's due to that revision.  If we look at the trend, we'll see that this failure is intermittent.  I don't think we'll be able to point a finger at a specific revision easily.
Comment 3 Alexey Proskuryakov 2017-07-31 13:21:02 PDT
Just saw this on stress/test-finally.js.dfg-eager today: https://build.webkit.org/builders/Apple%20Sierra%20Debug%20JSC%20%28Tests%29/builds/769/steps/jscore-test/logs/stdio
Comment 4 Ryan Haddad 2017-08-16 09:27:56 PDT
Just saw this with stress/test-finally.js.ftl-eager

https://build.webkit.org/builders/Apple%20Sierra%20Debug%20JSC%20(Tests)/builds/851
Comment 5 Saam Barati 2017-08-21 00:41:46 PDT
I think I saw this locally recently too.
Comment 6 Ryan Haddad 2017-08-23 09:04:07 PDT
This just happened on both Sierra and El Capitan Debug JSC bots with stress/test-finally.js.

https://build.webkit.org/builders/Apple%20Sierra%20Debug%20JSC%20(Tests)/builds/886
https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20JSC%20(Tests)/builds/1046

Since this is frequently making the bots red, I may just go ahead and skip stress/test-finally.js.
Comment 7 Radar WebKit Bug Importer 2017-08-24 08:42:30 PDT
<rdar://problem/34058822>
Comment 8 Ryan Haddad 2017-08-24 08:45:53 PDT
This made the bots red again today. Skipped the test in https://trac.webkit.org/r221137
Comment 9 Saam Barati 2017-08-30 15:07:25 PDT
I’ll try to look into this.
Comment 10 Ryan Haddad 2017-09-14 17:35:29 PDT
This continues to be a source of flakiness:

microbenchmarks/Float32Array-matrix-mult.js.ftl-eager
https://build.webkit.org/builders/Apple%20Sierra%20Debug%20JSC%20(Tests)/builds/1003

stress/to-lower-case-intrinsic-on-empty-rope.js.ftl-eager
https://build.webkit.org/builders/Apple%20Sierra%20Debug%20JSC%20%28Tests%29/builds/1001