Closed Bug 1407147 Opened 7 years ago Closed 7 years ago

Crash in strlen | libvoikko-1.dll@0x1fe40 with Finnish spellchecker addon

Categories

(External Software Affecting Firefox :: Other, defect, P2)

x86_64
Windows
defect

Tracking

(firefox-esr52 wontfix, firefox56 disabled, firefox57 disabled, firefox58 disabled)

RESOLVED FIXED
Tracking Status
firefox-esr52 --- wontfix
firefox56 --- disabled
firefox57 --- disabled
firefox58 --- disabled

People

(Reporter: philipp, Unassigned)

References

Details

(Keywords: crash)

Crash Data

This bug was filed from the Socorro interface and is 
report bp-5b2ed882-4736-49e9-9f05-745690170819.
=============================================================
Crashing Thread (0)
Frame 	Module 	Signature 	Source
0 	msvcrt.dll 	strlen 	
Ø 1 	libvoikko-1.dll 	libvoikko-1.dll@0x1fe40 	
Ø 2 	libvoikko-1.dll 	libvoikko-1.dll@0x201cb 	
Ø 3 	libvoikko-1.dll 	libvoikko-1.dll@0x90687 	
Ø 4 	libvoikko-1.dll 	libvoikko-1.dll@0x1a73c 	
5 		@0x6943ff2e4f 	
Ø 6 	libvoikko-1.dll 	libvoikko-1.dll@0xbf74 	
Ø 7 	libvoikko-1.dll 	libvoikko-1.dll@0x435d1 	
Ø 8 	libvoikko-1.dll 	libvoikko-1.dll@0xc954 	
9 	xul.dll 	js::detail::HashTable<js::InitialShapeEntry const, js::HashSet<js::InitialShapeEntry, js::InitialShapeEntry, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::relookupOrAdd<js::InitialShapeEntry const&>(js::detail::HashTable<js::InitialShapeEntry const, js::HashSet<js::InitialShapeEntry, js::InitialShapeEntry, js::SystemAllocPolicy>::SetOps, js::SystemAllocPolicy>::AddPtr&, js::InitialShapeEntry::Lookup const&, js::InitialShapeEntry const&) 	obj-firefox/dist/include/js/HashTable.h:1873
10 		@0x21aa2371d87 	
11 	xul.dll 	JS::Zone::getUniqueId(js::gc::Cell*, unsigned __int64*) 	js/src/gc/Zone.h:518
12 		@0x21aa23621f7 	
13 	xul.dll 	js::ctypes::ImplicitConvert 	js/src/ctypes/CTypes.cpp:3505
14 	xul.dll 	js::ctypes::ConvertArgument 	js/src/ctypes/CTypes.cpp:7005
15 	xul.dll 	js::ctypes::FunctionType::Call 	js/src/ctypes/CTypes.cpp:7143
16 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
17 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:166
18 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:353
19 	xul.dll 	xpc::AddonWrapper<js::CrossCompartmentWrapper>::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/xpconnect/wrappers/AddonWrapper.cpp:156
20 	xul.dll 	js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Proxy.cpp:479
21 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
22 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
23 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
24 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
25 	xul.dll 	InternalConstruct 	js/src/vm/Interpreter.cpp:563
26 	xul.dll 	js::Construct(JSContext*, JS::Handle<JS::Value>, js::AnyConstructArgs const&, JS::Handle<JS::Value>, JS::MutableHandle<JSObject*>) 	js/src/vm/Interpreter.cpp:612
27 	xul.dll 	js::Wrapper::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:185
28 	xul.dll 	js::CrossCompartmentWrapper::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:373
29 	xul.dll 	js::Proxy::construct(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Proxy.cpp:499
30 	xul.dll 	js::proxy_Construct(JSContext*, unsigned int, JS::Value*) 	js/src/proxy/Proxy.cpp:748
31 	xul.dll 	InternalConstruct 	js/src/vm/Interpreter.cpp:573
32 	xul.dll 	js::ConstructFromStack(JSContext*, JS::CallArgs const&) 	js/src/vm/Interpreter.cpp:599
33 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3056
34 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
35 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
36 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:166
37 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:353
38 	xul.dll 	xpc::AddonWrapper<js::CrossCompartmentWrapper>::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/xpconnect/wrappers/AddonWrapper.cpp:156
39 	xul.dll 	js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Proxy.cpp:479
40 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
41 	xul.dll 	JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) 	js/src/jsapi.cpp:2832
42 	xul.dll 	nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) 	js/xpconnect/src/XPCWrappedJSClass.cpp:1215
43 	xul.dll 	nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) 	js/xpconnect/src/XPCWrappedJS.cpp:615
44 	xul.dll 	PrepareAndDispatch 	xpcom/reflect/xptcall/md/win32/xptcstubs_x86_64.cpp:174
45 	xul.dll 	SharedStub 	xpcom/reflect/xptcall/md/win32/xptcstubs_asm_x86_64.asm:57
46 	xul.dll 	nsComponentManagerImpl::CreateInstanceByContractID(char const*, nsISupports*, nsID const&, void**) 	xpcom/components/nsComponentManager.cpp:1104
47 	xul.dll 	nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**) 	xpcom/components/nsComponentManager.cpp:1460
48 	xul.dll 	nsCOMPtr_base::assign_from_gs_contractid_with_error(nsGetServiceByContractIDWithError const&, nsID const&) 	xpcom/base/nsCOMPtr.cpp:106
49 	xul.dll 	mozSpellChecker::GetEngineList(nsCOMArray<mozISpellCheckingEngine>*) 	extensions/spellcheck/src/mozSpellChecker.cpp:571
50 	xul.dll 	mozSpellChecker::GetDictionaryList(nsTArray<nsString>*) 	extensions/spellcheck/src/mozSpellChecker.cpp:325
51 	xul.dll 	mozilla::dom::ContentParent::NotifyUpdatedDictionaries() 	dom/ipc/ContentParent.cpp:4195
52 	xul.dll 	mozHunspell::LoadDictionaryList(bool) 	extensions/spellcheck/hunspell/glue/mozHunspell.cpp:410
53 	xul.dll 	mozHunspell::AddDirectory(nsIFile*) 	extensions/spellcheck/hunspell/glue/mozHunspell.cpp:599
54 	xul.dll 	XPTC__InvokebyIndex 	xpcom/reflect/xptcall/md/win32/xptcinvoke_asm_x86_64.asm:97
55 		@0x21aa3723abf 	
56 	xul.dll 	XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) 	js/xpconnect/src/XPCWrappedNative.cpp:1282
57 	xul.dll 	XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) 	js/xpconnect/src/XPCWrappedNativeJSOps.cpp:983
58 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:470
59 	xul.dll 	Interpret 	js/src/vm/Interpreter.cpp:3064
60 	xul.dll 	js::RunScript(JSContext*, js::RunState&) 	js/src/vm/Interpreter.cpp:410
61 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:488
62 	xul.dll 	js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Wrapper.cpp:166
63 	xul.dll 	js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/CrossCompartmentWrapper.cpp:353
64 	xul.dll 	js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) 	js/src/proxy/Proxy.cpp:479
65 	xul.dll 	js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) 	js/src/vm/Interpreter.cpp:452
66 	xul.dll 	js::jit::DoCallFallback 	js/src/jit/BaselineIC.cpp:2453
67 		@0x2d7bcbf6a2d 

this is a win64 only crash on windows 8 & 10 with the finish spellchecker addon from https://addons.mozilla.org/firefox/addon/finnish-spellchecker/ 

many user comments say that they crashed immediately after updating to a 64bit version. since the addon is not a webextension, those crashes will probably go away.
not sure what are the options in the meantime (not migrating finish users to win64 or maybe it's even possible to selectively mark the addon as incompatible to 64bit)?
Component: General → Untriaged
Product: Toolkit → Firefox
https://addons.mozilla.org/en-US/firefox/addon/finnish-spellchecker/

Jorge, can we mark this Finnish Spellchecker add-on as not compatible with Firefox 56? It is crashing for Win64 Firefox users. We just started migrating some 32-bit users to 64-bit, so more users will be hitting this crash.

I think this is the GitHub repo for the Voikko spellchecker. This repo hasn't been updated since 2016, but other Voikko repos are still active so there

https://github.com/voikko/mozvoikko
Crash Signature: [@ strlen | libvoikko-1.dll@0x1fe40] → [@ libvoikko-1.dll@0xc6fb] [@ strlen | libvoikko-1.dll@0x1fe40]
Component: Untriaged → Other
Flags: needinfo?(jorge)
Product: Firefox → External Software Affecting Firefox
Version: 55 Branch → unspecified
I added the add-on to the compatibility override list, which should make it appear as incompatible and disable it. Let me know if the crashes don't decrease, and we'll proceed with a block.
Flags: needinfo?(jorge)
(In reply to Henri Sivonen (:hsivonen) from comment #2)
> Pinged the voikko development list:
> http://lists.puimula.org/pipermail/libvoikko/2017-October/000919.html

Thanks!

(In reply to Jorge Villalobos [:jorgev] from comment #3)
> I added the add-on to the compatibility override list, which should make it
> appear as incompatible and disable it. Let me know if the crashes don't
> decrease, and we'll proceed with a block.

Thanks! I didn't realize we had the option of just disabling the add-on instead of blocking it. Since this is a legacy add-on, it won't be compatible with Firefox 57 anyway.
Resolving this bug as fixed because Jorge disabled the crashing add-on.
Priority: -- → P2
Crash Signature: [@ libvoikko-1.dll@0xc6fb] [@ strlen | libvoikko-1.dll@0x1fe40] → [@ libvoikko-1.dll@0xc237] [@ libvoikko-1.dll@0xc6fb] [@ strlen | libvoikko-1.dll@0x1fe40] [@ strlen | libvoikko-1.dll@0x201cb]
Status: NEW → RESOLVED
Crash Signature: [@ libvoikko-1.dll@0xc237] [@ libvoikko-1.dll@0xc6fb] [@ strlen | libvoikko-1.dll@0x1fe40] [@ strlen | libvoikko-1.dll@0x201cb] → [@ libvoikko-1.dll@0xc237] [@ libvoikko-1.dll@0xc6fb] [@ libvoikko-1.dll@0x1e333] [@ strlen | libvoikko-1.dll@0x1fe40] [@ strlen | libvoikko-1.dll@0x201cb]
Closed: 7 years ago
Resolution: --- → FIXED
According to the mailing list the bug was fixed in September 2015, but the latest available extension version was built in August 2015 (using libvoikko released in September 2014). So, also an update to the extension would do if there is a maintainer available.
(In reply to Jorge Villalobos [:jorgev] from comment #3)
> I added the add-on to the compatibility override list, which should make it
> appear as incompatible and disable it. Let me know if the crashes don't
> decrease, and we'll proceed with a block.

Jorge, which Firefox versions did you mark as incompatible with the Finnish Spellchecker add-on? We have had at least 160 crash reports from Firefox 56.0.1 after you added the add-on to the compatibility override list (October 13):

https://crash-stats.mozilla.com/search/?cpu_arch=amd64&signature=~libvoikko&product=Firefox&platform=Windows&date=%3E%3D2017-10-14T23%3A18%3A00.000Z&_sort=-date&_facets=signature&_facets=version&_columns=date&_columns=signature&_columns=version&_columns=email#facet-version
Flags: needinfo?(jorge)
I checked a dozen random crash reports and they all had the Finnish Spellchecker (fi@dictionaries.addons.mozilla.org) version 2.1.0, the latest version.

I think we should block the add-on for Firefox 56.0 and later.
Yes, those versions should have been covered by the compatibility override. I'll add a block tomorrow, since I need another admin to confirm it.
Flags: needinfo?(jorge)
The block is now staged. Andreas, please review and push live.
Flags: needinfo?(awagner)
The block is now live.
Flags: needinfo?(awagner)
Thanks! I will continue to monitor the spellchecker crash volume.
Depends on: 1412264
You need to log in before you can comment on or make changes to this bug.