Closed Bug 869027 Opened 12 years ago Closed 12 years ago

crash in JS_HasPropertyById

Categories

(Core :: DOM: Core & HTML, defect)

23 Branch
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla24
Tracking Status
firefox22 --- unaffected
firefox23 - affected
firefox24 --- affected

People

(Reporter: bws42, Assigned: khuey)

References

Details

(Keywords: crash, regression)

Crash Data

This bug was filed from the Socorro interface and is report bp-487ccfbc-2225-4e0e-a8c0-120b42130506 . ============================================================= I was trying to create a new Google Word Doc. I typed a few letters, noticed they weren't showing up then clicked on the document a few times and it broke :) I'd forgotten that editing google docs was currently broken, but I don't recall that bug mentioning crashes.
Assignee: nobody → general
Component: Editor → JavaScript Engine
There are other related signatures. The regression range is: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c8e47b184aba&tochange=b109e2dbf03b The stack trace looks like: Frame Module Signature Source 0 libxul.so JS_HasPropertyById js/src/vm/Shape.h:334 1 libxul.so xpc::WrapperFactory::WrapForSameCompartment js/xpconnect/wrappers/WrapperFactory.cpp:513 2 libxul.so JSCompartment::wrap js/src/jscompartment.cpp:171 3 libxul.so mozilla::dom::HTMLDocumentBinding::DOMProxyHandler::get obj-firefox/dom/bindings/HTMLDocumentBinding.cpp:2134 4 libxul.so js::Proxy::get js/src/jsproxy.cpp:2473 5 libxul.so proxy_GetGeneric js/src/jsproxy.cpp:2811 6 libxul.so js::DirectProxyHandler::get js/src/jsobjinlines.h:161 7 libxul.so js::CrossCompartmentWrapper::get js/src/jswrapper.cpp:310 8 libxul.so js::types::Type::objectKey const js/src/jsinferinlines.h:1357 9 libxul.so js::Proxy::get js/src/jsproxy.cpp:2473 10 libxul.so proxy_GetGeneric js/src/jsproxy.cpp:2811 11 libxul.so js::Interpret js/src/jsobjinlines.h:161 12 libxul.so js::Interpret js/src/jsinterp.cpp:1471 13 libxul.so js::BaseShape::getUnowned js/src/jsapi.h:600 14 firefox calloc memory/mozjemalloc/jemalloc.c:4178 15 libxul.so JSObject::growSlots obj-firefox/dist/include/js/Utility.h:151 16 libxul.so js::ObjectImpl::initializeSlotRange js/src/vm/ObjectImpl-inl.h:215 17 libxul.so JSObject::updateSlotsForSpan js/src/jsobj.cpp:2364 18 libxul.so JSFunction::initBoundFunction js/src/jsfun.cpp:1056 19 libxul.so js::NewFunction js/src/jsobjinlines.h:1616 20 libxul.so js_fun_bind js/src/jsfun.cpp:1236 21 libxul.so fun_bind js/src/jsfun.cpp:1203 ... More reports at: https://crash-stats.mozilla.com/report/list?signature=js%3A%3ACompartmentChecker%3A%3Afail%28JSCompartment*%2C+JSCompartment*%29 https://crash-stats.mozilla.com/report/list?signature=js%3A%3AassertSameCompartment%3CJS%3A%3AHandle%3CJSObject*%3E%2C+JS%3A%3AHandle%3C__int64%3E+%3E%28JSContext*%2C+JS%3A%3AHandle%3CJSObject*%3E+const%26%2C+JS%3A%3AHandle%3C__int64%3E+const%26%29 https://crash-stats.mozilla.com/report/list?signature=JS_HasPropertyById%28JSContext*%2C+JSObject*%2C+int%2C+int*%29 https://crash-stats.mozilla.com/report/list?signature=JS_HasPropertyById%28JSContext*%2C+JSObject*%2C+long%2C+int*%29
Crash Signature: [@ JS_HasPropertyById(JSContext*, JSObject*, long, int*)] → [@ JS_HasPropertyById(JSContext*, JSObject*, long, int*)] [@ JS_HasPropertyById(JSContext*, JSObject*, int, int*) ] [@ js::assertSameCompartment<JS::Handle<JSObject*>, JS::Handle<__int64> >(JSContext*, JS::Handle<JSObject*> const&, JS::Handle<__int64> c…
Keywords: regression
OS: Linux → All
Version: Trunk → 23 Branch
The dozen or so signatures for js::assertSameCompartment<JS::Handle<JSObject*>, JS::Handle<__int64> >(JSContext*, JS::Handle<JSObject*> const&, JS::Handle<__int64> const&) all have a mozilla::dom::HTMLDocumentBinding::DOMProxyHandler method (mostly get, but I saw another one at least once) in the stack near the top, and the DOM bindings for document landing is in the range, so it seems related. The stacks for JS_HasPropertyById(JSContext*, JSObject*, long, int*) are similar, and they also all involve xpc::WrapperFactory::WrapForSameCompartment. For a random sampling of the stacks involving js::CompartmentChecker::fail(JSCompartment*, JSCompartment*), the newer ones mostly involved the same HTMLDocumentBinding stuff, while the older stacks were the standard soup of various problems we see. In particular, there's one comment that involves a long list of steps in the developer console, but that's bug 867771 and does not involve HTMLDocument. The stacks for a random sampling of JS_HasPropertyById(JSContext*, JSObject*, int, int*) mostly did not involve document, but they did often involve some bindings stuff, like for MutationObserver.
Blocks: 855971
Seems pretty likely...
Alright, let me know if you need anything from me, I can't see that issue.
Crash Signature: , JS::Handle<__int64> const&) ] [@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)] → , JS::Handle<__int64> const&) ] [@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)] [@ SearchTable ] [@ nsIFrame::Preserves3D() ]
Oops! I added some signatures belonging to bug 869158.
Crash Signature: , JS::Handle<__int64> const&) ] [@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)] [@ SearchTable ] [@ nsIFrame::Preserves3D() ] → , JS::Handle<__int64> const&) ] [@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)]
There are about 500 crashes per build.
Severity: critical → blocker
Keywords: topcrash
(In reply to Scoobidiver from comment #8) > There are about 500 crashes per build. And as said before, this is probably a dupe of bug 869038, which has a fix in inbound at this time.
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #9) > which has a fix in inbound at this time. Thanks for info!
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #9) > this is probably a dupe of bug 869038 It doesn't seem so as there are still crashes in 23.0a1/20130509.
(In reply to Scoobidiver from comment #11) > (In reply to Robert Kaiser (:kairo@mozilla.com) from comment #9) > > this is probably a dupe of bug 869038 > It doesn't seem so as there are still crashes in 23.0a1/20130509. Hmm, that patch landed on m-c yesterday so 0509 should have the fix.
Nevertheless, the volume is lower than before the fix of bug 869038.
Severity: blocker → critical
(In reply to Robert Kaiser (:kairo@mozilla.com) from comment #9) > (In reply to Scoobidiver from comment #8) > > There are about 500 crashes per build. > > And as said before, this is probably a dupe of bug 869038, which has a fix > in inbound at this time. I don't believe so, I'm still getting these crashes every time I restart my browser. https://crash-stats.mozilla.com/report/index/bp-6c933765-cffa-4789-b471-e95952130509 https://crash-stats.mozilla.com/report/index/bp-d4bbd1d5-8526-40c1-939c-3258a2130510 https://crash-stats.mozilla.com/report/index/bp-1338300f-cb15-43d1-a7cb-5c3302130510
Yes, we'll need the JS team to look into this one.
Flags: needinfo?(nihsanullah)
Weird, there's a CCW on the stack, so we should have entered the right compartment there.
(In reply to comment #16) > Weird, there's a CCW on the stack, so we should have entered the right > compartment there. Is there anything that I can do to help debug this? I can reproduce this quite reliably, it just happens after a long session. I'd even be willing to run a debug build for a while if you tell me what kinds of stuff you'd be interested to see to help debug this.
> Dupe of bug 869038? Fixing that didn't make this crash signature go away, but it did allow the fuzzer to uncover bug 871849. Is fixing that likely to help?
Depends on: 869038, 871849
Given the regression range and the call stacks, this seems like a DOM bug. (In reply to Jesse Ruderman from comment #18) > > Dupe of bug 869038? > > Fixing that didn't make this crash signature go away, but it did allow the > fuzzer to uncover bug 871849. Is fixing that likely to help? I'm not able to access this bug. Is it protected in some special way?
(In reply to Peter Van der Beken [:peterv] from comment #16) > Weird, there's a CCW on the stack, so we should have entered the right > compartment there. Even though the compartment checking assertion fires, this might not be a compartment bug. It might just be that we have a bad pointer and the compartment checker happens to fire on it. That would explain why we sometimes fail the compartment check and sometimes fail elsewhere. All the crash addresses in the JS_HasPropertyById crash look like 0xdadadada, which means that the object we're accessing has been swept by the GC. Maybe we're not tracing something that we should be tracing.
Peter, you were saying something about issues with HTMLDocument expando tracing?
Flags: needinfo?(peterv)
Depends on: 871294
(In reply to Bill McCloskey (:billm) from comment #20) > Even though the compartment checking assertion fires, this might not be a > compartment bug. Yeah, it's not. (In reply to Boris Zbarsky (:bz) from comment #21) > Peter, you were saying something about issues with HTMLDocument expando > tracing? I'm working on that in bug 871849 which has a testcase.
Flags: needinfo?(peterv)
I guess we'll blame this on DOM for now.
Assignee: general → nobody
Component: JavaScript Engine → DOM
Flags: needinfo?(nihsanullah)
Don't know if this adds something for you, but everytime I crashed with this signature (2 or 3 times) I was logging off from Gmail.
js::CompartmentChecker::fail(JSCompartment*, JSCompartment*) signature shows a high URL correlation to GMail and Google+ URLs. Some other URLs for the various signatures: js::assertSameCompartment<JS::Handle<JSObject*>, JS::Handle<__int64> >(JSContext*, JS::Handle<JSObject*> const&, JS::Handle<__int64> const&) 5 about:blank 2 about:addons 1 http://www.gamestorrents.com/eng/juegos-pc-bittorrent.html 1 http://motherless.com/GI9C35C5B# 1 http://de.minecraftwiki.net/wiki/Trichter 1 https://www.google.com/search?q=R%E3%80%80%E6%96%87%E5%AD%97%E5%88%97%E3%80%80%E 1 http://www.aol.com/ 1 https://www.hsbc.co.uk/htse-ukpib-themeskins-servlet/screens/html/SessionWarning 1 https://groups.google.com/forum/?fromgroups#!newtopic/tekmil_hq_ipc 1 http://m2mbc.com/mail.php?mode=view_message 1 http://speed.cd/login.php 1 http://www.sk.rs/forum/showthread.php?p=1740525#post1740525 1 http://google.de/ 1 http://www.yellowbullet.com/forum/forumdisplay.php?f=119 1 chrome://lastpass/content/home2.xul 1 http://www.nhattao.com/forums/dien-thoai.144/page-5 1 https://www.paypal.com/ 1 http://fanda.nova.cz/clanek/fotky/raylene-2.html?image=1500009&psection_id=63120 1 https://www.facebook.com/ JS_HasPropertyById(JSContext*, JSObject*, long, int*) 4 https://www.facebook.com/ 2 about:plugins 1 https://www.facebook.com/groups/233890853370478/ 1 http://walmartlabs.blogspot.com/2013_05_01_archive.html 1 about:privatebrowsing 1 https://bitbucket.org/digintent/ppmd-app/ 1 http://www.google.com.br/ 1 https://docs.google.com/a/thumbtack.net/spreadsheet/ccc?key=0AvuuGoU4GQTkdGp6UU9 1 https://jira.corp.ooyala.com/ 1 http://lasership.com/track/1LS716000162468 1 http://vk.com/kurajbambey_ru 1 https://app.asana.com/0/5342359612711/5413807008821 1 http://www.ib.bioninja.com.au/options/option-e-neurobiology-and-2/e1-stimulus-an 1 http://grooveshark.com/#!/album/Random+Access+Memories/8814557 1 http://movies.netflix.com/WiPlayer?movieid=70136119&trkid=7100597 1 http://www.unrealengine.com/html5/ 1 http://www.theatlantic.com/technology/archive/2013/05/so-this-is-how-it-begins-g 1 https://www.google.com/search?q=creating+a+windows+8+install+usb&ie=utf-8&oe=utf 1 http://blogs.valvesoftware.com/abrash/
Assigning to peterv since he is working a similar bug with a test case: https://bugzilla.mozilla.org/show_bug.cgi?id=869027#c22.
Assignee: nobody → peterv
Peter - any update on this?
Flags: needinfo?(peterv)
No update beyond comment 22.
Flags: needinfo?(peterv)
Crash Signature: , JS::Handle<__int64> const&) ] [@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)] → , JS::Handle<__int64> const&) ] [@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)] [@ js::CompartmentChecker::check(JSObject*)]
Another fix for this landed on 6/5, so this may be fixed now. I don't see any crashes for JS_HasPropertyById(JSContext*, JSObject*, int, int*) in the 6/6 build.
Fully fixed by bug 871849.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I'd prefer a new bug to be filed as there was definitely an issue fixed here. If we don't go to a new bug for the remainder issue, we'll have to play flag ballet and probably remove tracking, possibly also topcrash, as now this is a much lower level of crashes.
(In reply to Robert Kaiser (:kairo@mozilla.com) [away until early June] from comment #32) > I'd prefer a new bug to be filed as there was definitely an issue fixed > here. This bug has no patch, applies to the same versions as initially reported, and has the same stack trace (especially mozilla::dom::HTMLDocumentBinding::DOMProxyHandler::get) as in comment 1. > possibly also topcrash It's #10 top browser crasher in 23.0a2 over the last three days.
(In reply to Robert Kaiser (:kairo@mozilla.com) [away until early June] from comment #34) > Actually, for me it's far out of topcrash range if I look at stats for > builds from the last three days: The Socorro-crashstats prod server is wrong. See https://crash-stats.mozilla.com/topcrasher/byversion/Firefox/23.0a2/3/browser
This does seem to have gone down a lot. There's still a crash remaining but we don't have steps to reproduce. I've been poking at this a bit, looking at crashdumps etc but for now there's not much more I can do about it.
(In reply to Peter Van der Beken [:peterv] from comment #37) > This does seem to have gone down a lot. There's still a crash remaining but > we don't have steps to reproduce. I've been poking at this a bit, looking at > crashdumps etc but for now there's not much more I can do about it. I used to hit this crash a few times per day, but since bug 871849 was fixed, I have not seen a single instance of this crash. It could be that the remaining crash is a different bug, caused by something else...
The second spike in comment 31 is very low and it's above #300 crasher in 23.0b1.
[@ js::CompartmentChecker::fail(JSCompartment*, JSCompartment*)] is currently the #8 topcrash on Nightly though I'm not seeing the other signatures in this bug reported. Also this is only #38 in Aurora and non-existent on Beta/Release. Please advise if this is the same bug or if I should file a new one. More reports here: https://crash-stats.mozilla.com/report/list?product=Firefox&range_value=7&range_unit=days&date=2013-11-12&signature=js%3A%3ACompartmentChecker%3A%3Afail%28JSCompartment*%2C+JSCompartment*%29&version=Firefox%3A28.0a1
The CompartmentChecker signature is very generic, so two separate crash spikes with that signature are unlikely to be related. Tracy Walker filed bug 937191 for the latest spike, and there's a patch waiting to land, so hopefully it will go down again.
I'm updating the topcrash info for this here, since this bug is still open and it's #1 for Firefox 28.0a1 right now. I can't see bug 937191. 7 day report: #1 with 3611 crashes. 350 crashes for the 2013111603 build. 402 crashes for the 2013111703 build.
Yeah, unfortunately the patch got backed out there (well, bug 936327, but close enough). This new problem is as a result of Kyle's patch, so let's reassign to him. ;)
Assignee: peterv → khuey
My earlier comment was about js::CompartmentChecker::fail(JSCompartment*, JSCompartment*) For Firefox 27, that crash signature is at #31 with 41 crashes. In Firefox 26, there were only 2 crashes for that signature so I think maybe I shouldn't add FF26 tracking flags.
It would be nice to track a new bug in a new bug. Mashing things together is a little confusing. For instance, I think this doesn't have anything to do with JS_HasPropertyById.
Let's leave this bug here to the original issue, the new topcrash is/was bug 936327 (which just landed). Andrew, does comment #43 mean the original issue here should also be fixed by bug 936327 or is that still different?
Flags: needinfo?(continuation)
Keywords: topcrash-win
The original issue was fixed by bug 871849, per comment 30. Or at least, mostly fixed.
Flags: needinfo?(continuation)
Whatever isn't fixed should be a new bug report.
Status: REOPENED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
js::CompartmentChecker::fail(JSCompartment*, JSCompartment*) signature shows a high URL correlation to GMail and Google+ URLs. Some other URLs for the various signatures: js::assertSameCompartment<JS::Handle<JSObject*>, JS::Handle<__int64> >(JSContext*, JS::Handle<JSObject*> const&, JS::Handle<__int64> const&) 5 about:blank 2 about:addons 1 http://uspstrackingservice.com 1 http://www.kissanimeworld.com 1 http://www.appsandapks.com 1 https://www.google.com/search?q=R%E3%80%80%E6%96%87%E5%AD%97%E5%88%97%E3%80%80%E 1 http://www.tekken7game.com 1 http://www.techontop.com 1 http://www.doctordarkcircles.com 1 http://www.prismaonandroid.com 1 https://www.facebook.com 1 http://www.automaticcallrecorderpro.com
js::CompartmentChecker::fail(JSCompartment*, JSCompartment*) signature shows a high URL correlation to GMail and Google+ URLs. Some other URLs for the various signatures: js::assertSameCompartment<JS::Handle<JSObject*>, JS::Handle<__int64> >(JSContext*, JS::Handle<JSObject*> const&, JS::Handle<__int64> const&) 5 about:blank 2 about:addons https://www.facebook.com/Fire-Pit-203222307131272/ https://best-fire-pit.harleywives.com/
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.