Closed Bug 1936689 Opened 2 months ago Closed 2 months ago

Assertion failure: cx->isExceptionPending() || cx->isPropagatingForcedReturn() || cx->hadUncatchableException(), at vm/Interpreter.cpp:440

Categories

(Core :: JavaScript Engine, defect)

All
Linux
defect

Tracking

()

RESOLVED FIXED
135 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- unaffected
firefox133 --- wontfix
firefox134 --- wontfix
firefox135 --- fixed

People

(Reporter: gkw, Assigned: jandem)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression, reporter-external, testcase)

Attachments

(2 files)

for (var i = 0; i < 999; i++) {
  evalInWorker(`
    for (var j = 0 ; j < 99 ; j++) {
      new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(\`
        (func $f
        (result f32)
        f32.const nan
        )
        (table
        (export "table")
        1 funcref
        )
        (elem
        (i32.const 0)
        $f
        )
      \`))).exports.table.get(0).call();
    }
  `);
}
<string>:3:32 InternalError: out of memory
Stack:
  @<string>:3:32
<string>:3:32 InternalError: out of memory
Stack:
  @<string>:3:32
[2560839] Assertion failure: cx->isExceptionPending() || cx->isPropagatingForcedReturn() || cx->hadUncatchableException(), at /home/i32g7900a/trees/mozilla-central/js/src/vm/Interpreter.cpp:440
#01: ???[/home/i32g7900a/shell-cache/js-dbg-64-linux-x86_64-c01572313773/js-dbg-64-linux-x86_64-c01572313773 +0x1d334ce]
#02: ???[/home/i32g7900a/shell-cache/js-dbg-64-linux-x86_64-c01572313773/js-dbg-64-linux-x86_64-c01572313773 +0x1d0b97a]
#03: ???[/home/i32g7900a/shell-cache/js-dbg-64-linux-x86_64-c01572313773/js-dbg-64-linux-x86_64-c01572313773 +0x1d0c899]
#04: ???[/home/i32g7900a/shell-cache/js-dbg-64-linux-x86_64-c01572313773/js-dbg-64-linux-x86_64-c01572313773 +0x2a7f416]
#05: ???[/home/i32g7900a/shell-cache/js-dbg-64-linux-x86_64-c01572313773/js-dbg-64-linux-x86_64-c01572313773 +0x2a7fd4f]
#06: ??? (???:???)

I'm going to guess that this is related to bug 1921780 again.

Run with --fuzzing-safe --ion-offthread-compile=off --no-baseline --no-ion, compile with AR=ar sh ../configure --enable-debug --enable-debug-symbols --with-ccache --enable-nspr-build --enable-ctypes --enable-gczeal --enable-rust-simd --disable-tests, tested on m-c rev c01572313773.

Setting s-s just in case. Jan, did bug 1921780 likely expose the issue?

I'm unable to reproduce this in gdb for whatever reason, but when run on Ubuntu Linux or macOS 15, it seems a little intermittent but fairly reproducible outside the debugger.

Flags: sec-bounty?
Flags: needinfo?(jdemooij)
Group: core-security → javascript-core-security

I did a little bisect and bug 1921963 may be related as well.

On Linux, it can take around 30 seconds to crash, while macOS seems to take only around 5 seconds.

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

A missing ReportOutOfMemory call. This is likely an old bug that we now catch with better assertions.

Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)
Group: javascript-core-security
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ff230a5d4ac0 Add missing ReportOutOfMemory calls to GetInterpEntryAndEnsureStubs. r=rhunt
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 135 Branch
Flags: sec-bounty? → sec-bounty-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: