out=<synthetic pointer>: 0x1f57b82 "e/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Doku"..., ba=<synthetic pointer>...) at /usr/include/qt5/QtCore/qstringbuilder.h:353 353 while (a != end) (gdb) #0 QConcatenable<QByteArray>::appendTo ( out=<synthetic pointer>: 0x1f57b82 "e/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Doku"..., ba=<synthetic pointer>...) at /usr/include/qt5/QtCore/qstringbuilder.h:353 […] Here, in ~/wine/prog/drive_c, Meine Dokumente is a symlink to ~/. The parameter implies, that the concatenation is going on for quite some time by now.
Full backtrace: (gdb) #0 QConcatenable<QByteArray>::appendTo ( out=<synthetic pointer>: 0x2569886 "e/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Doku"..., ba=<synthetic pointer>...) at /usr/include/qt5/QtCore/qstringbuilder.h:354 #1 QConcatenable<QStringBuilder<QStringBuilder<QByteArray, char>, QByteArray> >::appendTo<char> ( out=<synthetic pointer>: 0x2569886 "e/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Dokumente/lib/wine/prog/drive_c/users/user/Meine Doku"..., p=...) at /usr/include/qt5/QtCore/qstringbuilder.h:372 #2 QStringBuilder<QStringBuilder<QByteArray, char>, QByteArray>::convertTo<QByteArray> (this=<optimized out>) at /usr/include/qt5/QtCore/qstringbuilder.h:118 #3 QStringBuilder<QStringBuilder<QByteArray, char>, QByteArray>::operator QByteArray (this=<optimized out>) at /usr/include/qt5/QtCore/qstringbuilder.h:131 #4 Baloo::DocumentUrlDB::get (this=this@entry=0x7ffd9a75ece0, docId=docId@entry=12580650699783686) at /var/tmp/portage/kde-frameworks/baloo-5.33.0/work/baloo-5.33.0/src/engine/documenturldb.cpp:145 #5 0x00007f5767eb76e1 in Baloo::Transaction::documentUrl (this=<optimized out>, id=id@entry=12580650699783686) at /var/tmp/portage/kde-frameworks/baloo-5.33.0/work/baloo-5.33.0/src/engine/transaction.cpp:104 #6 0x00000000004089b8 in Baloo::App::processNextFile (this=0x7ffd9a75f340) at /var/tmp/portage/kde-frameworks/baloo-5.33.0/work/baloo-5.33.0/src/file/extractor/app.cpp:85 #7 0x00007f5766d22646 in QSingleShotTimer::timerEvent(QTimerEvent*) () from /usr/lib64/libQt5Core.so.5 #8 0x00007f5766d17a1b in QObject::event(QEvent*) () from /usr/lib64/libQt5Core.so.5 #9 0x00007f57675074bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #10 0x00007f576750e659 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQt5Widgets.so.5 #11 0x00007f5766cf103a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5 #12 0x00007f5766d3b773 in QTimerInfoList::activateTimers() () from /usr/lib64/libQt5Core.so.5 #13 0x00007f5766d3bce4 in timerSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/libQt5Core.so.5 #14 0x00007f5763ae8177 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #15 0x00007f5763ae83a8 in g_main_context_iterate.isra () from /usr/lib64/libglib-2.0.so.0 #16 0x00007f5763ae844c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #17 0x00007f5766d3c0ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5 #18 0x00007f5766cf00ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5 #19 0x00007f5766cf784d in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5 #20 0x0000000000407acc in main (argc=<optimized out>, argv=0x7ffd9a75f528) at /var/tmp/portage/kde-frameworks/baloo-5.33.0/work/baloo-5.33.0/src/file/extractor/main.cpp:57
When the indexer suspends on a laptop running from battery, the extractor process can continue to run and burns battery runtime.
The indexer is ignoring the exclude hint on the parent directory. I don't know if this could be connected to https://bugs.kde.org/show_bug.cgi?id=378884 .
Git commit f57c4bc27b81f2b40d910d376a0bb531cd8472c6 by Stefan Brüns. Committed on 03/05/2018 at 22:37. Pushed by bruns into branch 'master'. Avoid infinite loops when fetching the URL from DocumentUrlDB Summary: Some users apparently have DBs which contain infinite loops in the idTree (a parentId pointing to itself or one of its children). This manifests in either crashes due to exhausted memory and/or the process being stuck with 100% CPU load. The problem can only be completely solved by either recreating the DB, or by cleaning the DB from any problematic records. As in interim solution, stop the code from crashing. Related: bug 385846, bug 391258, bug 393181 Reviewers: #baloo, michaelh, #frameworks, ngraham Reviewed By: ngraham Subscribers: ngraham, #frameworks Tags: #frameworks, #baloo Differential Revision: https://phabricator.kde.org/D12335 M +10 -2 src/engine/documenturldb.cpp https://commits.kde.org/baloo/f57c4bc27b81f2b40d910d376a0bb531cd8472c6
*** Bug 384372 has been marked as a duplicate of this bug. ***
*** Bug 364574 has been marked as a duplicate of this bug. ***
*** Bug 359888 has been marked as a duplicate of this bug. ***
*** Bug 384088 has been marked as a duplicate of this bug. ***