Closed Bug 1323515 Opened 7 years ago Closed 6 years ago

Crash in shutdownhang | _PR_MD_WAIT_CV | _PR_WaitCondVar | mozilla::CondVar::Wait | nsEventQueue::GetEvent | nsThread::nsChainedEventQueue::GetEvent

Categories

(Core :: JavaScript Engine, defect, P3)

53 Branch
x86
Windows 7
defect

Tracking

()

RESOLVED INCOMPLETE
Tracking Status
firefox53 --- affected

People

(Reporter: alex_mayorga, Unassigned)

References

Details

(Keywords: crash, nightly-community, triage-deferred)

Crash Data

This bug was filed from the Socorro interface and is 
report bp-063df8e0-42bb-440e-869b-7434a2161214.
=============================================================

¡Hola!

Top 46 crash for Nightly (53) as of today. 15 crashes at https://crash-stats.mozilla.com/signature/?product=Firefox&signature=shutdownhang%20%7C%20_PR_MD_WAIT_CV%20%7C%20_PR_WaitCondVar%20%7C%20mozilla%3A%3ACondVar%3A%3AWait%20%7C%20nsEventQueue%3A%3AGetEvent%20%7C%20nsThread%3A%3AnsChainedEventQueue%3A%3AGetEvent

Crashing Thread (0)
Frame 	Module 	Signature 	Source
0 	ntdll.dll 	KiFastSystemCallRet 	
1 	ntdll.dll 	NtWaitForSingleObject 	
2 	kernelbase.dll 	WaitForSingleObjectEx 	
3 	kernel32.dll 	WaitForSingleObjectExImplementation 	
4 	kernel32.dll 	WaitForSingleObject 	
5 	nss3.dll 	_PR_MD_WAIT_CV 	nsprpub/pr/src/md/windows/w95cv.c:248
6 	nss3.dll 	_PR_WaitCondVar 	nsprpub/pr/src/threads/combined/prucv.c:172
7 	nss3.dll 	PR_WaitCondVar 	nsprpub/pr/src/threads/combined/prucv.c:525
8 	xul.dll 	mozilla::CondVar::Wait(unsigned int) 	obj-firefox/dist/include/mozilla/CondVar.h:79
9 	xul.dll 	nsEventQueue::GetEvent(bool, nsIRunnable**, mozilla::BaseAutoLock<mozilla::Mutex>&) 	xpcom/threads/nsEventQueue.cpp:57
10 	xul.dll 	nsThread::nsChainedEventQueue::GetEvent(bool, nsIRunnable**, mozilla::BaseAutoLock<mozilla::Mutex>&) 	xpcom/threads/nsThread.cpp:788
11 	xul.dll 	nsThread::GetEvent(bool, nsIRunnable**, mozilla::BaseAutoLock<mozilla::Mutex>&) 	xpcom/threads/nsThread.cpp:1144
12 	xul.dll 	nsThread::ProcessNextEvent(bool, bool*) 	xpcom/threads/nsThread.cpp:1203
13 	xul.dll 	NS_ProcessNextEvent(nsIThread*, bool) 	xpcom/glue/nsThreadUtils.cpp:381
14 	xul.dll 	mozilla::dom::XMLHttpRequestMainThread::SendInternal(mozilla::dom::XMLHttpRequestMainThread::RequestBodyBase const*) 	dom/xhr/XMLHttpRequestMainThread.cpp:3011
15 	xul.dll 	mozilla::dom::XMLHttpRequestMainThread::Send(JSContext*, nsAString_internal const&, mozilla::ErrorResult&) 	dom/xhr/XMLHttpRequestMainThread.h:383
16 	xul.dll 	mozilla::dom::XMLHttpRequestBinding::send 	obj-firefox/dom/bindings/XMLHttpRequestBinding.cpp:777
17 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:457
18 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:502
19 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:2919
20 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:403
21 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:475
22 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:502
23 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:165
24 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:333
25 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:445
26 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:502
27 	xul.dll 	js::jit::DoCallFallback 	js/src/jit/BaselineIC.cpp:4733
28 		@0xc33129e 	
29 		@0x21ddc467 	
30 		@0xbde4833 	
31 		@0xe3aa68f 	
32 		@0xc330942 	
33 	xul.dll 	EnterBaseline 	js/src/jit/BaselineJIT.cpp:155
34 	xul.dll 	js::jit::SpillSet::setAllocation(js::jit::LAllocation) 	js/src/jit/BacktrackingAllocator.cpp:155
35 	xul.dll 	js::jit::EnterBaselineAtBranch(JSContext*, js::InterpreterFrame*, unsigned char*) 	js/src/jit/BaselineJIT.cpp:263
36 	xul.dll 	js::jit::EnterBaselineAtBranch(JSContext*, js::InterpreterFrame*, unsigned char*) 	js/src/jit/BaselineJIT.cpp:263
37 	xul.dll 	JS::StructGCPolicy<JS::GCVector<JSObject*, 8, js::TempAllocPolicy> >::trace(JSTracer*, JS::GCVector<JSObject*, 8, js::TempAllocPolicy>*, char const*) 	obj-firefox/dist/include/js/GCPolicyAPI.h:87
38 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:1913
39 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:403
40 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:475
41 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:502
42 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:2919
43 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:403
44 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:475
45 	xul.dll 	js::fun_call(JSContext*, unsigned int, JS::Value*) 	js/src/jsfun.cpp:1157
46 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:457
47 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:502
48 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:165
49 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:333
50 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:445
51 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:502
52 	xul.dll 	js::jit::DoCallFallback 	js/src/jit/BaselineIC.cpp:4733
53 		@0xc33129e 	
54 		@0x1f2163f7 	
55 		@0xb7ce428 	
56 		@0xf5f3307 	
57 		@0x12486b3 	
58 		@0xf5f32e7 	
59 		@0xc330942 	
60 	xul.dll 	EnterBaseline 	js/src/jit/BaselineJIT.cpp:155
61 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:4194
62 	xul.dll 	js::jit::EnterBaselineMethod(JSContext*, js::RunState&) 	js/src/jit/BaselineJIT.cpp:195
63 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:393
64 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:475
65 	xul.dll 	js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) 	js/src/vm/Interpreter.cpp:521
66 	xul.dll 	JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) 	js/src/jsapi.cpp:2771
67 	xul.dll 	mozilla::dom::AutoJSAPI::~AutoJSAPI() 	dom/base/ScriptSettings.cpp:332
68 	xul.dll 	nsXPCComponents_Utils::CallFunctionWithAsyncStack(JS::Handle<JS::Value>, nsIStackFrame*, nsAString_internal const&, JSContext*, JS::MutableHandle<JS::Value>) 	js/xpconnect/src/XPCComponents.cpp:2709
69 	xul.dll 	NS_InvokeByIndex 	xpcom/reflect/xptcall/md/win32/xptcinvoke_asm_x86_msvc.asm:54
70 	xul.dll 	XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) 	js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1132
71 		@0x1247f87 	
72 		@0x22a8227f 	
73 		@0xc330942 	
74 	xul.dll 	EnterBaseline 	js/src/jit/BaselineJIT.cpp:155
75 	xul.dll 	js::jit::CanEnterBaselineMethod(JSContext*, js::RunState&) 	js/src/jit/BaselineJIT.cpp:399
76 	xul.dll 	js::jit::EnterBaselineMethod(JSContext*, js::RunState&) 	js/src/jit/BaselineJIT.cpp:195
77 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:393
78 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:475
79 	xul.dll 	js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) 	js/src/vm/Interpreter.cpp:521
80 	xul.dll 	PromiseReactionJob 	js/src/builtin/Promise.cpp:914
81 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:457
82 	xul.dll 	js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) 	js/src/vm/Interpreter.cpp:521
83 	xul.dll 	JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) 	js/src/jsapi.cpp:2830
84 	xul.dll 	nsXPCWrappedJS::Release() 	js/xpconnect/src/XPCWrappedJS.cpp:276
85 	xul.dll 	mozilla::dom::PromiseJobCallback::Call(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&) 	obj-firefox/dom/bindings/PromiseBinding.cpp:63
86 	xul.dll 	mozilla::dom::PromiseJobCallback::Call(mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JSCompartment*) 	obj-firefox/dist/include/mozilla/dom/PromiseBinding.h:176
87 	xul.dll 	PromiseJobRunnable::Run() 	xpcom/base/CycleCollectedJSContext.cpp:943
88 	xul.dll 	mozilla::dom::Promise::PerformMicroTaskCheckpoint() 	dom/promise/Promise.cpp:1056
89 	xul.dll 	mozilla::CycleCollectedJSContext::AfterProcessTask(unsigned int) 	xpcom/base/CycleCollectedJSContext.cpp:1395
97 	xul.dll 	nsAppStartup::Run() 	toolkit/components/startup/nsAppStartup.cpp:283
98 	xul.dll 	XREMain::XRE_mainRun() 	toolkit/xre/nsAppRunner.cpp:4483
99 	xul.dll 	XREMain::XRE_main(int, char** const, mozilla::XREAppData const&) 	toolkit/xre/nsAppRunner.cpp:4612
100 	xul.dll 	XRE_main 	toolkit/xre/nsAppRunner.cpp:4703
101 	firefox.exe 	do_main 	browser/app/nsBrowserApp.cpp:320
102 	firefox.exe 	wmain 	toolkit/xre/nsWindowsWMain.cpp:115
103 	firefox.exe 	__scrt_common_main_seh 	f:/dd/vctools/crt/vcstartup/src/startup/exe_common.inl:253
104 	kernel32.dll 	BaseThreadInitThunk 	
105 	ntdll.dll 	__RtlUserThreadStart 	
106 	ntdll.dll 	_RtlUserThreadStart
See Also: → 1329966
(In reply to Christian Riechers from comment #1)
> I've also seen that crash with TB 52 beta multiple times. Win 7, 32-bit.
> bp-b5d30cde-244c-4487-a9ef-ff0f52170207
> bp-16dc664e-a2ca-492a-a8b9-e1a072170208
> bp-b621899e-48cc-4608-9c4d-1807a2170210
> bp-85032c74-af79-4b7f-91df-35c712170211

Christian, do you have steps to reproduce?
I think the Firefox crashes are unrelated to Thunderbird.
Flags: needinfo?(chriechers)
I wish I had.
The only difference in Thunderbird usage recently: I was hanging out in the #sumo IRC channel on irc.mozilla.org for the Lithium migration.
Thunderbird then sometimes crashed upon shutdown (disconnected from IRC, but with the Chat tab left open), but not always. Whether it's related to chat or not, I have no idea.
Flags: needinfo?(chriechers)
(In reply to Christian Riechers from comment #3)
> I wish I had.
> The only difference in Thunderbird usage recently: I was hanging out in the
> #sumo IRC channel on irc.mozilla.org for the Lithium migration.
> Thunderbird then sometimes crashed upon shutdown (disconnected from IRC, but
> with the Chat tab left open), but not always. Whether it's related to chat
> or not, I have no idea.

This hang is in js probably related to chat tab.
(In reply to Christian Riechers from comment #3)

I do believe I have found the culprit for the TB shutdown hangs on Win 7.
I'm using Enigmail on all of my TB installations (Linux and Win7). A while ago I uninstalled gpg4win 2.3.3 (w/ gnupg 2.0.30) and replaced it with the raw gnupg 2.1.18 with support for ECC.
It seems this was when the shutdown hangs started. After all gnupg 2.1.18 did behave somewhat sluggish and regularly produced multiple orphan gpg.exe processes in Windows task manager.
I have now reverted to gpg4win 2.3.3 and haven't seen a TB shutdown hang since, neither w/ TB 47.7.1, nor with 52.0 beta3.
(In reply to Christian Riechers from comment #5)
Two more crashes.
1. TB 45.8 in connection with gnupg 2.1.19.
bp83aa19c1-acca-47b7-8149-2cb672170410

2. TB52 in connection with gnupg 2.0.30. This one doesn't really fit into the theory about gpg causing this, so it may be an entirely different cause.
bp0a22b3bd-836f-4915-bde7-985682170407

None of these are exactly reproducible (unfortunately).
(In reply to Christian Riechers from comment #6)
Just re-posting the crash IDs to make them clickable.
1. bp-83aa19c1-acca-47b7-8149-2cb672170410

2. bp-0a22b3bd-836f-4915-bde7-985682170407
Thunderbird 52.0, Windows 7, gpg 2.0.30 (gpg4win 2.3.3), Enigmail 1.9.6.1

Some more crashes prior to updating to TB 52.0.1.
bp-3d55a140-a473-453f-8fcb-186b62170411
bp-0224cbb8-4466-4daf-a898-041ad2170411
bp-f7ba4008-d4ed-4d81-90ce-b6a802170411
bp-83aa19c1-acca-47b7-8149-2cb672170410

The behavior slightly changed after updating to TB 52.0.1, see bug 556355.
Keywords: triage-deferred
Priority: -- → P3
No reports for this signature for Firefox and Thunderbird - sig likely changed. No idea what it changed to
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.