Summary: | krunner goes out-of-memory with desktop search plugin | ||
---|---|---|---|
Product: | [Unmaintained] Baloo | Reporter: | Martin Koller <kollix> |
Component: | General | Assignee: | Vishesh Handa <me> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alejandronova, arthur, auxsvr, cfeck, donolwenn, hrvoje.senjan, mombelli.mauro, nepomuk-bugs, nicolamori, p.r.worrall, valdikss |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/baloo/5bdb32928dc3eabf482676bb039104d1137cf1fb | Version Fixed In: | 4.13.1 |
Sentry Crash Report: | |||
Attachments: | result of $ valgrind -v --tool=massif --log-file=baloo baloosearch '=1.05*1.05' |
Description
Martin Koller
2014-03-17 14:36:34 UTC
More or less the same on 4.13 archlinux package, after typing "=1.05*1.05" krunner consume 2 GiO of memory. I cannot seem to reproduce this. Could one of you please try doing the same thing with the baloosearch tool? $ baloosearch '=1.05*1.05' and see if baloosearch spikes up in memory usage? If it does, then please run it under massif and attach the relevant report. $ valgrind --tool=massif baloosearch '=1.05*1.05' On Friday 25 April 2014 15:51:58 you wrote:
> I cannot seem to reproduce this. Could one of you please try doing the same
> thing with the baloosearch tool?
I can reproduce it with
baloosearch '=2*2'
but using
valgrind --tool=massif baloosearch '=2*2'
leads to OOM and the tool is getting killed ...
You probably have a very large number of terms in your xapian db which start with 2. Do you want to try and count? vlap:~/.local/share/baloo/file $ delve . -a -1 | g '^2' | wc -l On Friday 25 April 2014 16:29:17 you wrote:
> https://bugs.kde.org/show_bug.cgi?id=332253
>
> --- Comment #4 from Vishesh Handa <me@vhanda.in> ---
> You probably have a very large number of terms in your xapian db which start
> with 2. Do you want to try and count?
>
> vlap:~/.local/share/baloo/file $ delve . -a -1 | g '^2' | wc -l
>
That is not that large:
delve . -a -1 | grep '^2' | wc -l
164678
Created attachment 86267 [details]
result of $ valgrind -v --tool=massif --log-file=baloo baloosearch '=1.05*1.05'
*** Bug 334041 has been marked as a duplicate of this bug. *** *** Bug 334315 has been marked as a duplicate of this bug. *** Vishesh, does comment #5 / comment #6 provide the requested information? Please set the bug status. *** Bug 333947 has been marked as a duplicate of this bug. *** > delve . -a -1 | grep '^2' | wc -l
> 164678
That is quite large! I have an idea of how to reproduce this. I'll write a test case, and try to fix it before 13.1
Git commit 5bdb32928dc3eabf482676bb039104d1137cf1fb by Vishesh Handa. Committed on 05/05/2014 at 14:28. Pushed by vhanda into branch 'KDE/4.13'. XapianSearchStore: Split the string based on + * / - = When we receive a search string, we typically split it up by spaces and dots. Then each sub string is checked, if it is <= 3 characters, we use our own expansion scheme (imperfect) otherwise xapians. We need to use our own completion scheme because xapian's consumes too much memory in the case of very few characters. It basically expands the string to every possible completion result it has in its db, this results in loads and loads of memory being consumed. We now split based on some extra characters so that when searching for '2*2=' will not consume all your RAM in the case when your DB has many words starting with 2. FIXED-IN: 4.13.1 M +1 -1 src/xapian/xapiansearchstore.cpp http://commits.kde.org/baloo/5bdb32928dc3eabf482676bb039104d1137cf1fb Vishesh, I use KRunner to calculate simple math operations, and always put a = to tell KRunner to ignore every other runner while I'm calculating, but I'm getting bitten by this bug. I'll wait for 4.13.1, but is it possible to add an additional check to make the desktop search plugin ignore every expression with a leading "="? @Alejandro: Yes. That is possible. Would you mind filing another bug for it? I don't want to forget about it. It seems that this bug is present again in 4.13.2 (ArchLinux 64 bit). Typing a simple calculation like: =sqrt(12) my system goes immediately out-of-memory. On my machine oom-killer is able to kill krunner and recover the system, but krunner is almost unusable as a calculator. |