Closed Bug 1281969 Opened 3 years ago Closed 9 months ago

Intermittent TEST-UNEXPECTED-CRASH | /html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm | expected TIMEOUT

Categories

(Core :: DOM: Core & HTML, defect, P3)

defect

Tracking

()

RESOLVED INVALID
Tracking Status
firefox50 --- disabled
firefox51 --- disabled
firefox52 --- disabled

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: intermittent-failure)

Looks like an OOM crash. Not sure if there is anything sensible to do other than disable the test?
Flags: needinfo?(bzbarsky)
So... this test runs through all the entities in testing/web-platform/tests/common/entities.json and all the doctype/mimetype entries in the test itself.  For each combination it does a DOMParser parseFromString call to create a new Document and then examines it.

That's, as of today, 2231 entities and 10 doctype/mimetype entries, for a total of 22310 calls to parseFromString, in a loop, without ever coming back to the event loop.

I bet with snowwhite we do async deletion of all that stuff, so never get around to deleting it during the test.  Is that actually the case?  If so, can we fix that?

(Note that the test is annotated as timing out in general and crashing on debug win32; turns out we can't parse 23000 documents in the normal test timeout either.  We should consider asking for a longer timeout for this test or splitting it up or something).
Flags: needinfo?(bzbarsky) → needinfo?(continuation)
Keywords: leave-open
Pushed by james@hoppipolla.co.uk:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f478cabf6ecf
Disable test that is intermittent or perma-timeout as it tries to parse 22000 documents, a=testonly
This test also times out locally for me on my OSX developer machine.

I'm not sure what is going on in this test, but it is creating documents at very rapid rate. We are running the CC and destroying some of them (though maybe that's a worker CC?), but they are being created much faster. We must be returning to the event loop sometimes. We do call |nsNodeUtils::LastRelease(this);| when the refcount of the document drops to zero, so that should help keep things from building up too much, but we aren't calling it very much.

It does seem like insufficient GC/CC is the problem. If I make every 20 calls to DOMParser::ParseFromString() do a GC+CC, then the documents are rapidly destroyed as you'd expect.
Flags: needinfo?(continuation)
Maybe rewriting the test so it does setTimeout 0 regularly would help? The CC is not set up to deal with the creation and destruction of objects this rapidly, so that may not be enough. In a Mochitest, I'd just recommend you force a GC/CC periodically, but that won't work for web platform tests.
Component: web-platform-tests → DOM
Product: Testing → Core
Version: Version 3 → Trunk
Priority: -- → P3
The leave-open keyword is there and there is no activity for 6 months.
:hsinyi, maybe it's time to close this bug?
Flags: needinfo?(htsai)

The original test xhtml-mathml-dtd-entity-support.htm has been split into smaller pieces in bug 1357844. So I'm going to close this as invalid.

Status: NEW → RESOLVED
Closed: 9 months ago
Flags: needinfo?(htsai)
Resolution: --- → INVALID
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.