Closed Bug 1227548 Opened 4 years ago Closed 4 years ago

[XP] Firefox crashes or doesn't play WebGL content after unlocking the computer

Categories

(Core :: Canvas: WebGL, defect)

x86
Windows XP
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla47
Tracking Status
firefox42 --- wontfix
firefox43 + wontfix
firefox44 + wontfix
firefox45 + verified
firefox46 --- verified
firefox47 --- verified

People

(Reporter: petruta.rasa, Assigned: eflores)

Details

(Keywords: crash)

Crash Data

Attachments

(1 file)

Reproduced with Firefox 43 beta 6, latest DevEdition 44.0a2 and Nightly 45.0a1 2015-11-24 under Win XP 32-bit.
The issue doesn't reproduce under Win 7 64-bit, Mac OS X 10.9.5 and Ubuntu 14.04 32-bit.

Steps to reproduce:
1. Have tabs containing WebGL samples open (eg http://madebyevan.com/webgl-water/ , http://webglsamples.org/aquarium/aquarium.html , http://www.wordsaretoys.com/apps/fissure/)
2. While the game/animation is playing, lock the computer (Win Logo + L)
3. Login and check the WebGL sites

Expected results: WebGL continues to play

Actual results:
Firefox crashes (with no reliable crash signature -/throttling) or the WebGL content is not rendered (context lost log.js:55:5)

In Firefox 40.0.3 WebGL content is not loaded, the following message appears in the browser console:
Error: WebGL: Refused to create native OpenGL context because of blacklisting. webgl.js:156:16
Error: WebGL: WebGL creation failed.

In Firefox 41.0.2 I encountered the crash only once (https://crash-stats.mozilla.com/about/throttling) so it seems that this is not a regression although it's easier to reproduce on Firefox 43 beta.

Graphics
Adapter Description	Intel(R) HD Graphics
Adapter Drivers	igxprd32
Adapter RAM	Unknown
Asynchronous Pan/Zoom	none
Device ID	0x0152
DirectWrite Enabled	false (0.0.0.0)
Driver Date	1-16-2012
Driver Version	6.14.10.5398
On another Win XP x86 machine, the crashes were correctly registered:

https://crash-stats.mozilla.com/report/index/8cc0b935-db56-4f3d-b677-799272151124
https://crash-stats.mozilla.com/report/index/bp-ef9eb173-d009-465f-811b-33c5b2151124

Graphics
Adapter Description	ATI Radeon 3000 Graphics
Adapter Drivers	ati2dvag
Adapter RAM	Unknown
Asynchronous Pan/Zoom	none
Device ID	0x9616
DirectWrite Enabled	false (0.0.0.0)
Driver Date	7-3-2012
Driver Version	8.970.100.3000
Interestingly, the crash signature of the crashes mentioned in comment #1 also exists on Win7 and higher and on Firefox 42, even if the specific case to reproduce might not work there.
Crash Signature: [@ @0x0 | mozilla::gl::DrawBuffer::`scalar deleting destructor'' ]
Keywords: crash
Tracking this as it's a crash that may have become more common recently. It doesn't look very high volume on beta, a bit more so on 42 release.
(In reply to Petruta Rasa [QA] [:petruta] from comment #0)
> Graphics
> Adapter Description	Intel(R) HD Graphics
> Adapter Drivers	igxprd32
> Adapter RAM	Unknown
> Asynchronous Pan/Zoom	none
> Device ID	0x0152
> DirectWrite Enabled	false (0.0.0.0)
> Driver Date	1-16-2012
> Driver Version	6.14.10.5398

It might be fixed by installing driver 14.51.11.5437 (6.14.10.5437) from 2/13/2013.
(In reply to Petruta Rasa [QA] [:petruta] from comment #1)
> On another Win XP x86 machine, the crashes were correctly registered:
> 
> https://crash-stats.mozilla.com/report/index/8cc0b935-db56-4f3d-b677-
> 799272151124
> https://crash-stats.mozilla.com/report/index/bp-ef9eb173-d009-465f-811b-
> 33c5b2151124
> 
> Graphics
> Adapter Description	ATI Radeon 3000 Graphics
> Adapter Drivers	ati2dvag
> Adapter RAM	Unknown
> Asynchronous Pan/Zoom	none
> Device ID	0x9616
> DirectWrite Enabled	false (0.0.0.0)
> Driver Date	7-3-2012
> Driver Version	8.970.100.3000

This could likely be fix by updating to 8.97.100.7 from Catalyst 14.4 from 04/25/2014.
(In reply to Arthur K. from comment #4)
> It might be fixed by installing driver 14.51.11.5437 (6.14.10.5437) from
> 2/13/2013.

After updating, the browser only crashed once. 
Driver Date	2-4-2013
Driver Version	6.14.10.5437

(In reply to Arthur K. from comment #5)
> (In reply to Petruta Rasa [QA] [:petruta] from comment #1)
> > On another Win XP x86 machine, the crashes were correctly registered:
> This could likely be fix by updating to 8.97.100.7 from Catalyst 14.4 from
> 04/25/2014.

I updated to: 
Driver Date	11-16-2012
Driver Version	8.970.100.7000
and still had crashes on almost every try.
Assignee: nobody → edwin
Too late for a fix for 43. This doesn't look very high volume but the signature is still showing up on release as well as on 44 and 45.
Milan, this is a pretty low volume crash, so for 44 it seems like a wontfix. I am just pinging you on whether we need to re-prioritize this one as it hasn't gotten much attention since mid December. Thanks!
Flags: needinfo?(milan)
We'll get to it; not the highest urgency based on some other bugs, but we want to get to it.
Flags: needinfo?(milan)
Attached patch 1227548.patchSplinter Review
When our GLContext dies, the subclass destructor calls GLContext::MarkDestroyed. This zeroes out |mSymbols|, so no GL calls can be made.

Sometimes the GLContext can still have a GLScreenBuffer, which still has a DrawBuffer or ReadBuffer. When these latter two are destroyed they try to call glDelete{Frame,Render}buffers, which leads to a crash because |mSymbols| is zeroed.

I'm not sure why the GLContext is dying here -- probably driver weirdness -- but the least we can do here is not crash. The attached patch just changes ~{Read,Draw}Buffer() to check the return value of GLContext::MakeCurrent().
Attachment #8714902 - Flags: review?(jgilbert)
Comment on attachment 8714902 [details] [diff] [review]
1227548.patch

Review of attachment 8714902 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/gl/GLScreenBuffer.cpp
@@ +840,5 @@
>  
>  DrawBuffer::~DrawBuffer()
>  {
> +    if (!mGL->MakeCurrent()) {
> +      return;

4-space indents.
Also you don't need the brackets for returns in this area of the code.
Attachment #8714902 - Flags: review?(jgilbert) → review+
https://hg.mozilla.org/mozilla-central/rev/8e6090909a8a
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
Comment on attachment 8714902 [details] [diff] [review]
1227548.patch

Approval Request Comment
[Feature/regressing bug #]: WebGL.
[User impact if declined]: Crashes on some WebGL content.
[Describe test coverage new/current, TreeHerder]: On m-c.
[Risks and why]: None. Just adds a sanity check.
[String/UUID change made/needed]: None.
Attachment #8714902 - Flags: approval-mozilla-beta?
Attachment #8714902 - Flags: approval-mozilla-aurora?
Comment on attachment 8714902 [details] [diff] [review]
1227548.patch

Fix a crash, taking it.
Should be in 45 beta 3.
Attachment #8714902 - Flags: approval-mozilla-beta?
Attachment #8714902 - Flags: approval-mozilla-beta+
Attachment #8714902 - Flags: approval-mozilla-aurora?
Attachment #8714902 - Flags: approval-mozilla-aurora+
Flags: qe-verify+
I could no longer reproduce the crash with Firefox 45 beta 6, latest Aurora 46.a02 and latest Nightly 47.0a1 2016-02-18.
Also there are no new crashes registered in Socorro after the fix landed, so I'm marking this as verified.
You need to log in before you can comment on or make changes to this bug.