Closed Bug 1643181 Opened 4 years ago Closed 2 years ago

Intermittent TEST-UNEXPECTED-TIMEOUT | /FileAPI/idlharness.worker.html | expected OK

Categories

(Core :: DOM: File, defect, P3)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1785368

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: intermittent-failure)

Filed by: ccoroiu [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=304952324&repo=mozilla-central
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/ELR2DVq-Qua93SKtYHa_jQ/runs/0/artifacts/public/logs/live_backing.log


[task 2020-06-03T21:15:16.950Z] 21:15:16 INFO - TEST-START | /FileAPI/url/url-format.any.worker.html
[task 2020-06-03T21:15:16.959Z] 21:15:16 INFO - Closing window 26
[task 2020-06-03T21:15:17.847Z] 21:15:17 INFO - TEST-UNEXPECTED-TIMEOUT | /FileAPI/idlharness.worker.html | expected OK
[task 2020-06-03T21:15:17.847Z] 21:15:17 INFO - TEST-INFO took 10400ms
[task 2020-06-03T21:15:17.866Z] 21:15:17 INFO - PID 2565 | 1591218917860 Marionette INFO Stopped listening on port 54780
[task 2020-06-03T21:15:18.980Z] 21:15:18 INFO - ......
[task 2020-06-03T21:15:18.980Z] 21:15:18 INFO - TEST-OK | /FileAPI/url/url-format.any.worker.html | took 2027ms

I see here:

INFO - TEST-START | /FileAPI/idlharness.worker.html
...
INFO - PID 2565 | JavaScript error: http://web-platform.test:8000/resources/testharness.js, line 2798: InternalError: too much recursion
...
INFO - TEST-UNEXPECTED-TIMEOUT | /FileAPI/idlharness.worker.html | expected OK

I see at testharness.js:

                  .replace(/(^|[^\ud800-\udbff])([\udc00-\udfff])/g,
                           function(_, previous, unpaired) {
                              if (/[\udc00-\udfff]/.test(previous)) {
                                  previous = code_unit_str(previous);
                              }

                              return previous + code_unit_str(unpaired);
                           });

and I see regexp can issue JSMSG_OVER_RECURSED.

I thus suspect bug 1634135 to be possibly related here ?

Flags: needinfo?(iireland)
Severity: normal → S3
Priority: P5 → P3

The regexp in question does not use much stack space at all while executing, since it rarely has to backtrack.

I just ran it through the regexp parser in rr and watched the stack usage, and it's only about 9K while parsing, which also doesn't seem problematic.

I don't see anything obviously wrong here. Is it possible that this testcase is already exhausting most of the stack space, and the regexp engine is just left holding the bag? The new regexp engine is slightly more diligent about checking to see if it's exceeded our stack limits than the old engine, which might explain why this is happening now and not before.

I don't see how it causes a timeout, though.

Flags: needinfo?(iireland)

Let's see how this evolves in the statistics for a while then.

As it happened again: Is there a way to see from Javascript where the stack allocation is before that regexp call? Such that we can print it out in the test?
Still I wonder, how this value should vary heavily for different test runs...

Flags: needinfo?(iireland)

Oh, I just noticed that the bot filed the same job as in the report again.

Flags: needinfo?(iireland)

Maybe one interesting additional information: the failing platform by now is only linux 32 Bit, it seems. Do we have particularly small stack restrictions there?

Bulk closing some old intermittents.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Status: REOPENED → RESOLVED
Closed: 3 years ago2 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.