Closed
Bug 1214571
Opened 10 years ago
Closed 10 years ago
Firefox Nightly 44.0a1 (2015-10-12) crashes in mozilla::dom::HTMLCanvasElement
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
VERIFIED
FIXED
mozilla44
Tracking | Status | |
---|---|---|
firefox43 | --- | unaffected |
firefox44 | + | verified |
People
(Reporter: Virtual, Assigned: mtseng)
References
Details
(7 keywords, Whiteboard: [b2g-adv-main2.5-])
Crash Data
Attachments
(2 files)
659 bytes,
text/html
|
Details | |
1.70 KB,
patch
|
baku
:
review+
|
Details | Diff | Splinter Review |
Crashes happens mostly when you close the Firefox, but it can also happens when you swap the tab to another one.
[Tracking Requested - why for this release]: Regression
Regression window (mozilla-central)
Good:
https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2015-10-11-03-02-29-mozilla-central/
Bad:
https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2015-10-12-03-06-12-mozilla-central/
Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b68eab795f9de072bee12821b0f09422e5aa0da9&tochange=0b69d304f861d0038fb78f1d52b0f5d13ef7c6fe
Crashlog reports [@ mozilla::dom::HTMLCanvasElement::OnVisibilityChange() ]:
https://crash-stats.mozilla.com/report/index/d75adabe-5159-4d82-8aa9-df02d2151012
https://crash-stats.mozilla.com/report/index/ff9a1d5c-0db5-4d5f-a381-9c3c32151012
https://crash-stats.mozilla.com/report/index/22f8f058-1081-477a-8451-78bdd2151013
https://crash-stats.mozilla.com/report/index/db80e051-041b-4475-9b06-c9ef42151013
https://crash-stats.mozilla.com/report/index/10390cd6-af7e-4103-b506-7b1272151013
https://crash-stats.mozilla.com/report/index/2c865c8a-7ca1-40d1-b1d4-1f2282151013
Crashlog reports [@ mozilla::dom::HTMLCanvasElementObserver::UnregisterVisibilityChangeEvent() ];
https://crash-stats.mozilla.com/report/index/33b2cfea-1f4b-4cf0-a51a-fccee2151012
https://crash-stats.mozilla.com/report/index/b7983fe3-5458-4b26-b2d0-2c8b02151012
https://crash-stats.mozilla.com/report/index/f8ca6fc4-a371-49bc-bad7-d90dd2151013
Updated•10 years ago
|
Group: dom-core-security
Comment 1•10 years ago
|
||
Based on the crash stats, we have somehow missed to call
HTMLCanvasElementObserver::Destroy() since HTMLCanvasElementObserver::HandleEvent calls OnVisibilityChange() on using a deleted mElement, if I read the stacks right.
Raw pointer as a member variable bites again.
HTMLCanvasElementObserver has HTMLCanvasElement* mElement;
Blocks: 709490
Updated•10 years ago
|
Keywords: sec-critical
Reporter | ||
Updated•10 years ago
|
Summary: Firefox Nightly 44.0a1 (2015-10-13) crashes in mozilla::dom::HTMLCanvasElement → Firefox Nightly 44.0a1 (2015-10-12) crashes in mozilla::dom::HTMLCanvasElement
Updated•10 years ago
|
Keywords: regressionwindow-wanted
Comment 2•10 years ago
|
||
Btw, looks like it is possible that we create several HTMLCanvasElementObserver objects, but call
Destroy on only one of them.
Reporter | ||
Comment 3•10 years ago
|
||
I also want to mention that I have these option set as "false" in about:config:
-webgl.angle.try-d3d11
-webgl.can-lose-context-in-foreground
-webgl.enable-debug-renderer-info
-webgl.restore-context-when-visible
and these to "true:
-webgl.disable-angle
-webgl.disable-extensions
-webgl.disable-fail-if-major-performance-caveat
-webgl.disabled
to disable completely WebGL per security reasons and per not using it.
Updated•10 years ago
|
Comment 4•10 years ago
|
||
(In reply to Olli Pettay [:smaug] from comment #2)
> Btw, looks like it is possible that we create several
> HTMLCanvasElementObserver objects, but call
> Destroy on only one of them.
HTMLCanvasElementObserver calls Destroy in its DTOR. But yes, we should check if we already have an existing mContextObserver.
Comment 5•10 years ago
|
||
(In reply to Olli Pettay [:smaug] from comment #1)
> Raw pointer as a member variable bites again.
> HTMLCanvasElementObserver has HTMLCanvasElement* mElement;
Sigh. :( I should land my analysis soon...
Comment 6•10 years ago
|
||
Not 100% reliable testcase, since it depends on CC/GC scheduling, but seems to crash locally usually in HTMLCanvasElement::OnVisibilityChange()
But hopefully it helps figuring out the right patch for this.
c.getContext("webgl", { get stencil() { throw "hahaa"; } }); creates
an HTMLCanvasElementObserver which c.getContext("webgl", { stencil: false }); then overrides.
Assignee | ||
Comment 7•10 years ago
|
||
Sorry for crashing nightly. Here is patch to prevent create too much mContextObserver.
Attachment #8674021 -
Flags: review?(bugs)
Updated•10 years ago
|
Attachment #8674021 -
Flags: review?(bugs) → review+
Assignee | ||
Comment 8•10 years ago
|
||
Reporter | ||
Updated•10 years ago
|
Assignee: nobody → mtseng
Status: NEW → ASSIGNED
Assignee | ||
Comment 9•10 years ago
|
||
![]() |
||
Comment 10•10 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
Reporter | ||
Comment 11•10 years ago
|
||
Verified as FIXED with (2015-10-17) build.
Thank you very much. \o/
Status: RESOLVED → VERIFIED
Reporter | ||
Updated•10 years ago
|
Crash Signature: [@ mozilla::dom::HTMLCanvasElement::OnVisibilityChange() ]
[@ mozilla::dom::HTMLCanvasElementObserver::UnregisterVisibilityChangeEvent() ] → [@ mozilla::dom::HTMLCanvasElement::OnVisibilityChange() ]
[@ mozilla::dom::HTMLCanvasElement::OnVisibilityChange ]
[@ mozilla::dom::HTMLCanvasElementObserver::UnregisterVisibilityChangeEvent() ]
Keywords: topcrash,
topcrash-win
Updated•10 years ago
|
Group: dom-core-security → core-security-release
Comment 14•10 years ago
|
||
See the change after https://bugzilla.mozilla.org/show_bug.cgi?id=1214571#c1
sec-critical because of accessing a deleted object.
Updated•10 years ago
|
Group: core-security-release
Updated•10 years ago
|
Flags: sec-bounty? → sec-bounty+
![]() |
||
Updated•10 years ago
|
Whiteboard: [b2g-adv-main2.5-]
Reporter | ||
Updated•8 years ago
|
Keywords: nightly-community
Reporter | ||
Updated•8 years ago
|
QA Contact: Virtual
Updated•7 years ago
|
Component: DOM → DOM: Core & HTML
Reporter | ||
Updated•6 years ago
|
Keywords: crashreportid
Updated•1 year ago
|
Keywords: reporter-external
You need to log in
before you can comment on or make changes to this bug.
Description
•