Closed Bug 1375343 Opened 9 years ago Closed 8 years ago

Crash in shutdownhang | _PR_MD_WAIT_CV | _PR_WaitCondVar | mozilla::CondVar::Wait | nsEventQueue::GetEvent | nsThread::nsChainedEventQueue::GetEvent | nsThread::ProcessNextEvent | NS_ProcessNextEvent | mozilla::dom::ServiceWorkerRegistrar::ProfileStopped

Categories

(Core :: General, defect)

55 Branch
x86
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox54 --- affected

People

(Reporter: gchang, Unassigned)

Details

(Keywords: crash, topcrash)

Crash Data

This bug was filed from the Socorro interface and is report bp-51c46dc5-07b9-48f3-b5b9-aed4d0170621. ============================================================= Frame Module Signature Source 0 ntdll.dll NtWaitForSingleObject 1 kernelbase.dll WaitForSingleObjectEx 2 kernel32.dll WaitForSingleObjectExImplementation 3 kernel32.dll WaitForSingleObject 4 nss3.dll _PR_MD_WAIT_CV nsprpub/pr/src/md/windows/w95cv.c:248 5 nss3.dll _PR_WaitCondVar nsprpub/pr/src/threads/combined/prucv.c:172 6 nss3.dll PR_WaitCondVar nsprpub/pr/src/threads/combined/prucv.c:525 7 xul.dll mozilla::CondVar::Wait(unsigned int) obj-firefox/dist/include/mozilla/CondVar.h:79 8 xul.dll nsEventQueue::GetEvent(bool, nsIRunnable**, mozilla::BaseAutoLock<mozilla::Mutex>&) xpcom/threads/nsEventQueue.cpp:76 9 xul.dll nsThread::nsChainedEventQueue::GetEvent(bool, nsIRunnable**, mozilla::BaseAutoLock<mozilla::Mutex>&) xpcom/threads/nsThread.cpp:820 10 xul.dll nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp:1237 11 xul.dll NS_ProcessNextEvent(nsIThread*, bool) xpcom/threads/nsThreadUtils.cpp:389 12 xul.dll mozilla::dom::ServiceWorkerRegistrar::ProfileStopped() dom/workers/ServiceWorkerRegistrar.cpp:902 13 xul.dll mozilla::dom::ServiceWorkerRegistrar::Observe(nsISupports*, char const*, char16_t const*) dom/workers/ServiceWorkerRegistrar.cpp:943 14 xul.dll nsObserverList::NotifyObservers(nsISupports*, char const*, char16_t const*) xpcom/ds/nsObserverList.cpp:112 15 xul.dll nsObserverService::NotifyObservers(nsISupports*, char const*, char16_t const*) xpcom/ds/nsObserverService.cpp:281 16 xul.dll nsXREDirProvider::DoShutdown() toolkit/xre/nsXREDirProvider.cpp:1248 17 xul.dll ScopedXPCOMStartup::~ScopedXPCOMStartup() toolkit/xre/nsAppRunner.cpp:1417 18 xul.dll mozilla::UniquePtr<ScopedXPCOMStartup, mozilla::DefaultDelete<ScopedXPCOMStartup> >::reset(ScopedXPCOMStartup*) obj-firefox/dist/include/mozilla/UniquePtr.h:345 19 xul.dll mozilla::UniquePtr<ScopedXPCOMStartup, mozilla::DefaultDelete<ScopedXPCOMStartup> >::operator=(std::nullptr_t) obj-firefox/dist/include/mozilla/UniquePtr.h:313 20 xul.dll XREMain::XRE_main(int, char** const, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:4705 21 xul.dll XRE_main(int, char** const, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:4768 22 xul.dll mozilla::BootstrapImpl::XRE_main(int, char** const, mozilla::BootstrapConfig const&) toolkit/xre/Bootstrap.cpp:45 23 firefox.exe wmain toolkit/xre/nsWindowsWMain.cpp:115 24 firefox.exe __scrt_common_main_seh f:/dd/vctools/crt/vcstartup/src/startup/exe_common.inl:253 25 kernel32.dll BaseThreadInitThunk 26 ntdll.dll __RtlUserThreadStart 27 ntdll.dll _RtlUserThreadStart This is #5 topcrash in FF54 and there is a spike in FF54 in the last 3 days.
Hi Nathan, Can you help find someone to look at this? It seems we have many shutdownhang crash.
Flags: needinfo?(nfroyd)
The only threads that look like they have anything interesting going on here are: Thread 3 Frame Module Signature Source 0 ntdll.dll ZwGetContextThread 1 ntdll.dll ZwClose 2 kernel32.dll CloseHandleImplementation 3 dbghelp.dll Win32LiveSystemProvider::OpenMapping(unsigned short const*, unsigned long*, unsigned short*, unsigned long, void**) 4 dbghelp.dll GenAllocateModuleObject(_MINIDUMP_STATE*, _INTERNAL_PROCESS*, unsigned short*, unsigned __int64, unsigned long, _INTERNAL_MODULE**) 5 dbghelp.dll GenAllocateModuleObject(_MINIDUMP_STATE*, _INTERNAL_PROCESS*, unsigned short*, unsigned __int64, unsigned long, _INTERNAL_MODULE**) 6 ntdll.dll RtlpFreeHeap 7 ntdll.dll ZwClose 8 ntdll.dll ZwReadVirtualMemory 9 dbghelp.dll Win32LiveSystemProvider::GetValidVirtualRange(void*, unsigned __int64, unsigned long, unsigned __int64*, unsigned long*) 10 xul.dll mozilla::dom::CanvasRenderingContext2DBinding::Wrap(JSContext*, mozilla::dom::CanvasRenderingContext2D*, nsWrapperCache*, JS::Handle<JSObject*>, JS::MutableHandle<JSObject*>) obj-firefox/dom/bindings/CanvasRenderingContext2DBinding.cpp:6807 11 @0x15ef 12 xul.dll google_breakpad::ExceptionHandler::HandlePureVirtualCall() toolkit/crashreporter/breakpad-client/windows/handler/exception_handler.cc:692 13 dbghelp.dll GetSystemType(_MINIDUMP_STATE*) 14 @0xc0775f 15 xul.dll nsPresShellEventCB::HandleEvent(mozilla::EventChainPostVisitor&) layout/base/PresShell.cpp:515 16 xul.dll CrashReporter::FreeBreakpadVM toolkit/crashreporter/nsExceptionHandler.cpp:1454 17 xul.dll google_breakpad::ExceptionHandler::WriteMinidumpWithException(unsigned long, _EXCEPTION_POINTERS*, MDRawAssertionInfo*) toolkit/crashreporter/breakpad-client/windows/handler/exception_handler.cc:847 18 xul.dll google_breakpad::ExceptionHandler::ExceptionHandlerThreadMain(void*) toolkit/crashreporter/breakpad-client/windows/handler/exception_handler.cc:394 19 kernel32.dll BaseThreadInitThunk 20 ntdll.dll __RtlUserThreadStart 21 ntdll.dll _RtlUserThreadStart ...which I think is completely bogus, and this: Thread 26 Frame Module Signature Source 0 ntdll.dll ZwRequestWaitReplyPort 1 dwmapi.dll CPortClient::SendComplexSyncRequestWow64(unsigned long, void const*, short, void*, short, long*) 2 dwmapi.dll CApiPortClient::SendRequest(void const*, short, long*, void*, short) 3 dwmapi.dll DwmFlush 4 xul.dll D3DVsyncSource::D3DVsyncDisplay::VBlankLoop() gfx/thebes/gfxWindowsPlatform.cpp:1860 5 xul.dll mozilla::detail::RunnableMethodImpl<mozilla::net::CacheFileContextEvictor* const, nsresult ( mozilla::net::CacheFileContextEvictor::*)(void), 1, 0>::Run() obj-firefox/dist/include/nsThreadUtils.h:890 6 xul.dll MessageLoop::RunTask(already_AddRefed<mozilla::Runnable>) ipc/chromium/src/base/message_loop.cc:358 7 xul.dll MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask&&) ipc/chromium/src/base/message_loop.cc:366 8 xul.dll MessageLoop::DoWork() ipc/chromium/src/base/message_loop.cc:441 9 xul.dll base::MessagePumpDefault::Run(base::MessagePump::Delegate*) ipc/chromium/src/base/message_pump_default.cc:36 which is also not super-helpful. Ben, do you know why we might be hanging indefinitely in ServiceWorkerRegistrar::ProfileStopped(), maybe some runnable didn't get dispatched?
Flags: needinfo?(nfroyd) → needinfo?(bkelly)
Well, it could be waiting for disk writes to complete. I think we have seen shutdown hang crashes before on storage stuff. We can't control how fast/slow disk writes are, unfortunately.` Maybe Andrea has more ideas.
Flags: needinfo?(bkelly) → needinfo?(amarchesini)
It is use PBackground actor here, though, and the PBackground thread appears busy: 0 ntdll.dll NtWaitForSingleObject 1 KERNELBASE.dll WaitForSingleObjectEx 2 kernel32.dll WaitForSingleObjectExImplementation 3 kernel32.dll WaitForSingleObject 4 nss3.dll _PR_MD_WAIT_CV nsprpub/pr/src/md/windows/w95cv.c:248 5 nss3.dll _PR_WaitCondVar nsprpub/pr/src/threads/combined/prucv.c:172 6 nss3.dll PR_WaitCondVar nsprpub/pr/src/threads/combined/prucv.c:525 7 xul.dll mozilla::CondVar::Wait(unsigned int) obj-firefox/dist/include/mozilla/CondVar.h:79 8 xul.dll mozilla::ipc::ProcessLink::Open(IPC::Channel*, MessageLoop*, mozilla::ipc::Side) ipc/glue/MessageLink.cpp:125 9 xul.dll mozilla::ipc::MessageChannel::Open(IPC::Channel*, MessageLoop*, mozilla::ipc::Side) ipc/glue/MessageChannel.cpp:679 10 xul.dll mozilla::ipc::IToplevelProtocol::Open(IPC::Channel*, unsigned long, MessageLoop*, mozilla::ipc::Side) ipc/glue/ProtocolUtils.cpp:620 11 xul.dll mozilla::ipc::Endpoint<mozilla::gfx::PVsyncBridgeParent>::Bind(mozilla::gfx::PVsyncBridgeParent*) obj-firefox/dist/include/mozilla/ipc/ProtocolUtils.h:627 12 xul.dll `anonymous namespace'::ParentImpl::ConnectActorRunnable::Run ipc/glue/BackgroundImpl.cpp:1458 13 xul.dll nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp:1264 14 xul.dll NS_ProcessNextEvent(nsIThread*, bool) xpcom/threads/nsThreadUtils.cpp:389 15 xul.dll mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) ipc/glue/MessagePump.cpp:368 16 xul.dll MessageLoop::RunHandler() ipc/chromium/src/base/message_loop.cc:231 17 xul.dll MessageLoop::Run() ipc/chromium/src/base/message_loop.cc:211 18 xul.dll nsThread::ThreadFunc(void*) xpcom/threads/nsThread.cpp:495 19 nss3.dll _PR_NativeRunThread nsprpub/pr/src/threads/combined/pruthr.c:397 20 nss3.dll pr_root nsprpub/pr/src/md/windows/w95thred.c:95 21 ucrtbase.dll _o__CIpow 22 kernel32.dll BaseThreadInitThunk 23 ntdll.dll __RtlUserThreadStart 24 ntdll.dll _RtlUserThreadStart
Currently the #4 browser topcrash in 54.0.1, and seems to only be present in 54 release, ESR and betas.
Keywords: topcrash
Marking WONTFIX given this didn't reoccur in 55+.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
Flags: needinfo?(amarchesini)
You need to log in before you can comment on or make changes to this bug.