Crash in [@ nsHtml5TreeBuilder::loadState]
Categories
(Core :: DOM: HTML Parser, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr91 | --- | unaffected |
| firefox95 | --- | unaffected |
| firefox96 | --- | unaffected |
| firefox97 | + | fixed |
People
(Reporter: calixte, Assigned: hsivonen)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file)
Maybe Fission related. (DOMFissionEnabled=1)
Crash report: https://crash-stats.mozilla.org/report/index/29446e3c-24d0-415d-a4b3-214790211209
Reason: EXCEPTION_ACCESS_VIOLATION_READ
Top 10 frames of crashing thread:
0 xul.dll nsHtml5TreeBuilder::loadState parser/html/nsHtml5TreeBuilder.cpp:4625
1 xul.dll nsHtml5Parser::InitializeDocWriteParserState parser/html/nsHtml5Parser.cpp:688
2 xul.dll nsHtml5TreeOperation::Perform parser/html/nsHtml5TreeOperation.cpp:1209
3 xul.dll nsHtml5TreeOpExecutor::RunFlushLoop parser/html/nsHtml5TreeOpExecutor.cpp:658
4 xul.dll nsHtml5EncodingCommitter::Run parser/html/nsHtml5StreamParser.cpp:205
5 xul.dll mozilla::SchedulerGroup::Runnable::Run xpcom/threads/SchedulerGroup.cpp:144
6 xul.dll mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal xpcom/threads/TaskController.cpp:771
7 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1183
8 xul.dll mozilla::ipc::MessagePump::Run ipc/glue/MessagePump.cpp:85
9 xul.dll MessageLoop::RunHandler ipc/chromium/src/base/message_loop.cc:324
There are 2 crashes (from 2 installations) in nightly 97 with buildid 20211208214306. In analyzing the backtrace, the regression may have been introduced by patch [1] to fix bug 1701828.
[1] https://hg.mozilla.org/mozilla-central/rev?node=9a8abd87cc79
| Assignee | ||
Comment 1•4 years ago
|
||
This is unlikely to have anything to do with Fission vs. non-Fission. This looks like a real regression from bug 1701828, but we shouldn't back that one out and should instead seek to understand what's wrong here.
It looks like we're trying to execute a script from the encoding commitment flush, and either this or the argument is bad. The argument is null-checked earlier, but since the access violation is on read rather than write, it still suggests that the bad address is the snapshot address rather than the nsHtml5Parser and its member nsHtml5TreeBuilder being bad.
I don't have access to the crash metadata. calixte, can you see a URL for repro?
| Assignee | ||
Comment 2•4 years ago
|
||
This might have the same root cause as bug 1745139, but there's enough inlining going on that I'm not sure. I'm going to try fixing the other bug first.
| Assignee | ||
Comment 3•4 years ago
|
||
It's very likely that the patch in bug 1745139 fixes this one as well.
| Assignee | ||
Comment 4•4 years ago
|
||
(In reply to Henri Sivonen (:hsivonen) from comment #3)
It's very likely that the patch in bug 1745139 fixes this one as well.
It didn't.
The crashes after the landing of that patch make this one a bit clearer:
The loop in https://searchfox.org/mozilla-central/rev/4646b826a25d3825cf209db890862b45fa09ffc3/parser/html/nsHtml5TreeOpExecutor.cpp#831 end up trying to run a script, and things go wrong from there.
Chances are that we ended up not processing the encoding commitment via the speculative load queue. We probably took this branch earlier:
https://searchfox.org/mozilla-central/rev/4646b826a25d3825cf209db890862b45fa09ffc3/parser/html/nsHtml5TreeBuilderCppSupplement.h#1261
But why?
| Assignee | ||
Comment 5•4 years ago
|
||
| Assignee | ||
Comment 6•4 years ago
|
||
| Assignee | ||
Comment 7•4 years ago
|
||
Previous try run crashes in widget code, which look unrelated. Let's try a rebase:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=82899d5b89d3dd3b62796e7dd2972510e9c3c9d8
| Assignee | ||
Comment 8•4 years ago
|
||
How do I find an appropriate base rev to compare with? https://treeherder.mozilla.org/perfherder/compare?originalProject=mozilla-central&originalRevision=e135fe933c4e31482e91c77617a27c04b3a44eef&newProject=try&newRevision=0010e10179c44cec14f6c982e56b32a0c9b36e4a&framework=13&page=1 doesn't work?
Updated•4 years ago
|
| Reporter | ||
Comment 9•4 years ago
|
||
I've no idea, maybe :sparky will.
Comment 10•4 years ago
|
||
:hsivonen, the try run you made needs to use the shippable build variants to get a comparison with m-c
Updated•4 years ago
|
| Assignee | ||
Comment 11•4 years ago
|
||
(In reply to Greg Mierzwinski [:sparky] from comment #10)
:hsivonen, the try run you made needs to use the
shippablebuild variants to get a comparison with m-c
| Assignee | ||
Comment 12•4 years ago
|
||
Generating a new shippable build:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f4b1b3e68d4a78df9236e9544401606f4d1879b9
Comment 13•4 years ago
|
||
Comment 14•4 years ago
|
||
| bugherder | ||
Updated•4 years ago
|
Updated•4 years ago
|
Description
•