https://bugs.kde.org/show_bug.cgi?id=367480
Valerii Malov <jazzv...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jazzv...@gmail.com --- Comment #128 from Valerii Malov <jazzv...@gmail.com> --- This seems to be a somewhat multi-layered issue A lot of crashes seem to be caused by unsafe handling of LMDB calls, namely mdb_dbi_open, mdb_dbi_create and mdb_dbi_get aren't checked for errors other than MDB_NOTFOUND, which allows the application to proceed as normal even if the call erorred out, so the output buffers passed to those functions aren't filled out. What makes it worse is that those buffers aren't initalized in the baloo engine either, so we end up with random database handles and random value pointers. Then those random handles/pointers are passed somewhere else where they cause a crash. As a workardound I've added more strict error checks across baloo engine, if anyone wants to help with the review or testing: https://phabricator.kde.org/D18664 Posting in the most popular bug to expedite things (^: Hard to tell exactly which crashes on the bugtracker this addresses due to nature of crashes. This fixes crashes I've had on my machine, however this doesn't really address other issues. First, I have no idea why baloo makes so many calls that fail in the first place (corrupted database?). In my case after applying the fix on each run it's spending around 5-10 minutes using 1 core for 100%, spamming logs with a MDB_BAD_TXN error, and then calms down. From user point of view this is probably worse than crashing. Second, overall I think baloo engine needs some refactoring because it has a lot of duplicate code. Probably a proper way to fix this would be a safe wrapper around LMDB api. -- You are receiving this mail because: You are watching all bug changes.