Closed Bug 1623889 Opened 4 years ago Closed 4 years ago

Perma SM bustages TEST-UNEXPECTED-FAIL | wasm/jsapi/memory/<test-name.js> | (args: "") | shared memory is disabled [0.4 s] when Gecko 76 merges to Beta on 2020-04-06

Categories

(Core :: JavaScript: WebAssembly, defect, P2)

defect

Tracking

()

VERIFIED FIXED
mozilla76
Tracking Status
firefox-esr68 --- unaffected
firefox74 --- unaffected
firefox75 --- unaffected
firefox76 + verified

People

(Reporter: CosminS, Assigned: lth)

References

Details

(Keywords: regression)

Attachments

(1 file)

Central as beta-sim: https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&resultStatus=testfailed%2Cbusted%2Cexception&revision=28a789827199f3cbac5fbe9e3a21829be5087fee&searchStr=sm&selectedJob=294036687

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=294036687&repo=try
https://treeherder.mozilla.org/logviewer.html#?job_id=294036749&repo=try

[task 2020-03-20T12:41:28.049Z] TEST-PASS | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") [0.1 s]
[task 2020-03-20T12:41:28.049Z] TEST-UNEXPECTED-FAIL | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") | shared memory is disabled [0.1 s]
[task 2020-03-20T12:41:28.049Z] TEST-PASS | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") [0.1 s]
[task 2020-03-20T12:41:28.049Z] TEST-PASS | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") [0.1 s]
[task 2020-03-20T12:41:28.049Z] TEST-PASS | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") [0.1 s]
[task 2020-03-20T12:41:28.049Z] TEST-PASS | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") [0.1 s]
[task 2020-03-20T12:41:28.049Z] TEST-UNEXPECTED-FAIL | wasm/jsapi/memory/constructor.any.js | (args: "--dll /builds/worker/workspace/breakpad-tools/libbreakpadinjector.so --baseline-eager") [0.1 s]
[task 2020-03-20T12:41:28.049Z] ## wasm/jsapi/memory/constructor.any.js: rc = 0, run time = 0.104487
[task 2020-03-20T12:41:28.049Z]
[task 2020-03-20T12:41:28.049Z] Harness status: OK (Reported by harness: None)
[task 2020-03-20T12:41:28.049Z] Subtest "name": as expected: PASS
[task 2020-03-20T12:41:28.049Z] Subtest "length": as expected: PASS
[task 2020-03-20T12:41:28.049Z] Subtest "No arguments": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Calling": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Invalid descriptor argument": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Undefined initial value in descriptor": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Out-of-range initial value in descriptor: NaN": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Out-of-range maximum value in descriptor: NaN": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Out-of-range initial value in descriptor: Infinity": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Out-of-range maximum value in descriptor: Infinity": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Out-of-range initial value in descriptor: -Infinity": as expected: PASS
[task 2020-03-20T12:41:28.050Z] Subtest "Out-of-range maximum value in descriptor: -Infinity": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Out-of-range initial value in descriptor: -1": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Out-of-range maximum value in descriptor: -1": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Out-of-range initial value in descriptor: 4294967296": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Out-of-range maximum value in descriptor: 4294967296": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Out-of-range initial value in descriptor: 68719476736": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Out-of-range maximum value in descriptor: 68719476736": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Initial value exceeds maximum": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Shared memory without maximum": as expected: PASS
[task 2020-03-20T12:41:28.051Z] Subtest "Proxy descriptor": as expected: PASS
[task 2020-03-20T12:41:28.052Z] Subtest "Order of evaluation for descriptor": as expected: PASS
[task 2020-03-20T12:41:28.052Z] Subtest "Order of evaluation for descriptor (with shared)": expected PASS, found FAIL (with message: "shared memory is disabled")
[task 2020-03-20T12:41:28.052Z] Subtest "Zero initial": as expected: PASS
[task 2020-03-20T12:41:28.052Z] Subtest "Non-zero initial": as expected: PASS
[task 2020-03-20T12:41:28.052Z] Subtest "Stray argument": as expected: PASS
[task 2020-03-20T12:41:28.052Z] Subtest "Shared memory": as expected: FAIL

Flags: needinfo?(mforney)

These failures were present also when got filed Bug 1621933, https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=292812873&repo=try&lineNumber=52880. Lars, Tom, could you please take a look over these failures too? Thank you.
Tests that are failing are:

Component: Javascript: WebAssembly → JavaScript Engine
Flags: needinfo?(ttung)
Flags: needinfo?(mforney)
Flags: needinfo?(lhansen)
No longer regressed by: 1615713
See Also: → 1621933, 1566427
Component: JavaScript Engine → Javascript: WebAssembly

Yeah, these look like they were broken also and need additional guards. I'm less sure about how to do that for wpt so it'll be Monday before I get to this.

Flags: needinfo?(lhansen)

This is definitely not introduced by bug 1621933, but this probably has the same/similar cause with bug 1621933.

Lars is familiar with the code around here way more than me so I am going to remove the needinfo :)

Flags: needinfo?(ttung)
Priority: -- → P2

This works, in principle:

diff --git a/testing/web-platform/meta/wasm/jsapi/memory/constructor.any.js.ini b/testing/web-platform/meta/wasm/jsapi/memory/constructor.any.js.ini
--- a/testing/web-platform/meta/wasm/jsapi/memory/constructor.any.js.ini
+++ b/testing/web-platform/meta/wasm/jsapi/memory/constructor.any.js.ini
@@ -17,6 +17,10 @@
 
 
 [constructor.any.js]
+  [Order of evaluation for descriptor (with shared)]
+    expected:
+      if not nightly_build: FAIL
+
   [Shared memory]
     expected: FAIL

I'm not sure if we want this though. It just embeds more deeply the hack in js/moz.configure that makes enable-wasm-threads dependent on is_nightly, and that was just a hack to get around some rules in the configure system that I don't understand. The right fix is probably to make enable-wasm-threads default to true for all shell builds.

I'll get to this later in the week.

Assignee: nobody → lhansen
Status: NEW → ASSIGNED

Bugbug thinks this bug is a regression, but please revert this change in case of error.

Keywords: regression

(In reply to Andreea Pavel [:apavel] from comment #8)

No longer occurs in beta sim: https://treeherder.mozilla.org/#/jobs?repo=try&resultStatus=testfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel%2Crunnable&revision=65b4603f3ae102f328dfa4fde5a3117fae254ef5&searchStr=spider%2Cmonkey

That is weird, because as far as I can tell the problem is still present. There appear to have been no updates to wpt tests or metafiles to mask this either, though I'm not sure that I'm competent to tell.

Can they be hidden by bug 1624592 ?

(In reply to Andreea Pavel [:apavel] from comment #10)

Can they be hidden by bug 1624592 ?

That would be exceptionally surprising.

The only reason I can think of other than wpt fixing itself is for somebody to have added --enable-wasm-threads to build options for non-nightly, in order to mask this very problem. I don't know where to look for that, though.

Aryx is this something you can look at?

Flags: needinfo?(aryx.bugmail)

So I was partially right about them being hidden :-/

The previous fix here was a hack that would disable SAB in the JS
shell on non-nightly, but this breaks various tests that no longer
guard properly for SAB. Instead of embedding the hack more deeply by
changing those tests, we fix it the way it should have been from the
outset: SAB is enabled in the shell on all channels but can be
disabled by a switch.

try is green: https://treeherder.mozilla.org/#/jobs?repo=try&revision=71babd66121a0d660e98b967230db5b2bb5f79d2. this is not a beta sim run, but what i care about mostly here is that the linters for moz.configure don't get upset, and they don't.

The logic in the patch is actually confusing to me, because it seems to compute the opposite sense of what it should, but it appears to do precisely what it should do and it passes linting, and it follows similar patterns for --disable-whatever elsewhere.

Flags: needinfo?(lhansen)
Pushed by lhansen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/375c96f5ab7a
Allow SAB to be disabled in js shell. r=bbouvier
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: