Upgrading Firefox 92.0.1 to 93.0 hangs on startup, uses gigabytes of memory
Categories
(Core :: Internationalization: Localization, defect)
Tracking
()
People
(Reporter: gcp, Unassigned)
References
(Regression)
Details
(Keywords: regression)
Reported on IRC:
"Firefox updated from 92.x to 93.0 and it breaks on launch. Consumes a core and memory usage is now at 25 GB. Installing the same version over didn't help. Uninstall and then reinstalling did. I didn't see any temp versions in the install dir, the exe was the same as it is now. I can reproduce the issue by upgrading from 92.0.1 to 93.0. But now it only triggers on first start. If I kill the process and restart, everything seems fine."
...
"I actually test-installed the English version after the first uninstall, as I suspected it's language related. But then when I uninstalled that and reinstalled the Finnish version, everything was still OK."
The user assisted in getting us a minidump, gsvelto has a copy and produced the following stack:
https://pastebin.mozilla.org/YsLVtTD7
mozglue.dll!je_malloc(unsigned __int64 arg1) Line 51 C++
[Inline Frame] xul.dll!alloc::alloc::alloc(core::alloc::layout::Layout layout) Line 86 Unknown
[Inline Frame] xul.dll!alloc::alloc::Global::alloc_impl(core::alloc::layout::Layout self, bool layout) Line 166 Unknown
[Inline Frame] xul.dll!alloc::alloc::{{impl}}::allocate(alloc::alloc::Global * self, core::alloc::layout::Layout layout) Line 226 Unknown
[Inline Frame] xul.dll!alloc::raw_vec::RawVec<u8, alloc::alloc::Global>::allocate_in(unsigned __int64 capacity, alloc::raw_vec::AllocInit init, alloc::alloc::Global) Line 203 Unknown
[Inline Frame] xul.dll!alloc::raw_vec::RawVec<u8, alloc::alloc::Global>::with_capacity_in(unsigned __int64 capacity, alloc::alloc::Global) Line 142 Unknown
[Inline Frame] xul.dll!alloc::vec::Vec<u8, alloc::alloc::Global>::with_capacity_in(unsigned __int64 capacity, alloc::alloc::Global) Line 604 Unknown
[Inline Frame] xul.dll!alloc::slice::hack::{{impl}}::to_vec(slice<u8>) Line 223 Unknown
[Inline Frame] xul.dll!alloc::slice::hack::to_vec(slice<u8>) Line 172 Unknown
[Inline Frame] xul.dll!alloc::slice::{{impl}}::to_vec_in(slice<u8>) Line 494 Unknown
[Inline Frame] xul.dll!alloc::slice::{{impl}}::to_vec(slice<u8>) Line 470 Unknown
[Inline Frame] xul.dll!alloc::slice::{{impl}}::to_owned(slice<u8>) Line 834 Unknown
[Inline Frame] xul.dll!alloc::str::{{impl}}::to_owned(str) Line 219 Unknown
[Inline Frame] xul.dll!alloc::string::{{impl}}::to_string(enum$<alloc::borrow::Cow<str>> * self) Line 2454 Unknown
xul.dll!fluent_fallback::bundles::Bundles<l10nregistry::registry::L10nRegistry<l10nregistry_ffi::env::GeckoEnvironment, l10nregistry_ffi::registry::GeckoBundleAdapter>>::format_messages_from_iter<l10nregistry::registry::L10nRegistry<l10nregistry_ffi::env::GeckoEnvironment, l10nregistry_ffi::registry::GeckoBundleAdapter>>(slice<fluent_fallback::types::L10nKey> cache, alloc::vec::Vec<enum$<fluent_fallback::errors::LocalizationError>, alloc::alloc::Global> * errors) Line 414 Unknown
[Inline Frame] xul.dll!fluent_fallback::bundles::Bundles<l10nregistry::registry::L10nRegistry<l10nregistry_ffi::env::GeckoEnvironment, l10nregistry_ffi::registry::GeckoBundleAdapter>>::format_messages_sync(slice<fluent_fallback::types::L10nKey> self, alloc::vec::Vec<enum$<fluent_fallback::errors::LocalizationError>, alloc::alloc::Global> * errors) Line 138 Unknown
xul.dll!localization_ffi::LocalizationRc::format_messages_sync(thin_vec::ThinVec<localization_ffi::L10nKey> * self, thin_vec::ThinVec<localization_ffi::OptionalL10nMessage> * keys, thin_vec::ThinVec<nsstring::nsCString> * ret_val) Line 252 Unknown
xul.dll!mozilla::intl::Localization::FormatMessagesSync(const mozilla::dom::Sequence<mozilla::dom::OwningUTF8StringOrL10nIdArgs> & aKeys, nsTArray<mozilla::dom::Nullable<mozilla::dom::L10nMessage>> & aRetVal, mozilla::ErrorResult & aRv) Line 439 C++
xul.dll!mozilla::dom::DOMLocalization::TranslateElements(const mozilla::dom::Sequence<mozilla::OwningNonNull<mozilla::dom::Element>> & aElements, nsXULPrototypeDocument * aProto, mozilla::ErrorResult & aRv) Line 346 C++
[Inline Frame] xul.dll!mozilla::dom::DocumentL10n::TranslateDocument(mozilla::ErrorResult & aRv) Line 200 C++
xul.dll!mozilla::dom::DocumentL10n::TriggerInitialTranslation() Line 107 C++
[Inline Frame] xul.dll!mozilla::dom::PrototypeDocumentContentSink::MaybeDoneWalking() Line 639 C++
xul.dll!mozilla::dom::PrototypeDocumentContentSink::StyleSheetLoaded(mozilla::StyleSheet * aSheet, bool aWasDeferred, nsresult aStatus) Line 719 C++
xul.dll!mozilla::css::Loader::NotifyObservers(mozilla::css::SheetLoadData & aData, nsresult aStatus) Line 1570 C++
xul.dll!mozilla::SharedStyleSheetCache::LoadCompleted(mozilla::SharedStyleSheetCache * aCache, mozilla::css::SheetLoadData & aData, nsresult aStatus) Line 334 C++
[Inline Frame] xul.dll!mozilla::css::Loader::SheetComplete(mozilla::css::SheetLoadData & aLoadData, nsresult aStatus) Line 1598 C++
[Inline Frame] xul.dll!mozilla::css::SheetLoadData::SheetFinishedParsingAsync() Line 247 C++
[Inline Frame] xul.dll!mozilla::css::Loader::ParseSheet::<unnamed-tag>::operator()(bool aDummy) Line 1547 C++
[Inline Frame] xul.dll!mozilla::MozPromise<bool,bool,1>::InvokeMethod(mozilla::css::Loader::ParseSheet::<unnamed-tag> * aThisVal, void(const mozilla::css::Loader::ParseSheet::<unnamed-tag>::*)(bool) aValue, bool &&) Line 630 C++
[Inline Frame] xul.dll!mozilla::MozPromise<bool,bool,1>::InvokeCallbackMethod(mozilla::css::Loader::ParseSheet::<unnamed-tag> * aThisVal, void(const mozilla::css::Loader::ParseSheet::<unnamed-tag>::*)(bool) aValue, bool && aCompletionPromise, RefPtr<mozilla::MozPromise<bool,bool,1>::Private> &&) Line 661 C++
xul.dll!mozilla::MozPromise<bool,bool,1>::ThenValue<`lambda at /builds/worker/checkouts/gecko/layout/style/Loader.cpp:1545:11',`lambda at /builds/worker/checkouts/gecko/layout/style/Loader.cpp:1549:11'>::DoResolveOrRejectInternal(mozilla::MozPromise<bool,bool,1>::ResolveOrRejectValue & aValue) Line 859 C++
[Inline Frame] xul.dll!mozilla::MozPromise<bool,nsresult,1>::ThenValueBase::DoResolveOrReject(mozilla::MozPromise<bool,nsresult,1>::ResolveOrRejectValue & aValue) Line 608 C++
xul.dll!mozilla::MozPromise<bool,nsresult,1>::ThenValueBase::ResolveOrRejectRunnable::Run() Line 488 C++
[Inline Frame] xul.dll!mozilla::RunnableTask::Run() Line 502 C++
xul.dll!mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(const mozilla::detail::BaseAutoLock<mozilla::Mutex &> & aProofOfLock) Line 805 C++
[Inline Frame] xul.dll!mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(const mozilla::detail::BaseAutoLock<mozilla::Mutex &> & aProofOfLock) Line 641 C++
[Inline Frame] xul.dll!mozilla::TaskController::ProcessPendingMTTask(bool aMayWait) Line 425 C++
[Inline Frame] xul.dll!mozilla::TaskController::InitializeInternal::<unnamed-tag>::operator()() Line 135 C++
[Inline Frame] xul.dll!mozilla::detail::RunnableFunction<`lambda at /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:135:7'>::Run() Line 531 C++
xul.dll!nsThread::ProcessNextEvent(bool aMayWait, bool * aResult) Line 1148 C++
[Inline Frame] xul.dll!NS_ProcessNextEvent(nsIThread * aThread, bool aMayWait) Line 466 C++
xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate) Line 85 C++
[Inline Frame] xul.dll!MessageLoop::RunInternal() Line 331 C++
xul.dll!MessageLoop::RunHandler() Line 325 C++
xul.dll!MessageLoop::Run() Line 307 C++
xul.dll!nsBaseAppShell::Run() Line 139 C++
xul.dll!nsAppShell::Run() Line 603 C++
xul.dll!nsAppStartup::Run() Line 285 C++
xul.dll!XREMain::XRE_mainRun() Line 5291 C++
xul.dll!XREMain::XRE_main(int argc, char * * argv, const mozilla::BootstrapConfig & aConfig) Line 5476 C++
xul.dll!XRE_main(int argc, char * * argv, const mozilla::BootstrapConfig & aConfig) Line 5535 C++
Reporter | ||
Updated•3 years ago
|
Reporter | ||
Comment 1•3 years ago
|
||
To make it clear: the user originally tried to update the Finnish version of FIrefox.
Comment 2•3 years ago
|
||
This seems almost certain to be a regression from Bug 1560038.
Updated•3 years ago
|
Comment 3•3 years ago
|
||
I dunno, I kinda suspect this is "just" bug 1642415, which is fixed in 94.
Comment 4•3 years ago
|
||
Per conversation on Matrix, the user is on a Finnish build, with a Finnish language pack on top.
Relevant bits
{
"name": "Finnish Language Pack",
"type": "locale",
"version": "93.0buildid20210927210923",
"isActive": false,
"id": "langpack-fi@firefox.mozilla.org"
}
"intl": {
"localeService": {
"requested": [
"fi",
"en-US"
],
"available": [
"fi",
"en-US"
],
"supported": [
"fi",
"en-US"
],
"regionalPrefs": [
"fi-FI"
],
"defaultLocale": "fi"
},
,
I'm going to mark it as dupe of bug 1642415.
What's interesting is that it was almost impossible for me to replicate that bug with 92+. I wonder if it's more likely to happen on less powerful machine (although mine is already 3y old).
Description
•