WrapOracle.cpp MOZ_ASSERT_IF(hash == oldHash, cx_->hadNondeterministicException());
Categories
(Core :: JavaScript Engine: JIT, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox89 | --- | fixed |
People
(Reporter: bryce, Assigned: iain)
References
Details
Crash Data
Attachments
(1 file)
I've been reliably hitting https://searchfox.org/mozilla-central/rev/a848cde8a73065fcc41902ac58c65821eb9a44ca/js/src/jit/WarpOracle.cpp#188 while trying to debug a media issue. I'm not sure what prompted the problem, as it wasn't a permafail initially, but now is.
After playing the video on https://www.groovehq.com/watch-demo for ~2 seconds I trigger the assert on a local build built from cenrtral bd8121e747b5 (March 11).
Reporter | ||
Comment 1•4 years ago
|
||
Commenting out the asserting code then triggers https://searchfox.org/mozilla-central/rev/a848cde8a73065fcc41902ac58c65821eb9a44ca/js/src/jit/JitScript.h#496 which makes it difficult to mitigate the issue in my debug builds.
Comment 2•4 years ago
|
||
This is Iain's code; it's trying to catch potential performance issues, but we should have a flag (--disable-bailout-loop-checking
or somesuch) to disable this for people like Bryce who can't action the resulting failure.
Assignee | ||
Comment 3•4 years ago
|
||
The shell flag is --disable-bailout-loop-check
. I'm not sure that there's an easy way to set it in the browser, but if you're looking for the easiest fix in your local build, changing false to true here should do the trick.
In the meantime, I'll try to figure out the underlying problem.
Comment 4•4 years ago
|
||
oops; I totally meant pref vs. flag!
Reporter | ||
Comment 5•4 years ago
|
||
(In reply to Iain Ireland [:iain] from comment #3)
The shell flag is
--disable-bailout-loop-check
. I'm not sure that there's an easy way to set it in the browser, but if you're looking for the easiest fix in your local build, changing false to true here should do the trick.In the meantime, I'll try to figure out the underlying problem.
Thanks! Appreciate the work around.
Assignee | ||
Comment 6•4 years ago
|
||
If we parse offthread, then the shape of the template object will be allocated in a separate zone with a different initialShapes set. CodeGenerator::visitRegExp
will create a new regexp using the shape of the template object. To remain consistent and avoid failed shape guards / bailout loops, we should do the same in CloneRegExpObject
.
I played around with offThreadCompileScript
and friends for a while trying to replicate the problem in the shell, but I couldn't get a testcase to work. This fixes the browser issue, though.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 8•4 years ago
|
||
bugherder |
Updated•4 years ago
|
Comment hidden (Intermittent Failures Robot) |
Description
•