Closed Bug 1465599 Opened 6 years ago Closed 6 years ago

Intermittent dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].offsetX = 5

Categories

(Core :: DOM: Events, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla63
Tracking Status
firefox63 --- fixed

People

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

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Filed by: aiakab [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=180955138&repo=autoland

https://queue.taskcluster.net/v1/task/eBIffdg1SAqRsJ9M-2VTAQ/runs/0/artifacts/public/logs/live_backing.log

17:54:50     INFO -  330 INFO TEST-START | dom/events/test/pointerevents/test_getCoalescedEvents.html
17:54:51     INFO -  TEST-INFO | started process screenshot
17:54:51     INFO -  TEST-INFO | screenshot: exit 0
17:54:51     INFO -  Buffered messages logged at 17:54:50
17:54:51     INFO -  331 INFO must wait for load
17:54:51     INFO -  Buffered messages logged at 17:54:51
17:54:51     INFO -  332 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | Coalesced events should >= 1, got 4
17:54:51     INFO -  333 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].pointerId
17:54:51     INFO -  334 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].pointerType
17:54:51     INFO -  335 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].isPrimary
17:54:51     INFO -  336 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].target
17:54:51     INFO -  337 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].currentTarget
17:54:51     INFO -  338 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].eventPhase
17:54:51     INFO -  339 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].cancelable
17:54:51     INFO -  340 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].bubbles
17:54:51     INFO -  341 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].offsetX = 5
17:54:51     INFO -  342 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetX
17:54:51     INFO -  343 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].offsetY = 5
17:54:51     INFO -  344 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetY
17:54:51     INFO -  345 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].clientX
17:54:51     INFO -  346 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[0].clientY
17:54:51     INFO -  347 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].pointerId
17:54:51     INFO -  348 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].pointerType
17:54:51     INFO -  349 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].isPrimary
17:54:51     INFO -  350 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].target
17:54:51     INFO -  351 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].currentTarget
17:54:51     INFO -  352 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].eventPhase
17:54:51     INFO -  353 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].cancelable
17:54:51     INFO -  354 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].bubbles
17:54:51     INFO -  Buffered messages finished
17:54:51    ERROR -  355 INFO TEST-UNEXPECTED-FAIL | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].offsetX = 5
17:54:51     INFO -      runTests/</<@dom/events/test/pointerevents/test_getCoalescedEvents.html:50:9
17:54:51     INFO -      EventListener.handleEvent*runTests/<@dom/events/test/pointerevents/test_getCoalescedEvents.html:29:5
17:54:51     INFO -  356 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetX
17:54:51     INFO -  Not taking screenshot here: see the one that was previously logged
17:54:51    ERROR -  357 INFO TEST-UNEXPECTED-FAIL | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].offsetY = 5
17:54:51     INFO -      runTests/</<@dom/events/test/pointerevents/test_getCoalescedEvents.html:54:9
17:54:51     INFO -      EventListener.handleEvent*runTests/<@dom/events/test/pointerevents/test_getCoalescedEvents.html:29:5
17:54:51     INFO -  358 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetY
17:54:51     INFO -  359 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].clientX
17:54:51     INFO -  360 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[1].clientY
17:54:51     INFO -  361 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].pointerId
17:54:51     INFO -  362 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].pointerType
17:54:51     INFO -  363 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].isPrimary
17:54:51     INFO -  364 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].target
17:54:51     INFO -  365 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].currentTarget
17:54:51     INFO -  366 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].eventPhase
17:54:51     INFO -  367 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].cancelable
17:54:51     INFO -  368 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].bubbles
17:54:51     INFO -  369 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].offsetX = 10
17:54:51     INFO -  370 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetX
17:54:51     INFO -  371 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].offsetY = 10
17:54:51     INFO -  372 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetY
17:54:51     INFO -  373 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].clientX
17:54:51     INFO -  374 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[2].clientY
17:54:51     INFO -  375 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].pointerId
17:54:51     INFO -  376 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].pointerType
17:54:51     INFO -  377 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].isPrimary
17:54:51     INFO -  378 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].target
17:54:51     INFO -  379 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].currentTarget
17:54:51     INFO -  380 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].eventPhase
17:54:51     INFO -  381 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].cancelable
17:54:51     INFO -  382 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].bubbles
17:54:51     INFO -  383 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].offsetX = 20
17:54:51     INFO -  384 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetX
17:54:51     INFO -  385 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].offsetY = 20
17:54:51     INFO -  386 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | expected offsetY
17:54:51     INFO -  387 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].clientX
17:54:51     INFO -  388 INFO TEST-PASS | dom/events/test/pointerevents/test_getCoalescedEvents.html | getCoalescedEvents()[3].clientY
17:54:51     INFO -  GECKO(5680) | MEMORY STAT | vsize 2098663MB | vsizeMaxContiguous 130118110MB | residentFast 99MB | heapAllocated 23MB
17:54:51     INFO -  389 INFO TEST-OK | dom/events/test/pointerevents/test_getCoalescedEvents.html | took 316ms
This test looks like it's expecting each coalesced event to have a strictly increasing offsetX/offsetY from the previous coalesced event, but in some cases we get a repeated coalesced event. i.e. instead of getting events with coordinates (5,5), (10,10), (15,15), (20,20), we get events with coordinates (5,5), (5,5), (10,10), (15,15), (20,20). I'm not sure why this only happens on windows10-64-qr but it could be timing related, in that the OS will send us this extra event if things are taking too long or some such.

I think the right fix here is to update the test to allow non-decreasing offsetX/offsetY instead of strictly increasing. There are already checks to assert that the values themselves one of the allowed values (5, 10, 15, or 20).
Assignee: nobody → kats
This also removes unused local variables.
Attachment #8997029 - Flags: review?(bugs)
Comment on attachment 8997029 [details] [diff] [review]
Allow multiple coalesced events with the same offsetX/offsetY

rs+


Thanks for looking into this.
Attachment #8997029 - Flags: review?(bugs) → review+
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/944ffbc3f9a0
Allow for the OS synthesizing some extra pointermove events with the same coordinates. rs=smaug
https://hg.mozilla.org/mozilla-central/rev/944ffbc3f9a0
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
We are trying to build a tool to automatically classify intermittent failures, which would provide a starting point for fixing the bug, reducing the manual work for the developers.
We are collecting some feedback on the results, to see if they’re good enough and where we need to improve.
    
For this bug, the tool says that the intermittent failure is most likely a:
Concurrency Issue: This includes tests in which failures occur due to thread management issues (different threads or their outcomes depending on an implicit ordering), race conditions and/or deadlocks, and issues related to an asynchronous waits (e.g. a process trying to access an external resource or continuing before the external resource is available).


Once you’re done investigating and/or fixing the bug, could you tell me:
- Did the tool correctly recognize the type of intermittent failure?
- Did the information from the tool help your analysis, the bug fixing process, or anything in the process? (please also let us know how the tool was useful and/or what would improve the tool's usefulness for you)
Flags: needinfo?(kats)
(In reply to meck93 from comment #18)
> Once you’re done investigating and/or fixing the bug, could you tell me:
> - Did the tool correctly recognize the type of intermittent failure?

No

> - Did the information from the tool help your analysis, the bug fixing
> process, or anything in the process? (please also let us know how the tool
> was useful and/or what would improve the tool's usefulness for you)

No, because I fixed the bug before you told me what the tool thought. And even if the tool were correct, the information is nowhere near specific enough to actually help fix the bug.
Flags: needinfo?(kats)
Thanks for your feedback. I'm sorry the comment message has been messed up. We're working with a set of fixed and not-fixed bugs to evaluate the tool. The message should have be different just asking if the classification was correct and how you would classify the bug. 

(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #19)
> (In reply to meck93 from comment #18)
> > Once you’re done investigating and/or fixing the bug, could you tell me:
> > - Did the tool correctly recognize the type of intermittent failure?
> 
> No

How would you classify this type of intermittent-failure?
Is it more like an assertion failure in which a reference value doesn't match the value generated by the test? 

> 
> > - Did the information from the tool help your analysis, the bug fixing
> > process, or anything in the process? (please also let us know how the tool
> > was useful and/or what would improve the tool's usefulness for you)
> 
> And even if the tool were correct, the information is nowhere near specific
> enough to actually help fix the bug.

The feedback regarding the specificity is useful, thanks! 
Anything else apart from the prediction needing to be more specific?
Flags: needinfo?(kats)
(In reply to meck93 from comment #20)
> How would you classify this type of intermittent-failure?
> Is it more like an assertion failure in which a reference value doesn't
> match the value generated by the test? 

It's a case of the test not being general enough to handle different valid scenarios that result from the test conditions.
Flags: needinfo?(kats)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: