Summary: | baloo_file_extractor crash on login | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-baloo | Reporter: | Zack Weinberg <zack+kbz> |
Component: | Baloo File Daemon | Assignee: | baloo-bugs-null |
Status: | REPORTED --- | ||
Severity: | crash | CC: | bartiffic, kredba, krishpandya93, rooksy, tagwerk19 |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.110.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Zack Weinberg
2023-10-16 13:29:37 UTC
I can't figure out how to restart baloo_file_extractor by hand after this crash. "balooctl enable" says the indexer is already running, which is not true per ps. If I run baloo_file_extractor in a terminal window, it hangs; strace tells me it's stuck in a loop reading the same 8-byte binary string ("\1\0\0\0\0\0\0\0") from an "eventfd", whatever that is, and "balooctl enable" or "balooctl check" doesn't kick it into doing anything useful. It doesn't have a manpage nor does it accept --help. I had "balooctl monitor" running the entire time and it only says Press ctrl+c to stop monitoring File indexer is running Idle Please advise how to troubleshoot further. This doesn't look right to me: $ ls -lh ~/.local/share/baloo total 2.3G -rw-r--r-- 1 zack zack 2.3G Oct 13 11:43 index -rw-r--r-- 1 zack zack 8.0K Oct 16 09:43 index-lock $ mdb_stat -n ~/.local/share/baloo/index Status of Main DB Tree depth: 1 Branch pages: 0 Leaf pages: 1 Overflow pages: 0 Entries: 12 It turns out I was using mdb_stat wrong, and the index _isn't_ a giant mostly-empty shell. However, mdb_copy -c also crashes inside memcpy when applied to the index file, and mdb_dump -apn prints /usr/bin/mdb_dump: index: MDB_BAD_TXN: Transaction must abort, has a child, or is invalid so I think it's probably safe to assume that the original crash is due to database corruption, and if there's any fix to be had, it belongs inside liblmdb. I have moved the bad index file out of the way and directed baloo to reindex from scratch, and I'll let you know if it actually trips up on any of my files. A reindex from scratch ran to completion with no issues. $ balooctl status Baloo File Indexer is running Indexer state: Idle Total files indexed: 143,490 Files waiting for content indexing: 0 Files failed to index: 0 Current size of index is 1.82 GiB I filed https://bugs.openldap.org/show_bug.cgi?id=10114 for the underlying database corruption problem. You could try Igor Poboiko's baloo-checkdb.py "consistency check" script: https://invent.kde.org/frameworks/baloo/uploads/bdc9f5f17fc96490b7bd4a22ac664843/baloo-checkdb.py There's a quick description here: https://invent.kde.org/frameworks/baloo/-/merge_requests/87#note_535270 Heads up about the need to load the whole database into memory. It waves a flag about possible corruptions, doesn't try to fix them. Sorry, I don't a step by step install instructions for Gentoo... $ python3 dl/baloo-checkdb.py .local/share/baloo.bad/index Loading DB from .local/share/baloo.bad/index... Traceback (most recent call last): File "/home/zack/dl/baloo-checkdb.py", line 265, in <module> db.check() File "/home/zack/dl/baloo-checkdb.py", line 235, in check self.load_all() File "/home/zack/dl/baloo-checkdb.py", line 52, in load_all self._load_posting() File "/home/zack/dl/baloo-checkdb.py", line 87, in _load_posting for (key, value) in txn.cursor(): lmdb.PageNotFoundError: mdb_cursor_get: MDB_PAGE_NOTFOUND: Requested page not found *** Bug 477404 has been marked as a duplicate of this bug. *** *** Bug 481105 has been marked as a duplicate of this bug. *** *** Bug 483373 has been marked as a duplicate of this bug. *** *** Bug 479881 has been marked as a duplicate of this bug. *** |