Closed
Bug 1346433
Opened 8 years ago
Closed 8 years ago
Crash in OOM | large | NS_ABORT_OOM | mozilla::dom::CallbackObject::FinishSlowJSInitIfMoreThanOneOwner
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
People
(Reporter: philipp, Unassigned)
Details
(Keywords: crash)
Crash Data
This bug was filed from the Socorro interface and is
report bp-3225f4e1-462b-4f12-b075-3898a2170117.
=============================================================
Crashing Thread (0)
Frame Module Signature Source
0 xul.dll NS_ABORT_OOM(unsigned int) xpcom/base/nsDebugImpl.cpp:606
1 xul.dll mozilla::dom::CallbackObject::FinishSlowJSInitIfMoreThanOneOwner(JSContext*) dom/bindings/CallbackObject.cpp:62
2 xul.dll mozilla::dom::RootedCallback<RefPtr<mozilla::dom::binding_detail::FastEventListener> >::~RootedCallback<RefPtr<mozilla::dom::binding_detail::FastEventListener> >() obj-firefox/dist/include/mozilla/dom/CallbackObject.h:578
3 xul.dll mozilla::dom::EventTargetBinding::addEventListener obj-firefox/dom/bindings/EventTargetBinding.cpp:852
4 @0xc10a9cb
this crash signature first started showing up in firefox 53 & later. so far it's only a low volume crash though.
Comment 1•8 years ago
|
||
I noticed that Patch Part 2 in bug 1326105 renamed CallbackObject::HoldJSObjectsIfMoreThanOneOwner to CallbackObject::FinishSlowJSInitIfMoreThanOneOwner. So I wonder if this is something new or simply a signature change. Any thoughts, Boris? Thanks!
Note: some reports with signatures containing "mozilla::dom::CallbackObject::HoldJSObjectsIfMoreThanOneOwner":
https://crash-stats.mozilla.com/search/?signature=~HoldJSObjectsIfMoreThanOneOwner&date=%3E%3D2017-03-07T10%3A05%3A00.000Z&date=%3C2017-03-14T10%3A05%3A00.000Z&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature
Flags: needinfo?(bzbarsky)
Comment 2•8 years ago
|
||
This is just a signature change.
What's going on here is that we're calling HoldJSObjects(this), which tries to add us to a hashtable. In this case that's reallocating the hashtable's storage, presumably because we failed to find a spot. This part is clearer in https://crash-stats.mozilla.com/report/index/076dc247-d109-49c1-911d-b57c62170308 for example, which is one of the HoldJSObjectsIfMoreThanOneOwner incidents linked in comment 1.
Anyway, we're doing a 93MB allocation for that hashtable storage, we have 350MB of virtual memory free, and presumably it's too fragmented and the allocation fails. It wouldn't take much fragmentation at all in those circumstances.
I'm not sure how feasible it would be to make the held-object storage not require a large continuous buffer while keeping it fast. :(
Flags: needinfo?(bzbarsky)
| Reporter | ||
Updated•8 years ago
|
Crash Signature: [@ OOM | large | NS_ABORT_OOM | mozilla::dom::CallbackObject::FinishSlowJSInitIfMoreThanOneOwner] → [@ OOM | large | NS_ABORT_OOM | mozilla::dom::CallbackObject::FinishSlowJSInitIfMoreThanOneOwner]
[@ OOM | large | NS_ABORT_OOM | PLDHashTable::Add | mozilla::dom::CallbackObject::HoldJSObjectsIfMoreThanOneOwner ]
Keywords: regression
Comment 3•8 years ago
|
||
93MB is a lot of objects. Presumably there's some underlying issue in the page or Firefox that is causing us to bloat up the number of callbacks. This crash is quite rare, so I don't think it is worth fixing.
Updated•8 years ago
|
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
| Reporter | ||
Updated•7 years ago
|
Crash Signature: [@ OOM | large | NS_ABORT_OOM | mozilla::dom::CallbackObject::FinishSlowJSInitIfMoreThanOneOwner]
[@ OOM | large | NS_ABORT_OOM | PLDHashTable::Add | mozilla::dom::CallbackObject::HoldJSObjectsIfMoreThanOneOwner ] → [@ OOM | large | NS_ABORT_OOM | mozilla::dom::CallbackObject::FinishSlowJSInitIfMoreThanOneOwner]
[@ OOM | large | NS_ABORT_OOM | PLDHashTable::Add | mozilla::dom::CallbackObject::HoldJSObjectsIfMoreThanOneOwner ]
[@ OOM | large | NS_ABORT_OOM | PLDHash…
| Assignee | ||
Updated•6 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•