Closed
Bug 778006
Opened 12 years ago
Closed 12 years ago
mochitest content/canvas/test/webgl/test_webgl_conformance_test_suite.html disabled on android
Categories
(Testing :: Mochitest, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla17
People
(Reporter: gbrown, Assigned: bjacob)
References
(Blocks 1 open bug)
Details
(Whiteboard: [games:p1] webgl-conformance)
Attachments
(1 file)
1.30 KB,
patch
|
gbrown
:
review+
|
Details | Diff | Splinter Review |
In bug 775227, mochitest content/canvas/test/webgl/test_webgl_conformance_test_suite.html has been disabled on android (in android.json) on suspicion of causing out of memory errors on the Tegras. Additional investigation is required to verify this test's memory use and determine if it can be re-enabled on Android.
Assignee | ||
Comment 1•12 years ago
|
||
I would have appreciated being informed of this before the whole WebGL test suite got disabled.
The WebGL mochitest consists of 300+ separate test pages that can be individually disabled. These are the 00_test_list.txt files. There was probably no need to disable the entire test suite.
Now WebGL isn't tested at all on Android while heavy changes are underway, so we are likely to have regressions and not catch them.
Assignee | ||
Comment 2•12 years ago
|
||
This is games:p1, webgl-conformance, definitely blocking kilimanjaro and basecamp, and in fact, I don't think we can have a Firefox/Android release until this is fixed.
blocking-basecamp: --- → ?
blocking-kilimanjaro: --- → ?
Whiteboard: [orange][test disabled] → [orange][test disabled][games:p1] webgl-conformance
Reporter | ||
Comment 3•12 years ago
|
||
(In reply to Benoit Jacob [:bjacob] from comment #1)
> I would have appreciated being informed of this before the whole WebGL test
> suite got disabled.
Sorry about that. We are getting rather desperate to turn android mochitests green -- failure rates are so high that most are hidden now anyway. I recognize this was an aggressive change and I'll do what I can to narrow down the issue and get tests re-enabled asap. In the meantime, any help/insight would be appreciated.
Assignee | ||
Comment 4•12 years ago
|
||
I'd suggest logging GC and CC. Not-frequent-enough-GC-and-CC is a common reason for OOM conditions in tests.
In the case of the WebGL mochitest, this is less likely to happen as the WebGL mochitest explicitly requests GC and CC before every of its 300+ pages. Still this is only a request/hint and might not be observed.
In bug 617453 I'm working on an orthogonal solution to keep the number of live WebGL contexts under a hard limit regardless of GC/CC.
Comment 5•12 years ago
|
||
(In reply to Benoit Jacob [:bjacob] from comment #4)
> In the case of the WebGL mochitest, this is less likely to happen as the
> WebGL mochitest explicitly requests GC and CC before every of its 300+
> pages. Still this is only a request/hint and might not be observed.
I think the ways to force a GC from JS all immediately do a GC, so I don't think there's too much danger of it not running. These could be switched to memory pressure events if they aren't already, because those aggressively drop GL contexts.
johns may have some ideas on approaches to mitigate this from his experience rigging up AreWeSlimYet.com which opens a bunch of pages and measures memory use.
Assignee | ||
Comment 6•12 years ago
|
||
Confirmed locally that the number of live WebGL contexts while running the mochitest does go up (hit 9 contexts at least) i.e. the requesting GC/CC is not always effective. So this is likely to benefit from 617453.
Assignee | ||
Comment 7•12 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #5)
> (In reply to Benoit Jacob [:bjacob] from comment #4)
> > In the case of the WebGL mochitest, this is less likely to happen as the
> > WebGL mochitest explicitly requests GC and CC before every of its 300+
> > pages. Still this is only a request/hint and might not be observed.
>
> I think the ways to force a GC from JS all immediately do a GC, so I don't
> think there's too much danger of it not running.
Like I noted in Comment 6, even though we do call SpecialPowers.DOMWindowUtils.garbageCollect(); before each test page and each test page typically created only 1 WebGL context, I quickly hit 9 WebGL contexts on linux x86-64, so it seems that SpecialPowers.DOMWindowUtils.garbageCollect(); was just a hint (it does make a difference though --- it's worse without it).
> These could be switched to
> memory pressure events if they aren't already, because those aggressively
> drop GL contexts.
The solution I'm working on in bug 617453 is akin to this but will cause only the oldest-used WebGL context to be lost when the limit is exceeded, whereas memory-pressure would lose all WebGL contexts.
Comment 8•12 years ago
|
||
For what it's worth, this is the code AWSY is using to try to ensure that everything is GC'd -- basically hammering CC and GC five times in a loop, returning to the event loop:
https://github.com/Nephyrin/MozAreWeSlimYet/blob/master/mozmill_endurance_test/endurance.js#L116
This is based on what about:memory does, and is due to some objects requiring multiple GC -> CC cycles to fully clean up everything (I think there's a bug on that somewhere)
Assignee | ||
Comment 9•12 years ago
|
||
Eek. My takeaway is that explicitly triggering GC isn't really support. Fortunately the patch pending review in bug 617453 takes an approach that's orthogonal to GC.
Assignee | ||
Comment 10•12 years ago
|
||
Now that bug 617453 has landed, seems to be a good time to re-enable this mochitest. In theory, it should never result in more than 2 WebGL contexts being live at the same time, anymore.
Assignee | ||
Comment 11•12 years ago
|
||
Attachment #648936 -
Flags: review?(gbrown)
Reporter | ||
Comment 12•12 years ago
|
||
I have not been able to reproduce OOM problems since bug 617453 landed. Try run here looks very good: https://tbpl.mozilla.org/?tree=Try&rev=6026067b0d4f
Reporter | ||
Updated•12 years ago
|
Attachment #648936 -
Flags: review?(gbrown) → review+
Assignee | ||
Comment 13•12 years ago
|
||
That try run doesn't have mochitest runs, according to TBPL. Seems to be a general issue with Android at the moment.
Assignee | ||
Comment 14•12 years ago
|
||
Assignee: nobody → bjacob
Target Milestone: --- → mozilla17
Comment 15•12 years ago
|
||
(In reply to Benoit Jacob [:bjacob] from comment #13)
> That try run doesn't have mochitest runs, according to TBPL. Seems to be a
> general issue with Android at the moment.
They are hidden (bug 777436 and dependents), you need to use the "Show all Android Tests" link in the TBPL status message on Try (or just add &noignore=1 to the Try link in comment 12).
Whiteboard: [orange][test disabled][games:p1] webgl-conformance → [orange][games:p1] webgl-conformance
Comment 16•12 years ago
|
||
(In reply to Ed Morley [:edmorley] from comment #15)
> They are hidden
To clarify: By they, I meant just M1 and M3, out of the mochitests.
Assignee | ||
Comment 17•12 years ago
|
||
Ah! thanks.
Comment 18•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
Keywords: intermittent-failure
Updated•12 years ago
|
Whiteboard: [orange][games:p1] webgl-conformance → [games:p1] webgl-conformance
Comment 19•12 years ago
|
||
Clearing blocker flags.
blocking-basecamp: ? → ---
blocking-kilimanjaro: ? → ---
Updated•12 years ago
|
Keywords: intermittent-failure
Updated•11 years ago
|
Blocks: gecko-games
You need to log in
before you can comment on or make changes to this bug.
Description
•