Crash in js::jit::LRecoverInfo::OperandIter::settle

RESOLVED FIXED in Firefox 57

Status

()

defect
P1
critical
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: calixte, Assigned: nbp)

Tracking

({crash})

57 Branch
mozilla57
Unspecified
Windows 7
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox55 unaffected, firefox56 unaffected, firefox57+ fixed)

Details

(crash signature)

Attachments

(1 attachment)

Reporter

Description

2 years ago
This bug was filed from the Socorro interface and is 
report bp-c055907c-6515-457f-ac80-0d1190170908.
=============================================================

There are 20 crashes in nightly 57 with buildid 20170907220212.
The pushlog for this nightly can be found at [1].
:nbp, could you investigate please ?

[1] https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=d8e238b811d3dc74515065ae8cab6c74baf0295f&tochange=b4c1ad9565ee9d00d96501c4a83083daf25c1413
Flags: needinfo?(nicolas.b.pierron)
Assignee

Comment 1

2 years ago
Calixte, thanks, perfect need-info.
This might not be Bug 966743, but this might be highlighted by it.

I will investigate later today.
Reporter

Comment 2

2 years ago
I can reproduce the crash [1] with url [2].

[1] https://crash-stats.mozilla.com/report/index/dfa0b06c-0e27-4120-8dae-264c20170908
[2] http://www.bestbuy.ca/en-ca/product/ge-30-5-0-cu-ft-freestanding-smooth-top-electric-range-jcbs630skss-stainless-steel/10605166.aspx
Crash Signature: [@ js::jit::LRecoverInfo::OperandIter::settle] → [@ js::jit::LRecoverInfo::OperandIter::settle] [@ js::jit::LRecoverInfo::appendResumePoint] [@ js::jit::LRecoverInfo::New]
This is the #10 Windows topcrash in Nightly 20170908100218.
Assignee

Comment 5

2 years ago
This issue comes from Bug 966743.
I am currently looking at how to properly fix this issue.
Assignee: nobody → nicolas.b.pierron
Blocks: 966743
Status: NEW → ASSIGNED
Flags: needinfo?(nicolas.b.pierron)
Reporter

Comment 6

2 years ago
The signature 'js::jit::MBasicBlock::flagOperandsOfPrunedBranches' appeared with buildid 20170907220212 and one of the crashy urls is [1].

[1] http://www.bestbuy.ca/en-ca/product/lexar-media-lexar-media-32gb-95mb-s-sdhc-memory-card-lsd32gcb1nl633/10417724.aspx?
Crash Signature: [@ js::jit::LRecoverInfo::OperandIter::settle] [@ js::jit::LRecoverInfo::appendResumePoint] [@ js::jit::LRecoverInfo::New] → [@ js::jit::LRecoverInfo::OperandIter::settle] [@ js::jit::LRecoverInfo::appendResumePoint] [@ js::jit::LRecoverInfo::New] [@ js::jit::MBasicBlock::flagOperandsOfPrunedBranches]
Assignee

Comment 7

2 years ago
This patch adds a test case which reproduces the same assertion seen on the
website mentioned in comment 2.

The problem is that when we inline Array.prototype.push from a fun.apply
call with the argument object of an inlined function, we did not increased
the number of slots of the basic block, leading to various memory issues.

This patch fix this issue, by moving the mutation of the number of slots in
the CallInfo::pushFormals function, and solves this issue by carrying the
apply_ flag, which records whether we should extend or not the number of
slots in the basic block.
Attachment #8906671 - Flags: review?(jdemooij)
Comment on attachment 8906671 [details] [diff] [review]
CallInfo::pushFormals is now responsible for allocating space fun.apply arguments.

Review of attachment 8906671 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/jit-test/tests/ion/array-push-multiple-with-funapply.js
@@ +22,5 @@
> +
> +if (!("oomAtAllocation" in this))
> +  quit();
> +if (canIoncompile() != true)
> +  quit();

Still not a fan of restricting tests to certain flags/modes. This test is also pretty complicated - the bug here is not an OOM issue IIUC so I'm not sure why we need oomAtAllocation etc.
Attachment #8906671 - Flags: review?(jdemooij) → review+
Assignee

Updated

2 years ago
Duplicate of this bug: 1399152
Assignee

Comment 10

2 years ago
(In reply to Nicolas B. Pierron [:nbp] from comment #7)
> This patch adds a test case which reproduces the same assertion seen on the
> website mentioned in comment 2.

I verified, with the patch, I am unable to cause the crash seen previously on the URL from comment 2.
Assignee

Updated

2 years ago
Duplicate of this bug: 1399022
Adding a Linux signature which started using 20170907220212.
Crash Signature: [@ js::jit::LRecoverInfo::OperandIter::settle] [@ js::jit::LRecoverInfo::appendResumePoint] [@ js::jit::LRecoverInfo::New] [@ js::jit::MBasicBlock::flagOperandsOfPrunedBranches] → [@ js::jit::LRecoverInfo::OperandIter::settle] [@ js::jit::LRecoverInfo::appendResumePoint] [@ js::jit::LRecoverInfo::New] [@ js::jit::MBasicBlock::flagOperandsOfPrunedBranches] [@ js::jit::LIRGeneratorShared::assignSafepoint]

Comment 13

2 years ago
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/d7bb391e9644
CallInfo::pushFormals is now responsible for allocating space fun.apply arguments. r=jandem
Assignee

Updated

2 years ago
Duplicate of this bug: 1398397
https://hg.mozilla.org/mozilla-central/rev/d7bb391e9644
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Priority: -- → P1
You need to log in before you can comment on or make changes to this bug.