Closed Bug 1193033 Opened 4 years ago Closed 4 years ago

[W(1)] TEST-UNEXPECTED-PASS | /2dcontext/path-objects/2d.path.arc.shape.3.html | arc() from 0 to -pi/2 does not draw anything in the wrong quadrant - expected FAIL

Categories

(Testing :: web-platform-tests, defect)

defect
Not set

Tracking

(firefox43 fixed)

RESOLVED FIXED
mozilla43
Tracking Status
firefox43 --- fixed

People

(Reporter: Callek, Assigned: jgraham)

References

Details

Attachments

(1 file)

On my win10 try run, in a debug build, we got:

http://mxr.mozilla.org/mozilla-central/source/testing/web-platform/meta/2dcontext/path-objects/2d.path.arc.shape.3.html.ini?force=1

which is from http://mxr.mozilla.org/mozilla-central/source/testing/web-platform/meta/2dcontext/path-objects/2d.path.arc.shape.3.html.ini?force=1:

 13:53:29 INFO - TEST-START | /2dcontext/path-objects/2d.path.arc.shape.3.html
13:53:29 INFO - PROCESS | 5560 | WARNING: content window passed to PrivateBrowsingUtils.isWindowPrivate. Use isContentWindowPrivate instead (but only for frame scripts).
13:53:29 INFO - PROCESS | 5560 | pbu_isWindowPrivate@resource://gre/modules/PrivateBrowsingUtils.jsm:25:14
13:53:29 INFO - PROCESS | 5560 | nsBrowserAccess.prototype.openURI@chrome://browser/content/browser.js:15540:21
13:53:29 INFO - PROCESS | 5560 | __marionetteFunc@dummy file:27:30
13:53:29 INFO - PROCESS | 5560 | @dummy file:36:3
13:53:29 INFO - PROCESS | 5560 | executeWithCallback@chrome://marionette/content/listener.js:771:5
13:53:29 INFO - PROCESS | 5560 | executeAsyncScript@chrome://marionette/content/listener.js:645:3
13:53:29 INFO - PROCESS | 5560 | ++DOCSHELL 0000007755F0F000 == 65 [pid = 5560] [id = 436]
13:53:29 INFO - PROCESS | 5560 | ++DOMWINDOW == 115 (000000772BA28000) [pid = 5560] [serial = 1308] [outer = 0000000000000000]
13:53:29 INFO - PROCESS | 5560 | ++DOMWINDOW == 116 (00000077509AC800) [pid = 5560] [serial = 1309] [outer = 000000772BA28000]
13:53:29 INFO - PROCESS | 5560 | 1439240009956 Marionette INFO loaded listener.js
13:53:30 INFO - PROCESS | 5560 | ++DOMWINDOW == 117 (0000007751B61800) [pid = 5560] [serial = 1310] [outer = 000000772BA28000]
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - PROCESS | 5560 | [5560] ###!!! ASSERTION: Given time appears to be in the future: 'aTime <= TimeStamp::Now()', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/image/FrameAnimator.cpp, line 81
13:53:30 INFO - TEST-UNEXPECTED-PASS | /2dcontext/path-objects/2d.path.arc.shape.3.html | arc() from 0 to -pi/2 does not draw anything in the wrong quadrant - expected FAIL
13:53:30 INFO - TEST-INFO | expected FAIL
13:53:30 INFO - TEST-OK | /2dcontext/path-objects/2d.path.arc.shape.3.html | took 839ms 

Not sure what the actual manifest says, or if this is "false positive, didn't really pass" or is a "well it passes on win10, yay".
Flags: needinfo?(james)
The manifest is http://mxr.mozilla.org/mozilla-central/source/testing/web-platform/meta/2dcontext/path-objects/2d.path.arc.shape.3.html.ini?force=1 which says it's expected to fail on Win8 x64, so your Win10 slave might not be identifying quite right (or the manifest processor might not be recognizing Win10, but given the one Win10 slave's history I'm inclined to blame it first).
If this is a slave issue it's one we need help identifying,  it's not going to be a slave issue that is unique among our win 10 hosts. Hence this bug.
It seems highly plausible that the results for these tests are different between windows 10 and windows 8; I can well imagine that the graphics backends might be different between the two environments leading to 2d context changes.

On the other hand philor is right; it's not clear why any of the Windows 8 metadata should be being applied to Windows 10 machines; it's usually very conservative with regard to version numbers for exactly this reason. If you point me to the logs for the try run it should be possible to tell what mozinfo is returning here, which will determine how wpt gets its metadata. Alternatively if you want just import mozinfo in a python shell on a Win 10 slave and post mozinfo.info
Flags: needinfo?(james)
(In reply to James Graham [:jgraham] from comment #3)
> On the other hand philor is right; it's not clear why any of the Windows 8
> metadata should be being applied to Windows 10 machines; it's usually very
> conservative with regard to version numbers for exactly this reason. If you
> point me to the logs for the try run it should be possible to tell what
> mozinfo is returning here, which will determine how wpt gets its metadata.

https://treeherder.mozilla.org/logviewer.html#?job_id=10282101&repo=try
"run_info": {"product": "firefox", "official": true, "os": "win", "bin_suffix": ".exe", "pgo": false, "service_pack": "", "toolkit": "windows", "webm": true, "healthreport": true, "buildapp": "browser", "crashreporter": true, "asan": false, "wave": true, "tests_enabled": true, "platform_guess": "win64", "has_sandbox": true, "appname": "firefox", "mozconfig": "c:\\builds\\moz2_slave\\try-w64-d-00000000000000000000\\build\\src\\.mozconfig", "topsrcdir": "c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src", "telemetry": false, "tsan": false, "os_version": "6.2", "version": "6.2.9200", "datareporting": true, "debug": true, "buildtype_guess": "debug", "bits": 64, "processor": "x86_64", "release_build": false}}

It loos like version is coming back the same as for Windows 8. This is going to be a problem because we need to distinguish them when the expected results are different, as here.
(In reply to James Graham [:jgraham] from comment #5)
> "run_info": {"product": "firefox", "official": true, "os": "win",
> "bin_suffix": ".exe", "pgo": false, "service_pack": "", "toolkit":
> "windows", "webm": true, "healthreport": true, "buildapp": "browser",
> "crashreporter": true, "asan": false, "wave": true, "tests_enabled": true,
> "platform_guess": "win64", "has_sandbox": true, "appname": "firefox",
> "mozconfig":
> "c:\\builds\\moz2_slave\\try-w64-d-00000000000000000000\\build\\src\\.
> mozconfig", "topsrcdir":
> "c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src",
> "telemetry": false, "tsan": false, "os_version": "6.2", "version":
> "6.2.9200", "datareporting": true, "debug": true, "buildtype_guess":
> "debug", "bits": 64, "processor": "x86_64", "release_build": false}}
> 
> It loos like version is coming back the same as for Windows 8. This is going
> to be a problem because we need to distinguish them when the expected
> results are different, as here.

So, python/mozinfo is wrong here :/

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451%28v=vs.85%29.aspx  explains why, specifically GetVersionEx is not reliable to tell us on win8.1+ (mimics win8)

Other python uses seem to rely on that same win API (by nature of os.sys.getwindowsversion() )

However with jgraham's help we did find http://stackoverflow.com/questions/19128219/detect-windows-8-1-in-python/22325767#22325767

Which when tested on a local w10 VM yielded:

>>> import ctypes
>>> class OSVERSIONINFOEXW(ctypes.Structure):
...     _fields_ = [('dwOSVersionInfoSize', ctypes.c_ulong),
...                 ('dwMajorVersion', ctypes.c_ulong),
...                 ('dwMinorVersion', ctypes.c_ulong),
...                 ('dwBuildNumber', ctypes.c_ulong),
...                 ('dwPlatformId', ctypes.c_ulong),
...                 ('szCSDVersion', ctypes.c_wchar*128),
...                 ('wServicePackMajor', ctypes.c_ushort),
...                 ('wServicePackMinor', ctypes.c_ushort),
...                 ('wSuiteMask', ctypes.c_ushort),
...                 ('wProductType', ctypes.c_byte),
...                 ('wReserved', ctypes.c_byte)]
...
>>> os_version = OSVERSIONINFOEXW()
>>> os_version
<__main__.OSVERSIONINFOEXW object at 0x02032E90>
>>> os_version.__dict__
{}
>>> os_version.dwOSVersionInfoSize = ctypes.sizeof(os_version)
>>> retcode = ctypes.windll.Ntdll.RtlGetVersion(ctypes.byref(os_version))
>>> retcode
0
>>> (os_version.dwOSVersionInfoSize, os_version.dwMajorVersion, os_version.dwMinorVersion, os_version.dwBuildNumber, os_version.dwPlatformId, os_version.szCSDVersion, os_version.wServicePackMajor, os_version.wServicePackMinor, os_version.wSuiteMask, os_version.wProductType, os_version.wReserved)
(284L, 10L, 0L, 10240L, 2L, u'', 0, 0, 256, 1, 0)


And that final struct value on our official build machine:

(284L, 10L, 0L, 10240L, 2L, u'', 0, 0, 256, 1, 0)

jgraham, what now?
Flags: needinfo?(james)
Use the RtlGetVersion function to get the real version number for Windows >= 8.1. https://treeherder.mozilla.org/#/jobs?repo=try&revision=751b150fc0ed has a try run with web-platform-tests which shows passes for legacy Windows version, a bunch of expected oranges for Windows 10 (because the Winodws 8 metadata no longer applies) and the right version number in the structured logs (search for "run_info").
Assignee: nobody → james
Flags: needinfo?(james)
Attachment #8646883 - Flags: review?(ted)
Comment on attachment 8646883 [details] [diff] [review]
0001-Teach-mozinfo-to-get-the-real-os-version-number-for-.patch

Review of attachment 8646883 [details] [diff] [review]:
-----------------------------------------------------------------

Oh, Microsoft. (I guess maybe "Oh, crappy Windows software developers!")
Attachment #8646883 - Flags: review?(ted) → review+
https://hg.mozilla.org/mozilla-central/rev/1989889145ce
https://hg.mozilla.org/mozilla-central/rev/c69d8db6828a
Status: NEW → RESOLVED
Closed: 4 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in before you can comment on or make changes to this bug.