Crash in shutdownhang | GetPdbInfo

RESOLVED WORKSFORME

Status

()

Toolkit
Telemetry
--
critical
RESOLVED WORKSFORME
10 months ago
7 months ago

People

(Reporter: philipp, Unassigned)

Tracking

({crash, regression})

55 Branch
All
Windows
crash, regression
Points:
---

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox54 unaffected, firefox55 fix-optional, firefox56 affected, firefox57 fix-optional)

Details

(crash signature)

(Reporter)

Description

10 months ago
This bug was filed from the Socorro interface and is 
report bp-541d628c-5afa-49b6-b6ee-daa230170705.
=============================================================
Crashing Thread (0)
Frame 	Module 	Signature 	Source
0 	xul.dll 	GetPdbInfo 	tools/profiler/core/shared-libraries-win32.cc:53
1 	xul.dll 	SharedLibraryInfo::GetInfoForSelf() 	tools/profiler/core/shared-libraries-win32.cc:168
2 	xul.dll 	mozilla::Telemetry::GetStackAndModules(std::vector<unsigned int, std::allocator<unsigned int> > const&) 	toolkit/components/telemetry/Telemetry.cpp:2528
3 	xul.dll 	`anonymous namespace'::CreateJSThreadHangStats 	toolkit/components/telemetry/Telemetry.cpp:1503
4 	xul.dll 	`anonymous namespace'::TelemetryImpl::GetThreadHangStats 	toolkit/components/telemetry/Telemetry.cpp:1547
5 	xul.dll 	NS_InvokeByIndex 	xpcom/reflect/xptcall/md/win32/xptcinvoke_asm_x86_msvc.asm:54
6 	xul.dll 	XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) 	js/xpconnect/src/XPCWrappedNative.cpp:1282
7 	xul.dll 	XPC_WN_GetterSetter(JSContext*, unsigned int, JS::Value*) 	js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1018
8 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:470
9 	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:534
10 	xul.dll 	CallGetter 	js/src/vm/NativeObject.cpp:2084
11 	xul.dll 	GetPropertyOperation 	js/src/vm/Interpreter.cpp:193
12 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:2779
13 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
14 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
15 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
16 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
17 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
18 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
19 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
20 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
21 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
22 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
23 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
24 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
25 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
26 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
27 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
28 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
29 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
30 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
31 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
32 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
33 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
34 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
35 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
36 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
37 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
38 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
39 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
40 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
41 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
42 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
43 	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:534
44 	xul.dll 	js::fun_apply(JSContext*, unsigned int, JS::Value*) 	js/src/jsfun.cpp:1295
45 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:470
46 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
47 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:166
48 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:353
49 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
50 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
51 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
52 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
53 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
54 	xul.dll 	InternalCall 	js/src/vm/Interpreter.cpp:515
55 	xul.dll 	JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) 	js/src/jsapi.cpp:2832
56 	xul.dll 	nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) 	js/xpconnect/src/XPCWrappedJSClass.cpp:1214
57 	xul.dll 	nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) 	js/xpconnect/src/XPCWrappedJS.cpp:615
58 	xul.dll 	PrepareAndDispatch 	xpcom/reflect/xptcall/md/win32/xptcstubs.cpp:85
59 	xul.dll 	SharedStub 	xpcom/reflect/xptcall/md/win32/xptcstubs.cpp:112
60 	xul.dll 	nsTimerImpl::Fire(int) 	xpcom/threads/nsTimerImpl.cpp:524

these shutdownhang reports from windows installations are newly showing up since firefox 55 and subsequent versions.
I wonder if this could be a side-effect from bug 1346415, which decreased the treshold for collecting hang reports.
If that was the reason, i would expect the signature to be (very?) low volume before 55, then rise in 55.
(Other work like the off-main thread collection in bug 1369594 is Fx56+)

Michael, what do you think?
Flags: needinfo?(michael)

Comment 3

10 months ago
(In reply to Georg Fritzsche [:gfritzsche] from comment #1)
> I wonder if this could be a side-effect from bug 1346415, which decreased
> the treshold for collecting hang reports.
> If that was the reason, i would expect the signature to be (very?) low
> volume before 55, then rise in 55.
> (Other work like the off-main thread collection in bug 1369594 is Fx56+)
> 
> Michael, what do you think?

That would make sense, but this code which the crash stack above is referring to should be no longer running on the main thread since bug 1369594, so I would expect this crash signature should have disappeared since that patch landed.

I'm really bad at reading crash stats. Does it look like that has happened? If it hasn't I'd love to look at a crash report which occurred on a build with bug 1369594 in it.
Flags: needinfo?(michael)
(Reporter)

Comment 4

10 months ago
yes, the volume for this crash on nightly was pretty minuscule. there's only one report from 56.0a1 which was in build 20170614030206 before bug 1369594 has landed, so the issue may well have been fixed by that.
(In reply to Georg Fritzsche [:gfritzsche] from comment #5)
> This is hard to tell from Nightly.
> We'd have to wait for some days of Fx56 data from Beta until we could tell
> if bug 1369594 fixes it:

Do you mean we should wait until 56 is beta?
Flags: needinfo?(gfritzsche)
Unless Michael or others have ideas how to confirm or address this i'm not sure if there is a better next step here.
Flags: needinfo?(gfritzsche)
To be more clear:
While the hang data collection partially lives in Telemetry, i'm not actively tracking any work on it.
I think i also don't have enough context on this code to judge next steps.
status-firefox55: affected → fix-optional
There were no reports in the last month from any builds except 55 beta.
https://crash-stats.mozilla.com/signature/?release_channel=beta&signature=shutdownhang%20%7C%20GetPdbInfo&date=%3E%3D2017-08-13T10%3A28%3A24.000Z&date=%3C2017-09-13T10%3A28%3A24.000Z#summary

Closing.
Status: NEW → RESOLVED
Last Resolved: 7 months ago
status-firefox57: --- → fix-optional
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.