Crash in [@ nsQueryObject<T>::operator()] with string bundles
Categories
(Core :: DOM: Workers, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr102 | --- | unaffected |
firefox108 | --- | unaffected |
firefox109 | --- | unaffected |
firefox110 | + | fixed |
People
(Reporter: pascalc, Assigned: yulia)
References
(Regression)
Details
(5 keywords, Whiteboard: [fixed by backout][post-critsmash-triage][adv-main110-])
Crash Data
Crash report: https://crash-stats.mozilla.org/report/index/7e9bbefb-973a-4503-8207-b62260221215
Reason: EXCEPTION_ACCESS_VIOLATION_READ
Top 10 frames of crashing thread:
0 xul.dll nsQueryObject<nsIStringBundle>::operator const xpcom/base/nsQueryObject.h:24
0 xul.dll RefPtr< xpcom/base/nsCOMPtr.h:1475
0 xul.dll nsStringBundleService::RegisterContentBundle intl/strres/nsStringBundle.cpp:835
1 xul.dll mozilla::dom::ContentChild::RecvRegisterStringBundles dom/ipc/ContentChild.cpp:2369
2 xul.dll mozilla::dom::PContentChild::OnMessageReceived ipc/ipdl/PContentChild.cpp:10988
3 xul.dll mozilla::ipc::MessageChannel::DispatchAsyncMessage ipc/glue/MessageChannel.cpp:1756
3 xul.dll mozilla::ipc::MessageChannel::DispatchMessage ipc/glue/MessageChannel.cpp:1681
3 xul.dll mozilla::ipc::MessageChannel::RunMessage ipc/glue/MessageChannel.cpp:1481
3 xul.dll mozilla::ipc::MessageChannel::MessageTask::Run ipc/glue/MessageChannel.cpp:1579
4 xul.dll mozilla::RunnableTask::Run xpcom/threads/TaskController.cpp:539
Reporter | ||
Comment 1•2 years ago
|
||
Crashes started with Build 20221215092759
Changelog: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=7ff758e0d08b4bdf0ce3bd2abe84a1bff3be8ff4&tochange=061ba69417ebfdcb275f01049f09a893004c5587
Reporter | ||
Updated•2 years ago
|
![]() |
||
Comment 2•2 years ago
|
||
use-after-free in the crash address: 0xe5e5e5e5e5e5e5e5
![]() |
||
Updated•2 years ago
|
![]() |
||
Comment 3•2 years ago
|
||
[@ mozilla::dom::WorkerRunnable::Run]
variant: bp-48d4a7d3-ee36-4bcf-aecb-467250221216
Assignee | ||
Comment 4•2 years ago
•
|
||
It looks like the issue might be that the StringBundle isn't initialized before an error occurs. But that only explains the second variant, not the first. I am not sure how the worker modules changes impacted the first, as that happens on the content process and not on the worker process or the main thread while doing worker work. In particular, it looks like an issue when opening PDF files -- which suggests that the pdf worker might be triggering it... but the error still comes from content. I'll ask around.
Comment 5•2 years ago
|
||
Set release status flags based on info from the regressing bug 1247687
Updated•2 years ago
|
Comment 6•2 years ago
|
||
Here's an example of the string bundle crash on a poison value: bp-bbd28d65-3982-480a-981e-927520221216
Comment 7•2 years ago
|
||
(In reply to Sebastian Hengst [:aryx] (needinfo me if it's about an intermittent or backout) from comment #3)
[@ mozilla::dom::WorkerRunnable::Run]
variant: bp-48d4a7d3-ee36-4bcf-aecb-467250221216
Should there maybe be a new bug filed for this instead? It does seem like it probably has the same regressor, but the stack looks completely different.
Comment 8•2 years ago
|
||
Bug 1805387 in the regression range involves both PDFs and strings, which is suspicious, but the actual patch is a CSS tweak to avoid windows overlapping so I can't see how it could be related.
One comment says "Cannot open PDF files."
Assignee | ||
Comment 9•2 years ago
|
||
The part of the worker module code that is causing this issue is most likely https://phabricator.services.mozilla.com/D163239 -- I added this because we cannot use the string bundle cross thread otherwise, and the module loader crashes without it if it fails on the worker side. However, I have little insight to how this works, and I don't know if :kmag is still on until the end of the year. I'll cc him here and maybe we can take a look together. If this is severe, i have no qualms about pulling the module loader back out if necessary. I've been keeping this rebased for a half year anyway.
Kmag, you helped yoshi with the stringbundle stuff related to worklets, ccing you here in case you have any idea. To me it looks like I am calling it in the wrong place, either too early or too late.
Assignee | ||
Comment 10•2 years ago
|
||
(shouldn't have cleared the needinfo for me here, i might forget to come back to this otherwise)
Comment 11•2 years ago
|
||
Via the signature spikes report, here's what looks like another string bundle issue. As with the other one, a decent chunk are UAFs. bp-50a47787-801c-47ab-ab06-17de60221216
Comment 12•2 years ago
|
||
..and another, [@ nsContentUtils::FormatLocalizedString ]: bp-5e6f3da4-b23d-4c24-96ed-580c30221216
Updated•2 years ago
|
Comment 13•2 years ago
|
||
Assignee | ||
Updated•2 years ago
|
Comment 14•2 years ago
|
||
The bug is linked to topcrash signatures, which match the following criteria:
- Top 10 desktop browser crashes on nightly
- Top 10 AArch64 and ARM crashes on nightly
For more information, please visit auto_nag documentation.
Comment 15•2 years ago
|
||
The bug is marked as tracked for firefox110 (nightly). However, the bug still isn't assigned.
:jstutte, could you please find an assignee for this tracked bug? Given that it is a regression and we know the cause, we could also simply backout the regressor. If you disagree with the tracking decision, please talk with the release managers.
For more information, please visit auto_nag documentation.
Comment 16•2 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #7)
(In reply to Sebastian Hengst [:aryx] (needinfo me if it's about an intermittent or backout) from comment #3)
[@ mozilla::dom::WorkerRunnable::Run]
variant: bp-48d4a7d3-ee36-4bcf-aecb-467250221216Should there maybe be a new bug filed for this instead? It does seem like it probably has the same regressor, but the stack looks completely different.
Yeah, that seems to be a different issue. Cracking up https://crash-stats.mozilla.org/report/index/570e2142-c5cb-4712-9630-00c3e0221218 shows me that apparently we try to run an already freed WorkerRunnable
while doing a sync loop and fail on reading its mWorkerPrivate
member, which sounds weird.
Updated•2 years ago
|
Comment 17•2 years ago
|
||
For now this is mitigated by backout as of bug 1247687 comment 77.
Comment 18•2 years ago
|
||
Yes, and bug 1806390 should fix the stringbundle crashes.
Comment 19•2 years ago
|
||
I confirmed that the crashes have gone away, so I'll mark this fixed.
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Assignee | ||
Comment 21•2 years ago
|
||
I will try to reland the changes now that emilios changes are in. I'll monitor the crashes over the next few days.
Updated•2 years ago
|
Updated•2 years ago
|
Updated•1 year ago
|
Description
•