Failing WPT test verify pass (frequent timeouts)
Categories
(Core :: DOM: Streams, defect, P1)
Tracking
()
People
(Reporter: mgaudet, Assigned: mgaudet)
References
Details
Attachments
(4 files)
Running ./mach wpt --headless testing/web-platform/tests/streams/ --verify we fail for having unstable results. (This is after I updated the test expectations to match what DOM streams ought to have).
It appears we've got some tests that are timing out 3/10 times.
Attached is the log.
I'm attempting to get more info now.
| Assignee | ||
Comment 1•4 years ago
|
||
A pernosco trace of one of the tests timing out (under rr a 3/10 timeout became 5/10)
| Assignee | ||
Comment 2•4 years ago
|
||
Thanks to a suggestion from Olli, I managed to narrow down to at leastt one source of timeout.
Essentially, if we put
test(() => {
const sizeFunction = (new ByteLengthQueuingStrategy({ highWaterMark: 5 })).size;
}, 'ByteLengthQueuingStrategy: size behaves as expected with strange arguments');
as the only test in testing/web-platform/tests/streams/queuing-strategies.any.js, and run ./mach wpt --headless testing/web-platform/tests/streams/queuing-strategies.any.js --verify it will fail with a timeout. Weirdly, the largely identically implemented CountQueuingStrategy doesn't share the same problem.
Comment 3•4 years ago
|
||
You forgot to trace mByteLengthQueuingStrategySizeFunction in nsIGlobalObject.
Comment 4•4 years ago
|
||
| Assignee | ||
Comment 5•4 years ago
|
||
Thanks to evilpie for spotting the omission!
Updated•4 years ago
|
| Assignee | ||
Comment 7•4 years ago
|
||
The landed path is necessary, but not sufficient to get us to a clean --verify run. I'm still seeing timeouts. Setting leave-open.
| Assignee | ||
Comment 8•4 years ago
•
|
||
Kagami points out this reduced version of idlharness.any fails when run in worker context. Same issue as before, 3/7 timeouts.
// META: global=window,worker
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
// META: timeout=long
idl_test(
['streams'],
['dom'], // for AbortSignal
async idl_array => {
idl_array.add_objects({
ByteLengthQueuingStrategy: ["new ByteLengthQueuingStrategy({ highWaterMark: 5 })"],
});
}
);
Comment 9•4 years ago
|
||
I'm not sure why, but somehow importScripts and ByteLengthQueuingStrategy hate each other.
Comment 10•4 years ago
|
||
Unlink support also needs to be added: https://hg.mozilla.org/integration/autoland/file/ea481dd8166a2d70e8a0fcd40a3ff308b0341243/dom/base/nsIGlobalObject.cpp#l138. But if this also affects CountQueueingStrategy then I am not sure what is going wrong. Maybe there is some other place we don't traverse/unlink properly? Or the worker code doesn't call it?
Comment 11•4 years ago
|
||
When I run the test from comment 8 I just get crashes with MOZ_CRASH(Found dangling CheckedUnsafePtr). This seems to have been introduced yesterday by bug 1744025.
Comment 12•4 years ago
|
||
Comment 13•4 years ago
•
|
||
Let's track it in bug 1752075, as it seems to have different cause (and the error is different anyway).
Comment 14•4 years ago
|
||
Comment 15•4 years ago
|
||
| bugherder | ||
| Assignee | ||
Comment 16•4 years ago
|
||
Ok, I don't think we'll be landing other patches under this bug,so resolving as fixed
Updated•4 years ago
|
Description
•