Closed Bug 885660 Opened 11 years ago Closed 11 years ago

JSIL raytracer demo fails to load unless debugger is active

Categories

(Core :: JavaScript Engine, defect)

23 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla25
Tracking Status
firefox22 --- unaffected
firefox23 + fixed
firefox24 + fixed
firefox25 --- verified

People

(Reporter: kael, Assigned: jandem)

Details

(Keywords: regression)

Attachments

(3 files)

Attached file Test case
A recent change to the JS engine has caused the JSIL raytracer demo to fail to load unless the built-in debugger is active. It fails with this error message: Unhandled exception at http://127.0.0.1:81/Libraries/JSIL.Core.js line 6719: TypeError: assembly is undefined If the built in debugger is active the page loads normally and no exceptions (handled or otherwise) are thrown. The test case still works in IE and older builds of Firefox. Mozregression window: Last good nightly: 2013-05-08 First bad nightly: 2013-05-09
Regression range: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b980d32c366f&tochange=ea059733677c Suspected bug: Boris Zbarsky — Bug 869040. Fix ion IC for non-overridebuiltins named gets on ListBase proxies to not cache lack of a property when it's just missing on the prototype. r=djvj Workaround: javascript.options.ion.content = false fixes the issue.
Assignee: general → nobody
Blocks: 869040
Severity: blocker → normal
Component: JavaScript Engine → DOM
Keywords: regression
Ccing the people who actually know jit stuff...
Assignee: nobody → general
Component: DOM → JavaScript Engine
Regression window(m-c) Good: http://hg.mozilla.org/mozilla-central/rev/dea5219d6b43 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508210518 Bad: http://hg.mozilla.org/mozilla-central/rev/ea059733677c Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508211818 Pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=dea5219d6b43&tochange=ea059733677c Regression window(m-c) Good: http://hg.mozilla.org/integration/mozilla-inbound/rev/1c05e7a9e51c Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508095549 Bad: http://hg.mozilla.org/integration/mozilla-inbound/rev/469e647ccbf5 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508104708 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=1c05e7a9e51c&tochange=469e647ccbf5
Blocks: 868042
No longer blocks: 869040
Bug 868042 regressing this is unlikely, it probably exposed an existing bug. I'll investigate.
Assignee: general → jdemooij
Status: NEW → ASSIGNED
Attached file Shell testcase
Small shell testcase. Throws an error with default flags. Does not throw with --no-ion. We are bailing out in JSIL.GetTypeInternal and somehow context becomes |undefined|.
No longer blocks: 868042
Attached patch PatchSplinter Review
What's happening is that we have a snapshot like this: formal x: undefined (constant) local y : LArgument (x's slot) We bailout and overwrite the argument on the stack with UndefinedValue(). When we get to the local, we read the |undefined| Value from the stack instead of the original Value that was stored there. The argument is never really undefined, but due to UCE / phi elimination we think the formal is unused when we bailout and store undefined in the snapshot. The patch fixes this by storing the formals in a Vector and only writing them to the stack at the end of the bailout.
Attachment #766702 - Flags: review?(kvijayan)
Comment on attachment 766702 [details] [diff] [review] Patch Review of attachment 766702 [details] [diff] [review]: ----------------------------------------------------------------- Nice find.
Attachment #766702 - Flags: review?(kvijayan) → review+
Which bug regressed that?
(In reply to Loic from comment #9) > Which bug regressed that? I think the Baseline Compiler landing, though for this particular testcase it was only a problem after some other changes landed.
Comment on attachment 766702 [details] [diff] [review] Patch [Approval Request Comment] Bug caused by (feature/regressing bug #): Most likely the new Baseline compiler (introduced in Firefox 23) User impact if declined: Correctness bugs, probably NULL-deref crashes Testing completed (on m-c, etc.): On m-i Risk to taking this patch (and alternatives if risky): Very low String or IDL/UUID changes made by this patch: None
Attachment #766702 - Flags: approval-mozilla-beta?
Attachment #766702 - Flags: approval-mozilla-aurora?
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
Attachment #766702 - Flags: approval-mozilla-beta?
Attachment #766702 - Flags: approval-mozilla-beta+
Attachment #766702 - Flags: approval-mozilla-aurora?
Attachment #766702 - Flags: approval-mozilla-aurora+
Keywords: verifyme
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0 Build ID: 20130917123208 Verified as fixed on Firefox 25 beta 1 - the raytracer demo loads fine without an active debugger.
Keywords: verifyme
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: