Closed
Bug 781792
Opened 11 years ago
Closed 7 years ago
test_webgl_conformance_test_suite.html on panda board with fennec yield OOM
Categories
(Core :: Graphics: CanvasWebGL, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: jmaher, Unassigned)
References
Details
(Keywords: intermittent-failure, Whiteboard: [leave open])
Attachments
(1 file)
I am trying to verify all the existing tests run on the panda boards and I found that I could reproduce an OOM with webgl_conformance_test_suite.html on my panda board (which has 1GB of RAM) inside this test conformance/renderbuffers/framebuffer-object-attachment.html. I don't know if this is the test that causes it or if it happens to be that something in the suite before this eats up enough memory and this is the test that breaks the pandas back. Lets figure out how to debug this so we can figure out how to fix this or determine if we need to disable some part of this suite or not.
Comment 1•11 years ago
|
||
Does the OOM reproduce by running this framebuffer-object-attachment.html page standalone? It's here: https://www.khronos.org/registry/webgl/conformance-suites/1.0.1/conformance/renderbuffers/framebuffer-object-attachment.html Do you know if it OOMs at a consistent location, either in Gecko's code (get a backtrace in JimDB) or in the test's code (as a starting point, what does adb logcat say?)
Yeah, the issue might be that we're just not releasing GL resources fast enough so by the time we get here we end up OOM'ing even though each individual test is fine. Though bug 617453 should have helped with that case...
Reporter | ||
Comment 3•11 years ago
|
||
here is what I see in logcat while running just that webl_conformance test suite: E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: Exceeded 2 live WebGL contexts for this principal, losing the least recently used one." {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/resources/webgl-test.js" line: 49}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: clear: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 61}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: readPixels: incomplete framebuffer" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 63}] E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: renderbufferStorage generated error OUT_OF_MEMORY" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 343}] I/SUTAgentAndroid( 1891): 192.168.1.64 : ps I/SUTAgentAndroid( 1891): 192.168.1.64 : pull /mnt/sdcard/tests/logs/mochitest.log W/NetworkManagementSocketTagger( 1412): setKernelCountSet(10046, 0) failed with errno -2 I/WindowManager( 1412): WIN DEATH: Window{4139f6b8 SurfaceView paused=false} I/ActivityManager( 1412): Process org.mozilla.fennec_jmaher (pid 2237) has died. W/NetworkManagementSocketTagger( 1412): setKernelCountSet(10044, 1) failed with errno -2 W/ActivityManager( 1412): Force removing ActivityRecord{413b6a88 org.mozilla.fennec_jmaher/.App}: app died, no saved state I/WindowManager( 1412): WIN DEATH: Window{4156f3c8 org.mozilla.fennec_jmaher/org.mozilla.fennec_jmaher.App paused=false}
Comment 4•11 years ago
|
||
This is the one: E/GeckoConsole( 2237): [JavaScript Warning: "Error: WebGL: renderbufferStorage generated error OUT_OF_MEMORY" {file: "http://mochi.test:8888/tests/content/canvas/test/webgl/conformance/renderbuffers/framebuffer-object-attachment.html" line: 343}] What's line 343? It is: gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 0, 0); So we seem to have a driver bug there, right? And we could easily enough work around it by overriding 0 dimensions as, say, 1.
Updated•11 years ago
|
Summary: test_webgl_conformance_test_suite.html on panda board with fennec yield OOM → test_webgl_conformance_test_suite.html on panda board with fennec yield OOM because driver OOMs on 0-size renderBufferStorage
Reporter | ||
Comment 5•11 years ago
|
||
let me know what to try to ensure it works for us.
Comment 6•11 years ago
|
||
Can you try out this patch? It may introduce other failures, I've not checked at all. The questions is: does it fix this particular OOM, as identified in adb logcat having this OUT_OF_MEMORY message pointing to line 343 in that test?
Reporter | ||
Comment 7•11 years ago
|
||
unfortunately that didn't help :( Same error, same file and line number.
Comment 8•11 years ago
|
||
Well, this is fun. It sounds like we need to use 1x1 instead, and pretend it's 0x0 when the user queries it with getRenderbufferParameter. Luckily, for a framebuffer to be 'complete', it needs to have non-zero width and height, and all attachments must match. We have to assure that attaching a 1x1 texture with a '0x0' (actually 1x1) renderbuffer must not be considered complete.
Comment 9•11 years ago
|
||
(In reply to Joel Maher (:jmaher) from comment #7) > unfortunately that didn't help :( Same error, same file and line number. That suggests that my theory was wrong then. We could disable this particular test page on Android, but then we lose coverage.
Updated•11 years ago
|
Summary: test_webgl_conformance_test_suite.html on panda board with fennec yield OOM because driver OOMs on 0-size renderBufferStorage → test_webgl_conformance_test_suite.html on panda board with fennec yield OOM
Comment 10•11 years ago
|
||
I am trying to get a pandaboard to reproduce at the moment.
Comment 11•11 years ago
|
||
I got a pandaboard all set up. But Fennec (m-c) can't get to any https page. All I get is "Untrusted Connection" and the browser freezes. Known bug / should I file? Pretty much blocks me. Also, I'm away tomorrow and friday.
Reporter | ||
Comment 12•11 years ago
|
||
Have you made any progress on this? I don't believe there are issues with the https connection. I would want to make sure you have the profile setup correctly as well is the proper OS installed that we have for running tests, the image is here: http://people.mozilla.org/~jmaher/panda8gb.img.bz2
Comment 13•11 years ago
|
||
Had been busy with B2G bugs. Getting back to it today.
Check the clock on the pandaboard -- if it's too far out of whack, SSL connections will fail.
Reporter | ||
Comment 15•11 years ago
|
||
on the pandaboard, I have a log of tests which pass but are marked as failing for android (presumably on the tegras). conformance/extensions/oes-standard-derivatives.html conformance/glsl/functions/glsl-function-ceil.html conformance/glsl/functions/glsl-function-clamp-float.html conformance/glsl/functions/glsl-function-clamp-gentype.html conformance/glsl/functions/glsl-function-cross.html conformance/glsl/functions/glsl-function-distance.html conformance/glsl/functions/glsl-function-dot.html conformance/glsl/functions/glsl-function-floor.html conformance/glsl/functions/glsl-function-fract.html conformance/glsl/functions/glsl-function.html conformance/glsl/functions/glsl-function-length.html conformance/glsl/functions/glsl-function-max-float.html conformance/glsl/functions/glsl-function-max-gentype.html conformance/glsl/functions/glsl-function-min-float.html conformance/glsl/functions/glsl-function-min-gentype.html conformance/glsl/functions/glsl-function-mix-float.html conformance/glsl/functions/glsl-function-mix-gentype.html conformance/glsl/functions/glsl-function-mod-float.html conformance/glsl/functions/glsl-function-mod-gentype.html conformance/glsl/functions/glsl-function-normalize.html conformance/glsl/functions/glsl-function-reflect.html conformance/glsl/functions/glsl-function-smoothstep-float.html conformance/glsl/functions/glsl-function-smoothstep-gentype.html conformance/glsl/misc/shared.html conformance/misc/null-object-behaviour.html conformance/renderbuffers/framebuffer-object-attachment.html With those tests removed from the manifest file, this is what remains as failures: 2287 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/extensions/oes-texture-float.html] Test failed - gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054. 2289 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/extensions/oes-texture-float.html] (WebGL test error) 1 failure(s) and 0 timeout(s) 3135 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/glsl/functions/glsl-function-smoothstep-float.html] Test failed - images are different 3138 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/glsl/functions/glsl-function-smoothstep-float.html] Test failed - images are different 3141 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/glsl/functions/glsl-function-smoothstep-float.html] Test failed - images are different 3144 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/glsl/functions/glsl-function-smoothstep-float.html] Test failed - images are different 3145 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/glsl/functions/glsl-function-smoothstep-float.html] (WebGL test error) 4 failure(s) and 0 timeout(s) 3758 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/limits/gl-max-texture-dimensions.html] Test failed - Should be 0, 255, 128, 255 3759 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/limits/gl-max-texture-dimensions.html] Test failed - Should be 0, 255, 128, 255 3761 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/limits/gl-max-texture-dimensions.html] (WebGL test error) 2 failure(s) and 0 timeout(s) 3763 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/limits/gl-min-textures.html] Test failed - getError expected: NO_ERROR. Was INVALID_VALUE : Should be no errors from setup. 3764 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/limits/gl-min-textures.html] Test failed - Should render using all texture units 3765 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/webgl/test_webgl_conformance_test_suite.html | [conformance/limits/gl-min-textures.html] (WebGL test error) 2 failure(s) and 0 timeout(s) jmaher@jmaher-MacBookPro:~/mozilla/src/objdir-droid/dist/test-package-stage/mochitest$ There is no OOM, just some failures to figure out.
Comment 16•11 years ago
|
||
Bug 810943 adds the ability to skip WebGL test pages on android just by listing them in a file. Once this lands you'll be able to disable WebGL pages on android super easily.
Reporter | ||
Comment 17•11 years ago
|
||
the problem is I have two different versions of android and two different hardware platforms. How could I differentiate between the two? Also I would wonder if we should attempt to fix or investigate the remaining 4 webgl tests that report failure(s)?
Comment 18•11 years ago
|
||
(In reply to Joel Maher (:jmaher) from comment #17) > the problem is I have two different versions of android and two different > hardware platforms. How could I differentiate between the two? Can you differentiate them in the same way that we differentiate between windows, android, etc in that mochitest? Really as long as there is any way that privileged JS code can differentiate these platforms/devices, you can use that in that mochitest. You could then have separate variants of skipped_tests_android.txt for each -- see the patch in bgu 810943. > Also I > would wonder if we should attempt to fix or investigate the remaining 4 > webgl tests that report failure(s)? To make progress on this, it's very important that we keep separate things separate: - adding new test hardware - understanding WebGL test failures on each class of test hardware The way we've managed to keep these things separate so far was by having separate lists of known-to-fail webgl pages on each OS, e.g. failing_tests_android.txt. So, once we've figured how to differentiate these devices in the mochitest, we can have separate variants of failing_tests_android.txt for each of them. That will allow to turn on tests without being blocked on investigating the failures.
Reporter | ||
Comment 19•11 years ago
|
||
gbrown/kats/blassey: do you guys know how we could detect the panda board or the newer android os from inside of firefox? right now we have webgl tests that fail on tegras, but pass on the panda boards, and some tests which pass on the tegras and fail on the pandas. If we can differentiate between these test runs, we can successfully test the working webgl stuff on each respective platform.
Comment 20•11 years ago
|
||
Well, from inside of _firefox_ of course we can --- the information what we use for blacklisting (GfxInfo) on Android allows to identify devices. So in fact, you could certainly differentiate the devices from the mochitest, using nsIGfxInfo. I can make you the code for that, but i need to know how the about:support looks for each of these devices (the graphics section and the android version).
Reporter | ||
Comment 21•11 years ago
|
||
panda board: http://pastebin.mozilla.org/1941134 tegra board: http://pastebin.mozilla.org/1941133
Assignee | ||
Updated•11 years ago
|
Keywords: intermittent-failure
Assignee | ||
Updated•11 years ago
|
Whiteboard: [orange]
Updated•10 years ago
|
Whiteboard: [leave open]
Comment 22•7 years ago
|
||
Bug last touched in 2012, and reported against pandas to begin with which are now dead.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•