Closed Bug 601102 Opened 15 years ago Closed 14 years ago

Crash in exn_trace [@ js::Shape::trace(JSTracer*) ][@ js::Shape::trace ] mainly with TestPilot 1.1 and below

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
critical

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- Macaw+
status2.0 --- .1-fixed
status1.9.2 --- unaffected
status1.9.1 --- unaffected

People

(Reporter: scoobidiver, Assigned: luke)

References

Details

(Keywords: crash, regression, topcrash, Whiteboard: [sg:critical?][fx4-rc-ridealong])

Crash Data

Attachments

(1 file)

Build : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7pre) Gecko/20100930 Firefox/4.0b7pre This is a new crash signature that was introduced by b7pre/20100929 build. It happens only under Windows XP. It is #20 top crasher for b7pre/20100930 build. Signature js::Shape::trace(JSTracer*) UUID 61d6d1b5-c6bf-4cff-be12-4c65d2100930 Time 2010-09-30 22:43:46.779302 Uptime 30 Last Crash 36 seconds before submission Install Age 52464 seconds (14.6 hours) since version was first installed. Product Firefox Version 4.0b7pre Build ID 20100930041305 Branch 2.0 OS Windows NT OS Version 5.1.2600 Service Pack 2 CPU x86 CPU Info GenuineIntel family 15 model 6 stepping 4 Crash Reason EXCEPTION_ACCESS_VIOLATION_WRITE Crash Address 0x1e App Notes AdapterVendorID: 8086, AdapterDeviceID: 29c2 Frame Module Signature [Expand] Source 0 mozjs.dll js::Shape::trace js/src/jsscope.cpp:1358 1 mozjs.dll fun_trace js/src/jsfun.cpp:2075 2 mozjs.dll js_TraceObject js/src/jsobj.cpp:6168 3 mozjs.dll js::gc::MarkChildren js/src/jsgcinlines.h:199 4 mozjs.dll js::gc::MarkObject js/src/jsgcinlines.h:179 5 mozjs.dll fun_trace js/src/jsfun.cpp:2060 6 mozjs.dll js_TraceObject js/src/jsobj.cpp:6168 The regression range is : http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c257bfb8cad0&tochange=a60414d076b5 More reports at : http://crash-stats.mozilla.com/report/list?product=Firefox&query_search=signature&query_type=exact&query=&range_value=4&range_unit=weeks&hang_type=any&process_type=any&plugin_field=&plugin_query_type=&plugin_query=&do_query=1&admin=&signature=js%3A%3AShape%3A%3Atrace%28JSTracer*%29
It is #23 top crasher on 4.0b8pre for the last 3 days.
blocking2.0: --- → ?
blocking2.0: ? → -
status2.0: --- → wanted
It is #12 top crasher in 4.0b8 for the last week.
It is #21 top crasher in 4.0b11.
It is #11 top crasher in 4.0b12.
Here are some comments: "playing universal war( 3 tabs required ) and blood wars" "i don't know. i have closed the monitor and went to sleep. this morning found the crash report window." "Escrevendo um e-mail no gmail.com"
Keywords: topcrash
Summary: crash on Windows XP [@ js::Shape::trace(JSTracer*) ] → Crash [@ js::Shape::trace(JSTracer*) ]
Interesting that this signature seems to have climbed in early FF4 returns. It has been the #2 browser crash for the past couple of days. We will watch this one and see what happens as the # of users climb.
This spiked very significantly on FF4 release day (yesterday), together with bug 615098 and bug 643746 (all three are in JS and started spiking on 4.0* the day before, so at least the spike cause might be related), which together account for 2800 crashes in a million 4.0* ADU on that day or about 7.4% of all 4.0* crashes on that day, all three are in the top ten top crashers for 4.0* for this day.
93% of these crashes have testpilot installed, while the average is at 32%, not sure if this correlation is coincidence or not.
Summary: Crash [@ js::Shape::trace(JSTracer*) ] → Crash [@ js::Shape::trace(JSTracer*) ] mainly with TestPilot 1.1 and below
I just got hit by this today when clicking check boxes on a survey page. Isn't Test Pilot installed in Firefox 4 by default so wouldn't most people have Test Pilot installed after upgrading to Firefox 4?
(In reply to comment #9) > Isn't Test Pilot installed in Firefox 4 by default so wouldn't most people have > Test Pilot installed after upgrading to Firefox 4? It was part of the product in betas, but not in final. So everyone that had the beta will have it installed but everyone who only got final hasn't (unless they installed it manually).
(In reply to comment #10) > It was part of the product in betas, but not in final. So everyone that had the > beta will have it installed but everyone who only got final hasn't (unless they > installed it manually). Ah okay. Strangely enough I got another of these crashes. That's two in one day, when I've never seen it before today. bp-92beee74-1e16-4f34-8c47-04aca2110324
(In reply to comment #11) > Ah okay. Strangely enough I got another of these crashes. That's two in one > day, when I've never seen it before today. > > bp-92beee74-1e16-4f34-8c47-04aca2110324 We are currently unsure what causes this, but we need to get some tracking on it. You also appear to have testpilot activated, which right now is our only (weak) clue.
jono, any updates or thoughts from looking at test pilot side? dmaindelin, any ideas on how to mitigate the crash on the JS side, or help in understanding what addons might be doing?
Bill, Luke, and I were talking about this morning. We think it may be due to a compartment mismatch. An exception object keeps a list of argument values from the JS stack frames live at the point of the exception. The argument values may belong to different compartments from the exception, but they are not wrapped, which seems like a bug.
Woohoo, the assert hits, only when I install test pilot, and then the offending frame's script is indeed resource://testpilot/modules/lib/securable-module.js -> resource://testpilot/modules/lib/memory.js.
Group: core-security
Attached patch patchSplinter Review
The fix is simple.
Assignee: general → luke
Status: NEW → ASSIGNED
Attachment #521956 - Flags: review?(gal)
Wow, sounds like that was some impressive detective work figuring out the cause of the crash. Judging by Luke's patch, it seems like this has to be fixed in the core, and so there isn't anything that needs to change in Test Pilot, is that correct?
Correct; Test Pilot just tickled the dragon.
topcrash + security risk? means it really needs to get out in 4.0.1 marked this as ride-along to get on the radar since I'm not quite sure how to mark this kinds of thinks that should have blocked RC if we had known about them earlier. what's the sg: rating?
blocking2.0: - → ?
Whiteboard: [fx4-rc-ridealong]
Comment on attachment 521956 [details] [diff] [review] patch If the current compartment is privileged (chrome), it might be allow to see the content frame. Maybe we should do a follow-up and copy data into the destination compartment in that case.
Attachment #521956 - Flags: review?(gal) → review+
http://hg.mozilla.org/mozilla-central/rev/9be05c62b6ce If nightlies show a good reduction in this crash (and/or bug 615098, bug 615098), should this land on the 2.0?
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
looks like the volume on mozilla-central / 4.0 "pre" releases is extremely low (like 0-2 crashes per day). so we might need a beta or final release to really know how much impact the fix might have. for example, here is the volume of crashes per release version in crash data that we got yesterday. 20110324 9309 total crashes date total breakdown by build count build, count build, ... 8487 4.02011031805, 412 4.0b122011022221, 331 4.02011030319, 20 4.0b102011012116, 14 4.0b112011020314, 8 4.2a1pre2011032316, 7 4.0b92011011019, 7 4.0b13pre2011032203, 6 4.0b82010121417, 3 4.0b72010110414, 3 4.0b13pre2011032103, 3 4.02011031716, 2 4.2a1pre2011032314, 2 4.2a1pre2011032307, 2 4.0b13pre2011032303, 1 4.2a1pre2011032403, 1 4.0b13pre2011032003,
Oops, comment 22 clearly did not see comment 20.
OS: Windows XP → All
Hardware: x86 → All
Summary: Crash [@ js::Shape::trace(JSTracer*) ] mainly with TestPilot 1.1 and below → Crash [@ js::Shape::trace(JSTracer*) ][@ js::Shape::trace ] mainly with TestPilot 1.1 and below
blocking2.0: ? → .x+
Guessing a missing compartment check might be sg:high, but that's just a guess. Would it allow content/chrome mixing?
blocking2.0: .x+ → Macaw
Whiteboard: [fx4-rc-ridealong] → [sg:high][fx4-rc-ridealong]
The pre-existing security check in stack walking should prevent cross-origin mixing from happening directly. However, we are still accessing trash memory, so it seems to be in the theoretically-possible-to-exploit category.
because it's completely unclear, "blocking2.0: Macaw" means we want this fix on the mozilla2.0 repository for the 4.0.1 release. Consider that repo equivalent to the end-game Fx4 release and request explicit approval2.0 on the appropriate patch.
Whiteboard: [sg:high][fx4-rc-ridealong] → [sg:critical?][fx4-rc-ridealong]
Comment on attachment 521956 [details] [diff] [review] patch Approved for landing on mozilla2.0, a=dveditz for release-drivers forgive the previous boilerplate comment
Attachment #521956 - Flags: approval2.0+
We don't see this signature on branches, marking unaffected for now.
It is #9 top crasher in 4.0.1, so I reopen this bug.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I think it might be better to file another one for the remaining things, unless you know that the patch in here doesn't fix any of the crashes we've been seeing with this. Real work has been done here, and the cause supposed to be fixed by the patches in here was deemed a security risk. This bug should cover that class of crashes fixed by this patch. A new bug should be filed for any other class of crashes that might result in the same signature.
As it became from #2 to #9 top crasher, the patch has fixed some causes. They should be written in the summary, so that the bug isn't confused with the meta bug.
Status: REOPENED → RESOLVED
Closed: 15 years ago14 years ago
Resolution: --- → FIXED
Summary: Crash [@ js::Shape::trace(JSTracer*) ][@ js::Shape::trace ] mainly with TestPilot 1.1 and below → Crash in exn_trace [@ js::Shape::trace(JSTracer*) ][@ js::Shape::trace ] mainly with TestPilot 1.1 and below
When is this fix going to be available? These crashes are tedious.
(In reply to comment #34) > When is this fix going to be available? These crashes are tedious. It should be fixed in 4.0.1. The fix is only for crashes with exn_trace in the stack trace.
Fine. When is 4.0.1 going to be available. I crashed again.
Blocks: 653081
Group: core-security
Crash Signature: [@ js::Shape::trace(JSTracer*) ] [@ js::Shape::trace ]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: