Closed Bug 1665303 Opened 4 years ago Closed 4 years ago

Assertion failure: !icScript_->hasInlinedChild(pcOffset), at jit/TrialInlining.cpp:326 with OOM

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
82 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox80 --- disabled
firefox81 --- disabled
firefox82 --- fixed

People

(Reporter: decoder, Assigned: jandem)

References

(Blocks 1 open bug)

Details

(4 keywords, Whiteboard: [bugmon:update,bisected,confirmed][post-critsmash-triage])

Attachments

(2 files)

The following testcase crashes on mozilla-central revision 20200915-2cca9cb89b46 (debug build, run with --fuzzing-safe --ion-offthread-compile=off --fast-warmup --warp):

oomTest(() => {
    try {
        for (let i56 = 0; i56 < 100; i56++)
            throw "foo";
    } catch (e45) {
        for (var schedulegc of [{}]) {}
    }
    while (g1 * 10);
});

Backtrace:

received signal SIGSEGV, Segmentation fault.
js::jit::TrialInliner::maybeInlineCall (this=this@entry=0x7fffffffb0d0, entry=..., loc=...) at /builds/worker/checkouts/gecko/js/src/jit/TrialInlining.cpp:326
#0  js::jit::TrialInliner::maybeInlineCall (this=this@entry=0x7fffffffb0d0, entry=..., loc=...) at /builds/worker/checkouts/gecko/js/src/jit/TrialInlining.cpp:326
#1  0x00005555577b92c5 in js::jit::TrialInliner::tryInlining (this=this@entry=0x7fffffffb0d0) at /builds/worker/checkouts/gecko/js/src/jit/TrialInlining.cpp:363
#2  0x00005555577b906c in js::jit::DoTrialInlining (cx=0x7ffff6047000, frame=0x7fffffffb190) at /builds/worker/checkouts/gecko/js/src/jit/TrialInlining.cpp:51
#3  0x00002f9826466a65 in ?? ()
[...]
#14 0x0000000000000000 in ?? ()
rax	0x55555585237b	93824995369851
rbx	0x6e	110
rcx	0x5555584eb758	93825042134872
rdx	0x0	0
rsi	0x7ffff7105770	140737338431344
rdi	0x7ffff7104540	140737338426688
rbp	0x7fffffffb040	140737488334912
rsp	0x7fffffffae00	140737488334336
r8	0x7ffff7105770	140737338431344
r9	0x7ffff7f99e00	140737353719296
r10	0x58	88
r11	0x7ffff6dac7a0	140737334921120
r12	0x7ffff4a82d58	140737298050392
r13	0x7ffff60956e8	140737321195240
r14	0x7fffffffb001	140737488334849
r15	0x7fffffffb0d0	140737488335056
rip	0x5555577bb0a8 <js::jit::TrialInliner::maybeInlineCall(js::jit::ICEntry const&, js::BytecodeLocation)+1704>
=> 0x5555577bb0a8 <js::jit::TrialInliner::maybeInlineCall(js::jit::ICEntry const&, js::BytecodeLocation)+1704>:	movl   $0x146,0x0
   0x5555577bb0b3 <js::jit::TrialInliner::maybeInlineCall(js::jit::ICEntry const&, js::BytecodeLocation)+1715>:	callq  0x555556bed862 <abort()>
Attached file Testcase

Oh I added the assertion and can take a look..

Flags: needinfo?(jdemooij)

Bugmon Analysis:
The bug appears to have been fixed in the following build range:

Start: d646a7e2621160609635b056871e2c0a6799eea7 (20200916010321)
End: 89b84ae80b98098c102af079b68e90c33f2dcb14 (20200916012607)
Pushlog: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=d646a7e2621160609635b056871e2c0a6799eea7&tochange=89b84ae80b98098c102af079b68e90c33f2dcb14
Removing bugmon keyword as no further action possible.
Please review the bug and re-add the keyword for further analysis.

Keywords: bugmon
Whiteboard: [bugmon:update,bisect] → [bugmon:update,bisected,confirmed]
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)

It was hard to fix the test to reproduce on mozilla-central tip so this adds a
trialInline() testing function to trigger trial inlining of the caller's frame.

Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 82 Branch
Group: javascript-core-security → core-security-release
Flags: qe-verify-
Whiteboard: [bugmon:update,bisected,confirmed] → [bugmon:update,bisected,confirmed][post-critsmash-triage]
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: