https://bugs.kde.org/show_bug.cgi?id=435161
Bug ID: 435161
Summary: Baloo crashes with ASSERT in metadatamover.cpp
Product: frameworks-baloo
Version: 5.80.0
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Baloo File Daemon
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Target Milestone: ---
SUMMARY
Another Baloo assert crash, this time:
----8<----
Mar 30 19:04:59 vesho baloo_file[2358496]: kf.baloo: Failed to create watch for
"/home/odeda/.cache/mozilla/firefox/i1m74zv1.default/safebrowsing-updating/" No
such file or directory
Mar 30 19:04:59 vesho baloo_file[2358496]: kf.baloo:
"/home/odeda/.cache/mozilla/firefox/i1m74zv1.default/safebrowsing-updating/" ->
"/home/odeda/.cache/mozilla/firefox/i1m74zv1.default/safebrowsing-backup/"
Mar 30 19:04:59 vesho baloo_file[2358496]: ASSERT: "from[from.size()-1] !=
QLatin1Char('/')" in file [...]src/file/metadatamover.cpp, line 80
----8<----
Looks like `MetadataMover::updateMetadata()` (that is called from
`MetadataMover::moveFileMetadata()` is called for a directory.
STEPS TO REPRODUCE
I'm not really sure of the process - it has happened during first scan, but it
looks like a directory being moved and I think that it was moved before it was
indexed, but I'm not sure of the exact process. Regardless, the directory no
longer exists - I think it was moved than deleted before baloo got a chance to
index it, but I don't think that is related to the problem.
OBSERVED RESULT
baloo_file crashes and indexing stops.
EXPECTED RESULT
It shouldn't crash
SOFTWARE/OS VERSIONS
Linux/KDE Plasma:
(available in About System)
KDE Plasma Version: 5.21.80
KDE Frameworks Version: 5.81.0
Qt Version: 5.15.2
ADDITIONAL INFORMATION
It looks like the issue is in `KInotify::slotEvent()`, which emits
`KInotify::moved` and hits `FileWatch::slotFileMoved`, but looking at the code:
----8<----
// update the path cache
if (event->mask & IN_ISDIR) {
// ... stuff in case event is for a directory
}
// qCDebug(BALOO) << oldPath << "EventMoveTo" << path;
Q_EMIT moved(QFile::decodeName(oldPath), fname);
----8<----
Which means that `KInotify::moved` is emitted for both directories and files,
but `FileWatch::slotFileMoved` expects only files and enforces that with an
assert.
--
You are receiving this mail because:
You are watching all bug changes.