startup crash in mozilla::Addon::FullPath

VERIFIED FIXED in Firefox 55

Status

()

Toolkit
Add-ons Manager
P1
critical
VERIFIED FIXED
5 months ago
3 months ago

People

(Reporter: philipp, Assigned: kmag)

Tracking

({crash, regression})

55 Branch
mozilla55
crash, regression
Points:
---

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox53 unaffected, firefox54 unaffected, firefox55 verified)

Details

(Whiteboard: [triaged][tbird crash], crash signature)

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(1 attachment)

(Reporter)

Description

5 months ago
This bug was filed from the Socorro interface and is 
report bp-4c860ee2-b92e-4581-855a-51efd0170519.
=============================================================
Crashing Thread (0)
Frame 	Module 	Signature 	Source
0 	xul.dll 	mozilla::Addon::FullPath() 	toolkit/mozapps/extensions/AddonManagerStartup.cpp:392
1 	xul.dll 	mozilla::Addon::UpdateLastModifiedTime() 	toolkit/mozapps/extensions/AddonManagerStartup.cpp:413
2 	xul.dll 	mozilla::AddonManagerStartup::ReadStartupData(JSContext*, JS::MutableHandle<JS::Value>) 	toolkit/mozapps/extensions/AddonManagerStartup.cpp:539
3 	xul.dll 	XPTC__InvokebyIndex 	xpcom/reflect/xptcall/md/win32/xptcinvoke_asm_x86_64.asm:97
4 		@0x21ca24c3fff 	
5 	xul.dll 	XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) 	js/xpconnect/src/XPCWrappedNativeJSOps.cpp:982
6 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:470
7 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
8 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
9 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
10 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
11 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
12 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
13 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
14 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
15 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
16 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
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 	js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) 	js/src/vm/Interpreter.cpp:534
20 	xul.dll 	js::fun_apply(JSContext*, unsigned int, JS::Value*) 	js/src/jsfun.cpp:1295
21 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:470
22 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:166
23 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:353
24 	xul.dll 	js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Proxy.cpp:479
25 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
26 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
27 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
28 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
29 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
30 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
31 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
32 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
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 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:166
36 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:353
37 	xul.dll 	js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Proxy.cpp:479
38 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
39 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3028
40 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
41 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
42 	xul.dll 	JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) 	js/src/jsapi.cpp:2832
43 	xul.dll 	nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) 	js/xpconnect/src/XPCWrappedJSClass.cpp:1214
44 	xul.dll 	nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) 	js/xpconnect/src/XPCWrappedJS.cpp:615
45 	xul.dll 	PrepareAndDispatch 	xpcom/reflect/xptcall/md/win32/xptcstubs_x86_64.cpp:174
46 	xul.dll 	SharedStub 	xpcom/reflect/xptcall/md/win32/xptcstubs_asm_x86_64.asm:57
47 	xul.dll 	nsXREDirProvider::DoStartup() 	toolkit/xre/nsXREDirProvider.cpp:1027
48 	xul.dll 	XREMain::XRE_mainRun() 	toolkit/xre/nsAppRunner.cpp:4385
49 	xul.dll 	XREMain::XRE_main(int, char** const, mozilla::BootstrapConfig const&) 	toolkit/xre/nsAppRunner.cpp:4730
50 	xul.dll 	XRE_main(int, char** const, mozilla::BootstrapConfig const&) 	toolkit/xre/nsAppRunner.cpp:4823
51 	firefox.exe 	NS_internal_main(int, char**, char**) 	browser/app/nsBrowserApp.cpp:309
52 	firefox.exe 	wmain 	toolkit/xre/nsWindowsWMain.cpp:115
53 	firefox.exe 	__scrt_common_main_seh 	f:/dd/vctools/crt/vcstartup/src/startup/exe_common.inl:253
Ø 54 	kernel32.dll 	kernel32.dll@0x8363 	
55 	ntdll.dll 	RtlUserThreadStart

this is a startup crash regressing on 55.0a1 with MOZ_RELEASE_ASSERT(file) added in bug 1358846. user comments talk about sharing the same profile between windows & linux.
Yes, sharing the same profile between Windows and Linux would cause that, since the paths would not be valid on both platforms.
Comment hidden (mozreview-request)
Incidentally, this is something we shouldn't allow.

Updated

5 months ago
Assignee: nobody → kmaglione+bmo
Priority: -- → P1
Whiteboard: triaged

Comment 4

5 months ago
mozreview-review
Comment on attachment 8872079 [details]
Bug 1368232: Handle invalid paths in addonStartup.json when profiles are shared between OSes.

https://reviewboard.mozilla.org/r/143584/#review148094
Attachment #8872079 - Flags: review?(rhelmer) → review+

Comment 5

5 months ago
Pushed by maglione.k@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/cdf3e1dfc190
Handle invalid paths in addonStartup.json when profiles are shared between OSes. r=rhelmer

Updated

5 months ago
Summary: Crash in mozilla::Addon::FullPath → startup crash in mozilla::Addon::FullPath
Whiteboard: triaged → [triaged][tbird crash]
https://hg.mozilla.org/mozilla-central/rev/cdf3e1dfc190
Status: NEW → RESOLVED
Last Resolved: 5 months ago
status-firefox55: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55

Comment 7

5 months ago
(In reply to Kris Maglione [:kmag] (busy; behind on reviews) from comment #3)
> Incidentally, this is something we shouldn't allow.

You will upset a non-zero number of people. I've been doing this for over a decade. Google "share a Firefox profile between Windows and Linux", there are (mostly old) articles on how to do this at mozillazine, support.mozilla.org, Lifehacker, etc.

I urge you to create a bug for this and to proactively communicate the change in behavior. I suggest with a startup alert "It appears you're sharing a profile between operating systems. This will be disallowed in a future Firefox release. See bug xxxx"

Thanks for addressing my crash. Can you say which add-on is breaking?
status-firefox-esr52: --- → unaffected
Flags: qe-verify+
I have reproduced this crash on Nightly 55.0a1 from 2017-05-27 on Win 10 x64.
- https://crash-stats.mozilla.com/report/index/26403fa6-31b9-4fda-9e81-df73a1170712

This is verified fixed on 55.0b8 (20170710085521) using Windows 10 x64.
Status: RESOLVED → VERIFIED
status-firefox55: fixed → verified
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.