Open Bug 1188037 Opened 10 years ago Updated 2 years ago

Need manual graphics testing for OOM conditions

Categories

(Core :: Graphics, defect)

defect

Tracking

()

People

(Reporter: vladan, Assigned: jrmuizel)

Details

(Whiteboard: gfx-noted)

Background: I've been seeing graphics glitches (black tabs, window not repainting) on my various Windows machines very frequently over the last couple of months. Today, I tried to load a profile in the Gecko profiler while the system was under memory pressure, got a JS "Out of memory" error in the DevTools console, and as soon as I switched to another tab, the tab was completely black and would only repaint portions of the page when I moused over them (similar to past issues). This is very similar to past gfx glitches I've experienced. about:memory showed that vsize is close to 4GB on this 32-bit Aurora build. Jeff's suggestion: Manually test how gfx behaves during OOMs and potentially fix or change the behaviour. I'm in favour of this suggestion, and I would argue that crashing, or asking the user to restart, or even forcefully unloading some of his background tabs is preferrable to bizarre graphics glitches.
Flags: needinfo?(milan)
Sounds reasonable - what's the best way to get us into the "close to OOM" state? Do we have developer tools for this?
Flags: needinfo?(milan) → needinfo?(vdjeric)
I was able to reproduce Firefox OOM reliably by opening a very brief profile in process-per-tab e10s with a dozen content processes :) You could also write a toy Firefox extension or even a devtools snippet to allocate a lot of huge JS objects. Seems like a job for an intern? Yours or mine :)
Flags: needinfo?(vdjeric)
Basically just fork this https://github.com/luser/crashme to allocate a whole bunch of large JS objects until allocations fail
Flags: needinfo?(milan)
(In reply to Vladan Djeric (:vladan) -- please needinfo! from comment #3) > Basically just fork this https://github.com/luser/crashme to allocate a > whole bunch of large JS objects until allocations fail Or VirtualAlloc if you want to do it on the C++ side of the addon.
Whiteboard: gfx-noted
Assigning to Jeff so that we track any ideas we have on this topic.
Assignee: nobody → jmuizelaar
Flags: needinfo?(milan)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.