Closed
Bug 1214571
Opened 9 years ago
Closed 9 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
(6 keywords, Whiteboard: [b2g-adv-main2.5-])
Crash Data
Attachments
(2 files)
(deleted),
text/html
|
Details | |
(deleted),
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•9 years ago
|
Group: dom-core-security
Comment 1•9 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•9 years ago
|
Keywords: sec-critical
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Updated•9 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•9 years ago
|
Keywords: regressionwindow-wanted
Comment 2•9 years ago
|
||
Btw, looks like it is possible that we create several HTMLCanvasElementObserver objects, but call
Destroy on only one of them.
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Comment 3•9 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•9 years ago
|
Comment 4•9 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•9 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•9 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•9 years ago
|
||
Sorry for crashing nightly. Here is patch to prevent create too much mContextObserver.
Attachment #8674021 -
Flags: review?(bugs)
Updated•9 years ago
|
Attachment #8674021 -
Flags: review?(bugs) → review+
Assignee | ||
Comment 8•9 years ago
|
||
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Updated•9 years ago
|
Assignee: nobody → mtseng
Status: NEW → ASSIGNED
Assignee | ||
Comment 9•9 years ago
|
||
Comment 10•9 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Comment 11•9 years ago
|
||
Verified as FIXED with (2015-10-17) build.
Thank you very much. \o/
Status: RESOLVED → VERIFIED
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Updated•9 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•9 years ago
|
Group: dom-core-security → core-security-release
Comment 14•9 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•9 years ago
|
Group: core-security-release
Updated•9 years ago
|
Flags: sec-bounty? → sec-bounty+
Updated•9 years ago
|
Whiteboard: [b2g-adv-main2.5-]
Updated•9 years ago
|
Attachment #8685000 -
Attachment description: bernesb@gmail.com,3000?,2015-10-14,2015-10-16,2015-11-09,true,Artur Osiński,, → bernesb@gmail.com,3000?,2015-10-14,2015-10-16,2015-11-09,true,Artur Osiński (Virtual_ManPL),,
Updated•8 years ago
|
Attachment #8685000 -
Attachment description: bernesb@gmail.com,3000?,2015-10-14,2015-10-16,2015-11-09,true,Artur Osiński (Virtual_ManPL),, → bernesb@gmail.com,3000,2015-10-14,2015-10-16,2015-11-09,true,Artur Osiński (Virtual_ManPL),,
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Updated•7 years ago
|
Keywords: nightly-community
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Updated•7 years ago
|
QA Contact: Virtual
Updated•6 years ago
|
Component: DOM → DOM: Core & HTML
Virtual_ManPL [:Virtual] 🇵🇱 - (please needinfo? me - so I will see your comment/reply/question/etc.)
Reporter
|
||
Updated•6 years ago
|
Keywords: crashreportid
You need to log in
before you can comment on or make changes to this bug.
Description
•