Assertion failure: mSearchesOngoing > 0 && mSearches.Contains(aSearch), at /REF-COMM-CENTRAL/comm-central/mozilla/toolkit/components/autocomplete/nsAutoCompleteController.cpp:771

RESOLVED INVALID

Status

()

Toolkit
Autocomplete
--
critical
RESOLVED INVALID
3 years ago
3 months ago

People

(Reporter: ISHIKAWA, Chiaki, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

3 years ago
With the local full debug build of C-C TB, I got a crash
(Debian GNU/linux 64-bit)

I was simply typing into the upper-right search text box
for "googl" and before I hit the final "e", the TB crashed.

This is repeatable.

Trace is as follows.

Filename was /tmp/ttt.dump

--DOMWINDOW == 27 (0xdb9fe0) [pid = 25658] [serial = 2] [outer = (nil)] [url = about:blank]
[25658] WARNING: Enabling vsync compositor: file /REF-COMM-CENTRAL/comm-central/mozilla/gfx/layers/ipc/CompositorParent.cpp, line 678
Assertion failure: mSearchesOngoing > 0 && mSearches.Contains(aSearch), at /REF-COMM-CENTRAL/comm-central/mozilla/toolkit/components/autocomplete/nsAutoCompleteController.cpp:771
#01: nsAutoCompleteController::OnSearchResult(nsIAutoCompleteSearch*, nsIAutoCompleteResult*) (/REF-COMM-CENTRAL/comm-central/mozilla/toolkit/components/autocomplete/nsAutoCompleteController.cpp:771 (discriminator 7))
#02: NS_InvokeByIndex (/REF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:178)
#03: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:1417)
#04: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1141)
#05: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)
#06: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:727)
#07: Interpret(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2956)
#08: js::RunScript(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:677)
#09: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:747)
#10: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:784)
#11: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/DirectProxyHandler.cpp:77)
#12: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#13: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:391)
#14: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:697)
#15: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)
#16: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:720)
#17: Interpret(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2956)
#18: js::RunScript(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:677)
#19: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:747)
#20: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:784)
#21: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/DirectProxyHandler.cpp:77)
#22: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#23: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:391)
#24: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:697)
#25: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)
#26: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:720)
#27: Interpret(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2956)
#28: js::RunScript(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:677)
#29: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:747)
#30: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:784)
#31: JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:4410)
#32: nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp:1212)
#33: nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJS.cpp:526)
#34: PrepareAndDispatch (/REF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:122)
#35: SharedStub (xptcstubs_x86_64_linux.cpp:?)

Program /REF-OBJ-DIR/objdir-tb3/dist/bin/thunderbird-bin (pid = 25658) received signal 11.
Stack:
#01: AsmJSFaultHandler(int, siginfo_t*, void*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/asmjs/AsmJSSignalHandlers.cpp:1140)
#02: __restore_rt (sigaction.c:?)
#03: nsAutoCompleteController::OnSearchResult(nsIAutoCompleteSearch*, nsIAutoCompleteResult*) (/REF-COMM-CENTRAL/comm-central/mozilla/toolkit/components/autocomplete/nsAutoCompleteController.cpp:771 (discriminator 7))
#04: NS_InvokeByIndex (/REF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:178)
#05: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:1417)
#06: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1141)
#07: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)
#08: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:727)
#09: Interpret(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2956)
#10: js::RunScript(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:677)
#11: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:747)
#12: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:784)
#13: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/DirectProxyHandler.cpp:77)
#14: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#15: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:391)
#16: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:697)
#17: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)
#18: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:720)
#19: Interpret(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2956)
#20: js::RunScript(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:677)
#21: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:747)
#22: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:784)
#23: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/DirectProxyHandler.cpp:77)
#24: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/CrossCompartmentWrapper.cpp:289)
#25: js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:391)
#26: js::proxy_Call(JSContext*, unsigned int, JS::Value*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/proxy/Proxy.cpp:697)
#27: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)
#28: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:720)
#29: Interpret(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2956)
#30: js::RunScript(JSContext*, js::RunState&) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:677)
#31: js::Invoke(JSContext*, JS::CallArgs, js::MaybeConstruct) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:747)
#32: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:784)
#33: JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/REF-COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:4410)
#34: nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp:1212)
#35: nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/REF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJS.cpp:526)
#36: PrepareAndDispatch (/REF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:122)
#37: SharedStub (xptcstubs_x86_64_linux.cpp:?)
Sleeping for 300 seconds.
Type 'gdb /REF-OBJ-DIR/objdir-tb3/dist/bin/thunderbird-bin 25658' to attach your debugger to this thread.
Done sleeping...
ishikawa@ip030:/REF-COMM-CENTRAL/work-dir$

Updated

3 years ago
Component: Search → Autocomplete
Product: Thunderbird → Toolkit
(Reporter)

Comment 1

3 years ago
I have no idea why, but this morning I test the same steps, now TB C-C works just fine?
Maybe I should run valgrind or something.

TIA
that assertion usually means the search implementation is misusing the controller (like trying to add a result after the search has been stopped)
I've seen this multiple times in Firefox on Linux, trying to log in to treeherder.mozilla.org via persona (for which I have two email addresses registered).  I saw it twice today and once on July 7.  (It's a child process crash.)

Comment 4

2 years ago
Same here when I try to login into https://github.com/login?return_to=%2Fhoxu%2Fgitstats (seamonkey pre-filled my password string but the Login line is empty because I probably logged in the past user a username and under an email address). So, while typing in my username ... the search starts to do its work and it kills my seamonkey (happened twice just now).

Assertion failure: mSearchesOngoing > 0 && mSearches.Contains(aSearch), at /var/tmp/portage/www-client/seamonkey-2.39/work/seamonkey-2.39/mozilla/toolkit/components/autocomplete/nsAutoCompleteController.cpp:803
#01: ???[/usr/lib64/seamonkey/libxul.so +0x546a3e6]
#02: ???[/usr/lib64/seamonkey/libxul.so +0x5473e7e]
#03: NS_InvokeByIndex[/usr/lib64/seamonkey/libxul.so +0x12f3fc5]
#04: ???[/usr/lib64/seamonkey/libxul.so +0x2041df5]
#05: ???[/usr/lib64/seamonkey/libxul.so +0x203f736]
#06: ???[/usr/lib64/seamonkey/libxul.so +0x2022944]
#07: ???[/usr/lib64/seamonkey/libxul.so +0x202c1d9]
#08: ???[/usr/lib64/seamonkey/libxul.so +0x5eb27cd]
#09: ???[/usr/lib64/seamonkey/libxul.so +0x5e719e5]
#10: ???[/usr/lib64/seamonkey/libxul.so +0x5e812cd]
#11: ???[/usr/lib64/seamonkey/libxul.so +0x5e71632]
#12: ???[/usr/lib64/seamonkey/libxul.so +0x5e71aaa]
#13: ???[/usr/lib64/seamonkey/libxul.so +0x6499b2b]
#14: ???[/usr/lib64/seamonkey/libxul.so +0x5eb27cd]
#15: ???[/usr/lib64/seamonkey/libxul.so +0x5e719e5]
#16: ???[/usr/lib64/seamonkey/libxul.so +0x5e71e96]
#17: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const[/usr/lib64/seamonkey/libxul.so +0x65714fc]
#18: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const[/usr/lib64/seamonkey/libxul.so +0x656e867]
#19: ???[/usr/lib64/seamonkey/libxul.so +0x65755bc]
#20: js::proxy_Call(JSContext*, unsigned int, JS::Value*)[/usr/lib64/seamonkey/libxul.so +0x6576bd7]
#21: ???[/usr/lib64/seamonkey/libxul.so +0x5eb27cd]
#22: ???[/usr/lib64/seamonkey/libxul.so +0x5e718f2]
#23: ???[/usr/lib64/seamonkey/libxul.so +0x5e71e96]
#24: ???[/usr/lib64/seamonkey/libxul.so +0x61271eb]
#25: ??? (???:???)

Program seamonkey (pid = 14504) received signal 11.
Stack:
#01: ???[/usr/lib64/seamonkey/libxul.so +0x5c65596]
#02: ???[/lib64/libpthread.so.0 +0x10680]
#03: ???[/usr/lib64/seamonkey/libxul.so +0x546a3eb]
#04: ???[/usr/lib64/seamonkey/libxul.so +0x5473e7e]
#05: NS_InvokeByIndex[/usr/lib64/seamonkey/libxul.so +0x12f3fc5]
#06: ???[/usr/lib64/seamonkey/libxul.so +0x2041df5]
#07: ???[/usr/lib64/seamonkey/libxul.so +0x203f736]
#08: ???[/usr/lib64/seamonkey/libxul.so +0x2022944]
#09: ???[/usr/lib64/seamonkey/libxul.so +0x202c1d9]
#10: ???[/usr/lib64/seamonkey/libxul.so +0x5eb27cd]
#11: ???[/usr/lib64/seamonkey/libxul.so +0x5e719e5]
#12: ???[/usr/lib64/seamonkey/libxul.so +0x5e812cd]
#13: ???[/usr/lib64/seamonkey/libxul.so +0x5e71632]
#14: ???[/usr/lib64/seamonkey/libxul.so +0x5e71aaa]
#15: ???[/usr/lib64/seamonkey/libxul.so +0x6499b2b]
#16: ???[/usr/lib64/seamonkey/libxul.so +0x5eb27cd]
#17: ???[/usr/lib64/seamonkey/libxul.so +0x5e719e5]
#18: ???[/usr/lib64/seamonkey/libxul.so +0x5e71e96]
#19: js::DirectProxyHandler::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const[/usr/lib64/seamonkey/libxul.so +0x65714fc]
#20: js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const[/usr/lib64/seamonkey/libxul.so +0x656e867]
#21: ???[/usr/lib64/seamonkey/libxul.so +0x65755bc]
#22: js::proxy_Call(JSContext*, unsigned int, JS::Value*)[/usr/lib64/seamonkey/libxul.so +0x6576bd7]
#23: ???[/usr/lib64/seamonkey/libxul.so +0x5eb27cd]
#24: ???[/usr/lib64/seamonkey/libxul.so +0x5e718f2]
#25: ???[/usr/lib64/seamonkey/libxul.so +0x5e71e96]
#26: ???[/usr/lib64/seamonkey/libxul.so +0x61271eb]
#27: ??? (???:???)

Comment 5

3 months ago
Closing the bug, because the assertion is valid and consumers are wrong. We should fix the consumers.
Status: NEW → RESOLVED
Last Resolved: 3 months ago
Resolution: --- → INVALID

Comment 6

3 months ago
So why do you close the bug with a good stacktrace instead of giving links to bugs with the broken consumers? I would expect this bug would be closed after all consumers are fixed. What am I missing?

Comment 7

3 months ago
There's no actual bug to fix in toolkit / autocomplete, bugs should be filed in the respective components and there's no need of a tracking bug for this case.
If you prefer, we can move this bug to the Thunderbird product.
(Reporter)

Comment 8

3 months ago
(In reply to Marco Bonardo [::mak] from comment #7)
> There's no actual bug to fix in toolkit / autocomplete, bugs should be filed
> in the respective components and there's no need of a tracking bug for this
> case.
> If you prefer, we can move this bug to the Thunderbird product.

Comment 3 mentions "I've seen this multiple times in Firefox on Linux", and comment 4 suggests SeaMonkey also had an issue.
So it is NOT a TB-specific bug, I think. 
I am not sure which component/product should be handling this.

TIA

Comment 9

3 months ago
The stacks may tell which component is misbehaving, or in the worst case one can DumpJSStack() from a debugger.
Eventually we could also add an xpc->DebugDumpJSStack(false, false, false); call before the assertion in autocomplete.
But likely the simplest way is checking which autocomplete field you were touching when this happened.
A bug should be filed in the respective component. For example, the tags autocomplete in Places is broken, and I'll now file a bug to cover that.
I suggested moving to TB just because there's no generic product for comm-central, Seamonkey is also a fine destination. I'm just saying this is not a toolkit/autocomplete bug.
You need to log in before you can comment on or make changes to this bug.