Closed Bug 1319160 Opened 7 years ago Closed 7 years ago

Intermittent test_webgl_disjoint_timer_query.html | Time elapsed query is available immediately after flush and event loop tick.

Categories

(Core :: Graphics: CanvasWebGL, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox52 --- wontfix
firefox-esr52 --- fixed
firefox53 --- wontfix
firefox54 --- wontfix
firefox55 --- wontfix
firefox56 --- fixed
firefox57 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: cleu)

References

Details

(Keywords: intermittent-failure, Whiteboard: [gfx-noted][stockwell fixed])

Attachments

(1 file, 1 obsolete file)

Whiteboard: [gfx-noted]
Priority: -- → P5
This is failing frequently on 52 since the uplift to Beta.
Flags: needinfo?(vliu)
Jeff, can you help find an owner for this otherwise?
Flags: needinfo?(jgilbert)
Over to pchang.
Flags: needinfo?(vliu)
Flags: needinfo?(jgilbert)
Flags: needinfo?(howareyou322)
There are some issues regarding the difference between beta and central and we had found some changes were not in beta. Michael will submit a try to see any improvement.
Flags: needinfo?(howareyou322)
this has a pretty consisten failure rate all on windows 8 non debug.  a mix of e10s and non e10s failures as well.


here is a recent log:
https://treeherder.mozilla.org/logviewer.html#?repo=autoland&job_id=109812236&lineNumber=6848

and the related data:
11:30:21     INFO - TEST-START | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html
11:30:21     INFO - GECKO(72) | JavaScript warning: http://mochi.test:8888/tests/dom/canvas/test/webgl-mochitest/webgl-util.js, line 44: Error: WebGL warning: Exceeded 16 live WebGL contexts for this principal, losing the least recently used one.
11:30:21     INFO - GECKO(72) | WebGL(0000008BBE7CB800)::ForceLoseContext
11:30:21     INFO - TEST-INFO | started process screenshot
11:30:21     INFO - TEST-INFO | screenshot: exit 0
11:30:21     INFO - Buffered messages logged at 11:30:21
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | No query is active initially. 
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | Query creation works. 
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | isQuery fails after creation but before bind. 
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | isQuery fails after bind. 
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | Query is active after beginQueryEXT. 
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | Query is inactive after endQueryEXT. 
11:30:21     INFO - Buffered messages finished
11:30:21     INFO - TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | Time elapsed query is available immediately after flush and event loop tick. 
11:30:21     INFO -     doTest/<@dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html:47:5
11:30:21     INFO -     setTimeout handler*SimpleTest_setTimeoutShim@SimpleTest/SimpleTest.js:676:12
11:30:21     INFO -     defer@dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html:17:5
11:30:21     INFO -     doTest@dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html:46:3
11:30:21     INFO -     @dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html:78:1
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | Query is no longer valid after deletion. 
11:30:21     INFO - TEST-PASS | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | Time elapsed must be at least 30 bits to hold at least 1 second of timing. 
11:30:21     INFO - GECKO(72) | MEMORY STAT | vsize 1584MB | vsizeMaxContiguous 6268323MB | residentFast 158MB | heapAllocated 40MB
11:30:21     INFO - TEST-OK | dom/canvas/test/webgl-mochitest/test_webgl_disjoint_timer_query.html | took 73ms



not sure if that helps- if this picks up in frequency I will ask for someone to look into this, until then we can just keep an eye on the failure rate.
this has had a fairly high failure rate for the last 5 weeks, heavily on windows8.  

:jgilbert, I have seen your name a few times in the hg log for the failing file, could you take a look at this failure when you get a chance and see if there is something to do?  Maybe you would know the right person to look at it?
Flags: needinfo?(jgilbert)
Whiteboard: [gfx-noted] → [gfx-noted][stockwell needswork]
Over to :pchang since I'm on PTO.
Flags: needinfo?(jgilbert) → needinfo?(howareyou322)
Michael will check this after bug 1371190 is landed.
Flags: needinfo?(howareyou322) → needinfo?(cleu)
It seems that updating ANGLE cannot fix this problem.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=946c67af197a&selectedJob=126689032
Flags: needinfo?(cleu)
This intermittent failure is reproducible locally, it happens only when we rapidly trigger it repetitively.

I observed that if *avalible is false in this function, the getQueryObjectEXT will fail.
https://dxr.mozilla.org/mozilla-central/source/gfx/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp?q=Query11.cpp&redirect_type=direct#130

I think the problem is we trigger tests so fast that ANGLE has no time to properly flush its query queue, so it complains it is not available and make our test fail.

It explains that all the orange record happens under opt and pgo builds because debug build is not fast enough to trigger this error.

We should run this test while making sure it is ready to process the query.
This patch can fix this problem.

What it does is to make ANGLE flush all queries under force mode.

Under force mode, ANGLE will keep querying D3D api until it is ready.

So we will always get correct result.

However, it is not ideal to modify ANGLE and this is an edge case only happen in our mochitest.

I am not sure whether this is a correct fix or not.

I also thought about modifying the test to make it retry, but it would be contradicted to what this test originally attempt to verify -- "Time elapsed query is available immediately after flush and event loop tick."

Hi Jeff, do you have any suggestion about it?
Attachment #8903075 - Flags: feedback?(jgilbert)
Attachment #8903075 - Flags: feedback?(jgilbert)
mmm...

According to the spec, it seems that getQueryObjectEXT will be available immediately is not guaranteed.
https://www.khronos.org/registry/webgl/extensions/EXT_disjoint_timer_query/

It indicates that the test may be incorrect, we should not assert the query to be available immediately.

So maybe we should modify the test to make it wait until the query is available.

Hi Jeff, do you have any concern about it?
Flags: needinfo?(jgilbert)
https://searchfox.org/mozilla-central/source/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-disjoint-timer-query.html

Oh dear, we already have same test present in our conformance suite.

So this mochitest is just redundant, I think it is just safe to remove it.
Flags: needinfo?(jgilbert)
Assignee: nobody → cleu
Attachment #8903075 - Attachment is obsolete: true
Comment on attachment 8903439 [details]
Bug 1319160 - Remove redundant webgl disjoint timer extension mochitest

https://reviewboard.mozilla.org/r/175284/#review180648
Attachment #8903439 - Flags: review?(jgilbert) → review+
Keywords: checkin-needed
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/c4968101edd0
Remove redundant webgl disjoint timer extension mochitest r=jgilbert
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/c4968101edd0
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Whiteboard: [gfx-noted][stockwell needswork] → [gfx-noted][stockwell fixed][checkin-needed-beta][checkin-needed-esr52]
https://hg.mozilla.org/releases/mozilla-beta/rev/ce3f57d9051d
Whiteboard: [gfx-noted][stockwell fixed][checkin-needed-beta][checkin-needed-esr52] → [gfx-noted][stockwell fixed][checkin-needed-esr52]
https://hg.mozilla.org/releases/mozilla-esr52/rev/f026f9e2c933
Whiteboard: [gfx-noted][stockwell fixed][checkin-needed-esr52] → [gfx-noted][stockwell fixed]
You need to log in before you can comment on or make changes to this bug.