Closed Bug 1570881 Opened 5 years ago Closed 4 years ago

Perma (tier2) /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11

Categories

(Core :: JavaScript Engine, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla71

People

(Reporter: intermittent-bug-filer, Unassigned)

References

(Regression)

Details

(Keywords: intermittent-failure, regression)

Attachments

(2 files)

Filed by: nerli [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=259522143&repo=mozilla-central
Full log: https://queue.taskcluster.net/v1/task/RbfvTp5TSRWrFs7l6vrOZQ/runs/0/artifacts/public/logs/live_backing.log


[task 2019-08-02T05:12:55.098Z] 05:12:55 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "--blinterp-eager") [0.6 s]
[task 2019-08-02T05:12:55.106Z] 05:12:55 INFO - object name: f1
[task 2019-08-02T05:12:55.107Z] 05:12:55 INFO - [CodeCoverage] Setting handlers for process 878.
[task 2019-08-02T05:12:55.107Z] 05:12:55 INFO - /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11
[task 2019-08-02T05:12:55.108Z] 05:12:55 INFO - Stack:
[task 2019-08-02T05:12:55.108Z] 05:12:55 INFO - test@/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13
[task 2019-08-02T05:12:55.110Z] 05:12:55 INFO - @/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:18:5
[task 2019-08-02T05:12:55.111Z] 05:12:55 INFO - Exit code: 3
[task 2019-08-02T05:12:55.112Z] 05:12:55 INFO - FAIL - debug/Script-startColumn.js
[task 2019-08-02T05:12:55.114Z] 05:12:55 WARNING - TEST-UNEXPECTED-FAIL | tests/jit-test/jit-test/tests/debug/Script-startColumn.js | [CodeCoverage] Setting handlers for process 878. (code 3, args "") [0.5 s]
[task 2019-08-02T05:12:55.115Z] 05:12:55 INFO - INFO exit-status : 3
[task 2019-08-02T05:12:55.116Z] 05:12:55 INFO - INFO timed-out : False
[task 2019-08-02T05:12:55.117Z] 05:12:55 INFO - INFO stdout > object name: f1
[task 2019-08-02T05:12:55.119Z] 05:12:55 INFO - INFO stderr 2> [CodeCoverage] Setting handlers for process 878.
[task 2019-08-02T05:12:55.120Z] 05:12:55 INFO - INFO stderr 2> /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11
[task 2019-08-02T05:12:55.122Z] 05:12:55 INFO - INFO stderr 2> Stack:
[task 2019-08-02T05:12:55.123Z] 05:12:55 INFO - INFO stderr 2> test@/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13
[task 2019-08-02T05:12:55.124Z] 05:12:55 INFO - INFO stderr 2> @/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:18:5
[task 2019-08-02T05:12:55.488Z] 05:12:55 INFO - object name: f1
[task 2019-08-02T05:12:55.489Z] 05:12:55 INFO - [CodeCoverage] Setting handlers for process 884.
[task 2019-08-02T05:12:55.489Z] 05:12:55 INFO - /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11
[task 2019-08-02T05:12:55.489Z] 05:12:55 INFO - Stack:
[task 2019-08-02T05:12:55.489Z] 05:12:55 INFO - test@/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13
[task 2019-08-02T05:12:55.490Z] 05:12:55 INFO - @/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:18:5
[task 2019-08-02T05:12:55.490Z] 05:12:55 INFO - Exit code: 3
[task 2019-08-02T05:12:55.490Z] 05:12:55 INFO - FAIL - debug/Script-startColumn.js
[task 2019-08-02T05:12:55.491Z] 05:12:55 WARNING - TEST-UNEXPECTED-FAIL | tests/jit-test/jit-test/tests/debug/Script-startColumn.js | [CodeCoverage] Setting handlers for process 884. (code 3, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.7 s]
[task 2019-08-02T05:12:55.491Z] 05:12:55 INFO - INFO exit-status : 3
[task 2019-08-02T05:12:55.491Z] 05:12:55 INFO - INFO timed-out : False
[task 2019-08-02T05:12:55.491Z] 05:12:55 INFO - INFO stdout > object name: f1
[task 2019-08-02T05:12:55.492Z] 05:12:55 INFO - INFO stderr 2> [CodeCoverage] Setting handlers for process 884.

I'm taking a look, I'm sorry about this.
Locally (win64, revision 37229c, debug assertions) the test still seems to be passing.
Column 9 corresponds to the start of the function name rather than the opening parenthesis. Could something about my settings or how I'm running it affect parsing in that way? (It could also be a coincidence and the offset is from something else.)

Summary: Intermittent (tier2) /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11 → Perma (tier2) /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11

Status update: I downloaded the shell built from one of the failing jobs, and ran the test on my machine; it passes. I'm trying a try push of that single job now, based on changeset 4748c006ae7b, to see if that also fails.

It's very odd that only the coverage test fails. It suggests that the patch might be hitting some undefined behavior, which is bad.

This bug failed 60 times in the last 7 days. Occurs on Ccov platforms on debug build types.

Recent log:
https://treeherder.mozilla.org/logviewer.html#?job_id=262195656&repo=mozilla-central

I'm still not sure why this is happening, and I support backing out the startColumn patch.
I believe the property getter is working correctly, and is reading a bogus value that was written to the script. In the failing test, the script's value is copied from the LazyScript here and asserted equal to it here. If the LazyScript's position were wrong, other tests would fail, so it must be going wrong after the assertion. I'd like to add more assertions and see the output of the other tests, but I don't think it would narrow it down enough to matter.
Is it possible to access the binaries that are failing, or get an exact copy of the build environment? I haven't been able to reproduce the failure locally. The try server wiki article suggests you can download their build output, but all the files on the linked FTP site are from 2018.

Flags: needinfo?(mattheww)

Joel what are your thoughts, should we backout startColumn patch from Bug 901138?

Flags: needinfo?(jmaher)

MatthewW- it is possible to download the build/test/binaries. Keep in mind this is on linux (ubuntu 16.04), probably not a requirement to use our docker image.

As for running the test, you can look at a raw log [1] and see:
[task 2019-08-04T10:56:26.220Z] 10:56:26 INFO - Downloading and extracting to /builds/worker/workspace/build/tests these dirs * from https://queue.taskcluster.net/v1/task/H2BnddiMQ9GmGz8rqyHSRA/artifacts/public/build/target.common.tests.tar.gz

[task 2019-08-04T10:57:08.562Z] 10:57:08 INFO - Downloading and extracting to /builds/worker/workspace/build/tests/bin these dirs * from https://queue.taskcluster.net/v1/task/H2BnddiMQ9GmGz8rqyHSRA/artifacts/public/build/target.jsshell.zip

[task 2019-08-04T10:57:39.728Z] 10:57:39 INFO - Downloading https://queue.taskcluster.net/v1/task/H2BnddiMQ9GmGz8rqyHSRA/artifacts/public/build/target.tar.bz2 to /builds/worker/workspace/build/installer.tar.bz2

and then the command:
[task 2019-08-04T11:01:37.434Z] 11:01:37 INFO - Copy/paste: /builds/worker/workspace/build/venv/bin/python -u /builds/worker/workspace/build/tests/jit-test/jit-test/jit_test.py --total-chunks 6 --this-chunk 3 tests/bin/js --no-slow --no-progress --format=automation --jitflags=all --timeout=970

This can also be tweaked and tested on try.

As for backing out, I agree this is a good path forward while MatthewW reproduces/fixes this.

[1] https://taskcluster-artifacts.net/HpWWvcmESnW_8_nNZHxVdw/0/public/logs/live_backing.log

Flags: needinfo?(jmaher)
Whiteboard: [stockwell disable-recommended] → [stockwell needswork]

Thank you for pointing that out! I thought the artifact links in treeherder were all that were available.
I still can't recreate the bug, using the linked binaries and that command, in ubuntu 18.04 or the docker image. I don't know how it can be so consistent and so elusive. I need to read up on docker so I can run it properly.

I found it, and there was never any undefined behavior. One of the places setting startColumn was simply wrong and my tests never reached it normally.
FunctionBox and LazyScript consistently use their function's opening parenthesis for their position. All of my tests used lazily parsed functions and in non-ccov tests those positions were always used. However, BytecodeEmitter::emitFunction() instead uses the FunctionNode's position, which is usually the "function" keyword or the function's name.
Having the environment variable JS_CODE_COVERAGE_OUTPUT_DIR set causes the functions in the test to be parsed non-lazily, which leads to them calling emitFunction() and seeing its incorrect (?) output.

Whiteboard: [stockwell disable-recommended] → [stockwell needswork]
Whiteboard: [stockwell disable-recommended] → [stockwell needswork]

(In reply to mattheww from comment #15)

Having the environment variable JS_CODE_COVERAGE_OUTPUT_DIR set causes the functions in the test to be parsed non-lazily, which leads to them calling emitFunction() and seeing its incorrect (?) output.

Holy cow, that's a smoking gun that I never expected.

Hi mattheww , are there updates here?

There are 70 total failures in the last 7 days on linux64-ccov, windows10-64-ccov both debug

Recent failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=265245153&repo=mozilla-central&lineNumber=7485

[task 2019-09-05T23:22:11.229Z] 23:22:11 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "") [0.6 s]
[task 2019-09-05T23:22:11.573Z] 23:22:11 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --more-compartments") [0.7 s]
[task 2019-09-05T23:22:11.595Z] 23:22:11 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "--ion-eager --ion-offthread-compile=off --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads") [0.6 s]
[task 2019-09-05T23:22:11.772Z] 23:22:11 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "--baseline-eager") [0.6 s]
[task 2019-09-05T23:22:11.817Z] 23:22:11 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "--no-blinterp --no-baseline --no-ion --more-compartments") [0.6 s]
[task 2019-09-05T23:22:12.148Z] 23:22:12 INFO - TEST-PASS | tests/jit-test/jit-test/tests/debug/Script-sourceStart-04.js | Success (code 0, args "--blinterp-eager") [0.6 s]
[task 2019-09-05T23:22:12.164Z] 23:22:12 INFO - object name: f1
[task 2019-09-05T23:22:12.164Z] 23:22:12 INFO - [CodeCoverage] Setting handlers for process 867.
[task 2019-09-05T23:22:12.166Z] 23:22:12 INFO - /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11
[task 2019-09-05T23:22:12.167Z] 23:22:12 INFO - Stack:
[task 2019-09-05T23:22:12.167Z] 23:22:12 INFO - test@/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13
[task 2019-09-05T23:22:12.168Z] 23:22:12 INFO - @/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:18:5
[task 2019-09-05T23:22:12.169Z] 23:22:12 INFO - Exit code: 3
[task 2019-09-05T23:22:12.171Z] 23:22:12 INFO - FAIL - debug/Script-startColumn.js
[task 2019-09-05T23:22:12.171Z] 23:22:12 WARNING - TEST-UNEXPECTED-FAIL | tests/jit-test/jit-test/tests/debug/Script-startColumn.js | [CodeCoverage] Setting handlers for process 867. (code 3, args "") [0.6 s]
[task 2019-09-05T23:22:12.172Z] 23:22:12 INFO - INFO exit-status : 3
[task 2019-09-05T23:22:12.173Z] 23:22:12 INFO - INFO timed-out : False
[task 2019-09-05T23:22:12.174Z] 23:22:12 INFO - INFO stdout > object name: f1
[task 2019-09-05T23:22:12.175Z] 23:22:12 INFO - INFO stderr 2> [CodeCoverage] Setting handlers for process 867.
[task 2019-09-05T23:22:12.175Z] 23:22:12 INFO - INFO stderr 2> /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11
[task 2019-09-05T23:22:12.176Z] 23:22:12 INFO - INFO stderr 2> Stack:
[task 2019-09-05T23:22:12.177Z] 23:22:12 INFO - INFO stderr 2> test@/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13
[task 2019-09-05T23:22:12.178Z] 23:22:12 INFO - INFO stderr 2> @/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:18:5
[task 2019-09-05T23:22:12.489Z] 23:22:12 INFO - object name: f1
[task 2019-09-05T23:22:12.489Z] 23:22:12 INFO - [CodeCoverage] Setting handlers for process 877.
[task 2019-09-05T23:22:12.490Z] 23:22:12 INFO - /builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13 Error: Assertion failed: got 9, expected 11
[task 2019-09-05T23:22:12.492Z] 23:22:12 INFO - Stack:
[task 2019-09-05T23:22:12.494Z] 23:22:12 INFO - test@/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:11:13
[task 2019-09-05T23:22:12.496Z] 23:22:12 INFO - @/builds/worker/workspace/build/tests/jit-test/jit-test/tests/debug/Script-startColumn.js:18:5
[task 2019-09-05T23:22:12.497Z] 23:22:12 INFO - Exit code: 3
[task 2019-09-05T23:22:12.499Z] 23:22:12 INFO - FAIL - debug/Script-startColumn.js

Flags: needinfo?(mattheww)

I'm hammering out a fix right now. I hope to have it done by next week, but I'm okay with whatever has to be done to stop it failing.

Flags: needinfo?(wartmanm)

Thank you.
There are 267 total failures in the last 30 days, Geoff, can this be disabled?

Flags: needinfo?(gbrown)

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

Thank you.
There are 267 total failures in the last 30 days, Geoff, can this be disabled?

Yes. I think you can skip on ccov by adding this test to:

https://searchfox.org/mozilla-central/rev/8ecd15049c11eb753717a6631213ba5ecc90e123/js/src/jit-test/jit_test.py#259-279

Flags: needinfo?(gbrown)
Attachment #9091596 - Attachment description: Bug 1570881 - disable Script-startColumn.js for frequent failures r=gbrown → Bug 1570881 - disable Script-startColumn.js for frequent failures r=#intermittent-reviewers
Keywords: leave-open
Whiteboard: [stockwell disable-recommended] → [stockwell disabled]
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9f48d7135ec3
disable Script-startColumn.js for frequent failures r=gbrown
Pushed by jblandy@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7edc6f28197b
Update remaining BytecodeEmitter constructor to use FunctionBox line/column r=jimb
Status: NEW → RESOLVED
Closed: 4 years ago
Keywords: leave-open
Resolution: --- → FIXED
Whiteboard: [stockwell disabled]
Target Milestone: --- → mozilla71
Assignee: nobody → btara
Assignee: btara → nobody
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: