Startup crash with service workers registered because of recursive initialization of the service worker manager service

RESOLVED FIXED in Firefox 41

Status

()

RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: Ehsan, Assigned: Ehsan)

Tracking

unspecified
mozilla41
Points:
---

Firefox Tracking Flags

(firefox41 fixed)

Details

Attachments

(2 attachments)

(Assignee)

Description

3 years ago
I hit these two assertions at startup when debugging a test:

[31317] ###!!! ASSERTION: Recursive GetService!: 'Error', file /Users/ehsan/moz/src/xpcom/components/nsComponentManager.cpp, line 1546
#01: nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x177196]
#02: CallGetService(char const*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2089f1]
#03: nsGetServiceByContractID::operator()(nsID const&, void**) const[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2064a8]
#04: nsCOMPtr<nsIServiceWorkerManager>::assign_from_gs_contractid(nsGetServiceByContractID, nsID const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fda23]
#05: nsCOMPtr<nsIServiceWorkerManager>::nsCOMPtr(nsGetServiceByContractID)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fd9e1]
#06: nsCOMPtr<nsIServiceWorkerManager>::nsCOMPtr(nsGetServiceByContractID)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1f623d]
#07: mozilla::services::GetServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1e65a8]
#08: mozilla::dom::workers::ServiceWorkerManager::GetInstance()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a464f]
#09: mozilla::dom::workers::ServiceWorkerManager::AddScopeAndRegistration(nsACString_internal const&, mozilla::dom::workers::ServiceWorkerRegistrationInfo*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37aed13]
#10: mozilla::dom::workers::ServiceWorkerManager::CreateNewRegistration(nsCString const&, nsIPrincipal*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37adc31]
#11: mozilla::dom::workers::ServiceWorkerManager::LoadRegistrations(nsTArray<mozilla::dom::ServiceWorkerRegistrationData> const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a5ac0]
#12: mozilla::dom::workers::ServiceWorkerManager::ServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a53fc]
#13: mozilla::dom::workers::ServiceWorkerManager::ServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a5c45]
#14: mozilla::dom::workers::ServiceWorkerManager::FactoryCreate()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4397bda]
#15: ServiceWorkerManagerConstructor(nsISupports*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x43928ca]
#16: mozilla::GenericFactory::CreateInstance(nsISupports*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1ec4ce]
#17: nsComponentManagerImpl::CreateInstanceByContractID(char const*, nsISupports*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x17b9f2]
#18: nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x177422]
#19: CallGetService(char const*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2089f1]
#20: nsGetServiceByContractID::operator()(nsID const&, void**) const[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2064a8]
#21: nsCOMPtr<nsIServiceWorkerManager>::assign_from_gs_contractid(nsGetServiceByContractID, nsID const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fda23]
#22: nsCOMPtr<nsIServiceWorkerManager>::nsCOMPtr(nsGetServiceByContractID)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fd9e1]
#23: nsCOMPtr<nsIServiceWorkerManager>::nsCOMPtr(nsGetServiceByContractID)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1f623d]
#24: mozilla::services::GetServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1e65a8]
#25: nsDocument::SetScriptGlobalObject(nsIScriptGlobalObject*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1b3dbff]
#26: nsGlobalWindow::SetNewDocument(nsIDocument*, nsISupports*, bool)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1943493]
#27: non-virtual thunk to nsGlobalWindow::SetNewDocument(nsIDocument*, nsISupports*, bool)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1945796]
#28: nsDocumentViewer::InitInternal(nsIWidget*, nsISupports*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, bool, bool, bool)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3fbc474]
#29: nsDocumentViewer::Init(nsIWidget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3fbb9a4]
#30: nsDocShell::SetupNewViewer(nsIContentViewer*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x46a7791]
#31: nsDocShell::Embed(nsIContentViewer*, char const*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x46a650b]
#32: nsDocShell::CreateContentViewer(nsACString_internal const&, nsIRequest*, nsIStreamListener**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4676da4]
#33: nsDSURIContentListener::DoContent(nsACString_internal const&, bool, nsIRequest*, nsIStreamListener**, bool*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x46757d9]
#34: nsDocumentOpenInfo::TryContentListener(nsIURIContentListener*, nsIChannel*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1384996]
#35: nsDocumentOpenInfo::DispatchContent(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1383135]
#36: nsDocumentOpenInfo::OnStartRequest(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1382a7f]
#37: nsBaseChannel::OnStartRequest(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2cdbd6]
#38: non-virtual thunk to nsBaseChannel::OnStartRequest(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2cded7]
#39: nsInputStreamPump::OnStateStart()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x301d6c]
#40: nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x30188c]
#41: non-virtual thunk to nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3029ef]
#42: nsInputStreamReadyEvent::Run()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x16a3c0]
#43: nsThread::ProcessNextEvent(bool, bool*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x19b75f]
#44: NS_ProcessPendingEvents(nsIThread*, unsigned int)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x212d8a]
#45: nsBaseAppShell::NativeEventCallback()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3ad9cc9]
#46: nsAppShell::ProcessGeckoEvents(void*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b594bd]
#47: __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x80a01]
#48: __CFRunLoopDoSources0[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x72b8d]
#49: __CFRunLoopRun[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x721bf]
#50: CFRunLoopRunSpecific[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x71bd8]
#51: RunCurrentEventLoopInMode[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x3256f]
#52: ReceiveNextEventCommon[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x321ee]
#53: _BlockUntilNextEventMatchingListInModeWithFilter[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x3212b]
#54: _DPSNextEvent[/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x919bb]
#55: -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x90f68]
#56: -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b57fd7]
#57: -[NSApplication run][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x86bf3]
#58: nsAppShell::Run()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b59e8c]
#59: nsAppStartup::Run()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4ba1c21]
#60: XREMain::XRE_mainRun()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4c6f64d]
#61: XREMain::XRE_main(int, char**, nsXREAppData const*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4c6ff92]
#62: XRE_main[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4c70452]
#63: do_main(int, char**, nsIFile*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/firefox +0x294a]
#64: main[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/firefox +0x1d25]
Assertion failure: swm, at /Users/ehsan/moz/src/dom/workers/ServiceWorkerManager.cpp:2611
#01: mozilla::dom::workers::ServiceWorkerManager::AddScopeAndRegistration(nsACString_internal const&, mozilla::dom::workers::ServiceWorkerRegistrationInfo*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37aed7c]
#02: mozilla::dom::workers::ServiceWorkerManager::CreateNewRegistration(nsCString const&, nsIPrincipal*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37adc31]
#03: mozilla::dom::workers::ServiceWorkerManager::LoadRegistrations(nsTArray<mozilla::dom::ServiceWorkerRegistrationData> const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a5ac0]
#04: mozilla::dom::workers::ServiceWorkerManager::ServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a53fc]
#05: mozilla::dom::workers::ServiceWorkerManager::ServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x37a5c45]
#06: mozilla::dom::workers::ServiceWorkerManager::FactoryCreate()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4397bda]
#07: ServiceWorkerManagerConstructor(nsISupports*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x43928ca]
#08: mozilla::GenericFactory::CreateInstance(nsISupports*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1ec4ce]
#09: nsComponentManagerImpl::CreateInstanceByContractID(char const*, nsISupports*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x17b9f2]
#10: nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x177422]
#11: CallGetService(char const*, nsID const&, void**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2089f1]
#12: nsGetServiceByContractID::operator()(nsID const&, void**) const[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2064a8]
#13: nsCOMPtr<nsIServiceWorkerManager>::assign_from_gs_contractid(nsGetServiceByContractID, nsID const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fda23]
#14: nsCOMPtr<nsIServiceWorkerManager>::nsCOMPtr(nsGetServiceByContractID)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1fd9e1]
#15: nsCOMPtr<nsIServiceWorkerManager>::nsCOMPtr(nsGetServiceByContractID)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1f623d]
#16: mozilla::services::GetServiceWorkerManager()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1e65a8]
#17: nsDocument::SetScriptGlobalObject(nsIScriptGlobalObject*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1b3dbff]
#18: nsGlobalWindow::SetNewDocument(nsIDocument*, nsISupports*, bool)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1943493]
#19: non-virtual thunk to nsGlobalWindow::SetNewDocument(nsIDocument*, nsISupports*, bool)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1945796]
#20: nsDocumentViewer::InitInternal(nsIWidget*, nsISupports*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, bool, bool, bool)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3fbc474]
#21: nsDocumentViewer::Init(nsIWidget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3fbb9a4]
#22: nsDocShell::SetupNewViewer(nsIContentViewer*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x46a7791]
#23: nsDocShell::Embed(nsIContentViewer*, char const*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x46a650b]
#24: nsDocShell::CreateContentViewer(nsACString_internal const&, nsIRequest*, nsIStreamListener**)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4676da4]
#25: nsDSURIContentListener::DoContent(nsACString_internal const&, bool, nsIRequest*, nsIStreamListener**, bool*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x46757d9]
#26: nsDocumentOpenInfo::TryContentListener(nsIURIContentListener*, nsIChannel*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1384996]
#27: nsDocumentOpenInfo::DispatchContent(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1383135]
#28: nsDocumentOpenInfo::OnStartRequest(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x1382a7f]
#29: nsBaseChannel::OnStartRequest(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2cdbd6]
#30: non-virtual thunk to nsBaseChannel::OnStartRequest(nsIRequest*, nsISupports*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x2cded7]
#31: nsInputStreamPump::OnStateStart()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x301d6c]
#32: nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x30188c]
#33: non-virtual thunk to nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3029ef]
#34: nsInputStreamReadyEvent::Run()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x16a3c0]
#35: nsThread::ProcessNextEvent(bool, bool*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x19b75f]
#36: NS_ProcessPendingEvents(nsIThread*, unsigned int)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x212d8a]
#37: nsBaseAppShell::NativeEventCallback()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3ad9cc9]
#38: nsAppShell::ProcessGeckoEvents(void*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b594bd]
#39: __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x80a01]
#40: __CFRunLoopDoSources0[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x72b8d]
#41: __CFRunLoopRun[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x721bf]
#42: CFRunLoopRunSpecific[/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x71bd8]
#43: RunCurrentEventLoopInMode[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x3256f]
#44: ReceiveNextEventCommon[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x321ee]
#45: _BlockUntilNextEventMatchingListInModeWithFilter[/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x3212b]
#46: _DPSNextEvent[/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x919bb]
#47: -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x90f68]
#48: -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:][/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b57fd7]
#49: -[NSApplication run][/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x86bf3]
#50: nsAppShell::Run()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3b59e8c]
#51: nsAppStartup::Run()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4ba1c21]
#52: XREMain::XRE_mainRun()[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4c6f64d]
#53: XREMain::XRE_main(int, char**, nsXREAppData const*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4c6ff92]
#54: XRE_main[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/XUL +0x4c70452]
#55: do_main(int, char**, nsIFile*)[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/firefox +0x294a]
#56: main[/Users/ehsan/moz/src/obj-ff-clang-plugin.noindex/dist/NightlyDebug.app/Contents/MacOS/firefox +0x1d25]

We should not call LoadRegistrations from the constructor, I think.

This issue hits us with any profile with registered service workers and the pref enabled, so we should fix it before re-enabling service workers.  I have a patch that I'm testing...
(Assignee)

Updated

3 years ago
Blocks: 1059784
(Assignee)

Comment 2

3 years ago
(In reply to Nikhil Marathe [:nsm] (needinfo? please) from comment #1)
> I believe this is already fixed by bug 1155153.

Perhaps, but the patch that I have is better in a few respects.  Let me finish testing it and submit it...
(Assignee)

Comment 3

3 years ago
Created attachment 8615424 [details] [diff] [review]
Avoid recursively obtaining the service worker manager service
Attachment #8615424 - Flags: review?(nsm.nikhil)
(Assignee)

Comment 4

3 years ago
Here is why I think my patch is better: it eliminates the now unneeded UUID for the SWM object, it avoids going through the XPCOM service manager for the native consumers, and it eliminates the FactoryCreate method and just uses GetInstance() for obtaining an instance of the SWM no matter who wants to use it.
Comment on attachment 8615424 [details] [diff] [review]
Avoid recursively obtaining the service worker manager service

Review of attachment 8615424 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/workers/ServiceWorkerManager.cpp
@@ +2297,5 @@
> +  if (firstTime) {
> +    AssertIsOnMainThread();
> +
> +    gInstance = new ServiceWorkerManager();
> +    gInstance->Init();

This can be broken in case Init() needs to use GetInstance().
In my latest patch I propose a different approach, and I'm going to land it soon. Can you rebase your code on top of bug 1155153 ?
(Assignee)

Comment 7

3 years ago
(In reply to Andrea Marchesini (:baku) from comment #5)
> Comment on attachment 8615424 [details] [diff] [review]
> Avoid recursively obtaining the service worker manager service
> 
> Review of attachment 8615424 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: dom/workers/ServiceWorkerManager.cpp
> @@ +2297,5 @@
> > +  if (firstTime) {
> > +    AssertIsOnMainThread();
> > +
> > +    gInstance = new ServiceWorkerManager();
> > +    gInstance->Init();
> 
> This can be broken in case Init() needs to use GetInstance().
> In my latest patch I propose a different approach, and I'm going to land it
> soon. Can you rebase your code on top of bug 1155153 ?

Oops, sorry, I saw this after my autolander landed this patch.  :/

You're right though, did you mean that I should set the boolean flag before calling Init()?
(Assignee)

Updated

3 years ago
Flags: needinfo?(amarchesini)
> You're right though, did you mean that I should set the boolean flag before
> calling Init()?

Take a look at what I did in bug 155153. Maybe still land my approach if that is ok for you.
Flags: needinfo?(amarchesini) → needinfo?(ehsan)
https://hg.mozilla.org/mozilla-central/rev/2096212a25cb
Status: NEW → RESOLVED
Last Resolved: 3 years ago
status-firefox41: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
(Assignee)

Comment 10

3 years ago
(In reply to Andrea Marchesini (:baku) from comment #8)
> > You're right though, did you mean that I should set the boolean flag before
> > calling Init()?
> 
> Take a look at what I did in bug 155153. Maybe still land my approach if
> that is ok for you.

Wrong bug number?  I did take a look at a bug that did something similar earlier today but I can't find it right now...  Do you mind pointing me to the specific code though?  IIRC that patch did a lot more than this.

That being said, I'm pretty sure comment 7 will fix it.  Let me make a quick patch.
Flags: needinfo?(ehsan)
(Assignee)

Comment 11

3 years ago
Created attachment 8615794 [details] [diff] [review]
Part 2: Make it OK to call ServiceWorkerManager::GetInstance() during its Init() function
Attachment #8615794 - Flags: review?(amarchesini)
Attachment #8615794 - Flags: review?(amarchesini) → review+
(Assignee)

Updated

3 years ago
Duplicate of this bug: 1170493
You need to log in before you can comment on or make changes to this bug.