Closed Bug 1755693 Opened 3 years ago Closed 3 years ago

Perma [tier 2] Assertion failure: maybeGcOptions == Nothing(), at z:/task_164498528886997/src/js/src/gc/GC.cpp:3962

Categories

(Core :: JavaScript: GC, defect, P5)

defect

Tracking

()

RESOLVED FIXED
99 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox97 --- unaffected
firefox98 --- unaffected
firefox99 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: jonco)

References

(Regression)

Details

(Keywords: assertion, intermittent-failure, regression)

Attachments

(1 file)

Filed by: nfay [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=368038225&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/a6KWNwCgQB-dS-zt3GDauw/runs/0/artifacts/public/logs/live_backing.log


[task 2022-02-16T05:49:59.012Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "") [0.2 s]
[task 2022-02-16T05:49:59.346Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.3 s]
[task 2022-02-16T05:49:59.798Z] Assertion failure: maybeGcOptions == Nothing(), at z:/task_164498528886997/src/js/src/gc/GC.cpp:3962
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #01: js::gc::GCRuntime::startGC (z:\task_164498528886997\src\js\src\gc\GC.cpp:3950)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #02: js::gc::GCRuntime::gcIfRequested (z:\task_164498528886997\src\js\src\gc\GC.cpp:4150)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #03: JSContext::handleInterrupt (z:\task_164498528886997\src\js\src\vm\Runtime.cpp:506)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #04: js::jit::CheckOverRecursed (z:\task_164498528886997\src\js\src\jit\VMFunctions.cpp:586)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #05: ??? (???:???)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #06: js::jit::MaybeEnterJit (z:\task_164498528886997\src\js\src\jit\Jit.cpp:210)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #07: js::RunScript (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:384)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.798Z] #08: js::InternalCallOrConstruct (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:544)
[task 2022-02-16T05:49:59.798Z] 
[task 2022-02-16T05:49:59.802Z] #09: InternalCall (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:572)
[task 2022-02-16T05:49:59.802Z] 
[task 2022-02-16T05:49:59.802Z] #10: js::CallFromStack (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:576)
[task 2022-02-16T05:49:59.802Z] 
[task 2022-02-16T05:49:59.802Z] #11: js::jit::DoCallFallback (z:\task_164498528886997\src\js\src\jit\BaselineIC.cpp:1595)
[task 2022-02-16T05:49:59.802Z] 
[task 2022-02-16T05:49:59.802Z] #12: ??? (???:???)
[task 2022-02-16T05:49:59.802Z] 
[task 2022-02-16T05:49:59.802Z] #13: js::jit::MaybeEnterJit (z:\task_164498528886997\src\js\src\jit\Jit.cpp:210)
[task 2022-02-16T05:49:59.802Z] 
[task 2022-02-16T05:49:59.802Z] #14: ??? (???:???)
[task 2022-02-16T05:49:59.802Z] 
[task 2022-02-16T05:49:59.802Z] Exit code: 2147483651
[task 2022-02-16T05:49:59.802Z] FAIL - wasm\limits.js
[task 2022-02-16T05:49:59.802Z] TEST-UNEXPECTED-FAIL | js\src\jit-test\tests\wasm\limits.js | Assertion failure: maybeGcOptions == Nothing(), at z:/task_164498528886997/src/js/src/gc/GC.cpp:3962 (code 2147483651, args "--ion-eager --ion-offthread-compile=off --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads") [0.5 s]
[task 2022-02-16T05:49:59.802Z] INFO exit-status     : 2147483651
[task 2022-02-16T05:49:59.802Z] INFO timed-out       : False
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> Assertion failure: maybeGcOptions == Nothing(), at z:/task_164498528886997/src/js/src/gc/GC.cpp:3962
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #01: js::gc::GCRuntime::startGC (z:\task_164498528886997\src\js\src\gc\GC.cpp:3950)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #02: js::gc::GCRuntime::gcIfRequested (z:\task_164498528886997\src\js\src\gc\GC.cpp:4150)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #03: JSContext::handleInterrupt (z:\task_164498528886997\src\js\src\vm\Runtime.cpp:506)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #04: js::jit::CheckOverRecursed (z:\task_164498528886997\src\js\src\jit\VMFunctions.cpp:586)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #05: ??? (???:???)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #06: js::jit::MaybeEnterJit (z:\task_164498528886997\src\js\src\jit\Jit.cpp:210)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #07: js::RunScript (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:384)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #08: js::InternalCallOrConstruct (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:544)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #09: InternalCall (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:572)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #10: js::CallFromStack (z:\task_164498528886997\src\js\src\vm\Interpreter.cpp:576)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #11: js::jit::DoCallFallback (z:\task_164498528886997\src\js\src\jit\BaselineIC.cpp:1595)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #12: ??? (???:???)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #13: js::jit::MaybeEnterJit (z:\task_164498528886997\src\js\src\jit\Jit.cpp:210)
[task 2022-02-16T05:49:59.802Z] INFO stderr         2> #14: ??? (???:???)
[task 2022-02-16T05:50:00.049Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--baseline-eager") [0.3 s]
[task 2022-02-16T05:50:00.283Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--no-blinterp --no-baseline --no-ion --more-compartments") [0.2 s]
[task 2022-02-16T05:50:00.521Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--blinterp-eager") [0.2 s]
[task 2022-02-16T05:50:00.761Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--wasm-compiler=optimizing") [0.2 s]
[task 2022-02-16T05:50:01.003Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--wasm-compiler=baseline") [0.2 s]
[task 2022-02-16T05:50:01.467Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--test-wasm-await-tier2") [0.5 s]
[task 2022-02-16T05:50:01.518Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 59, args "--disable-wasm-huge-memory") [0.1 s]
[task 2022-02-16T05:50:01.751Z] TEST-PASS | js\src\jit-test\tests\wasm\limits.js | Success (code 0, args "--wasm-compiler=optimizing --enable-avx") [0.2 s]
[task 2022-02-16T05:50:01.808Z] TEST-PASS | js\src\jit-test\tests\wasm\memory-aliasing.js | Success (code 0, args "") [0.1 s]

Flags: needinfo?(jcoppeard)

It started appearing on central as tier 2 and we added a job on this push where we think it started and it has failed there as well, could you take a look at it please? Thank you!

Set release status flags based on info from the regressing bug 1753958

Assignee: nobody → jcoppeard

The problem here is that the GC options are set in startgc() but we exit early
without clearing them if checkIfGCAllowedInCurrentState returns false, causing
an assertion failure the next time we GC.

Flags: needinfo?(jcoppeard)

(In reply to Jon Coppeard (:jonco) from comment #3)

Created attachment 9264216 [details]
Bug 1755693 - Always reset GC options on exit from GCRuntime::collect() if we've finished collecting r?sfink

The problem here is that the GC options are set in startgc() but we exit early
without clearing them if checkIfGCAllowedInCurrentState returns false, causing
an assertion failure the next time we GC.

This has been reviewed, could we have this landed?
Thank you.

Flags: needinfo?(jcoppeard)
Pushed by jcoppeard@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/dbdd6a823823 Always reset GC options on exit from GCRuntime::collect() if we've finished collecting r=sfink
Has Regression Range: --- → yes
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 99 Branch
Flags: needinfo?(jcoppeard)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: