Summary: | baloo_file_extractor crashes when database is larger than 5GB | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-baloo | Reporter: | marvin24 |
Component: | general | Assignee: | Pinak Ahuja <pinak.ahuja> |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | aspotashev, christoph, pinak.ahuja |
Priority: | NOR | ||
Version: | 5.22.0 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
marvin24
2016-06-09 09:00:31 UTC
here is another one. This time I attached gdb to baloo_file_extractor and waited for the segfault. The one above came from a core dump. Somehow, this one here looks different. Also, there seem to be some kind of overflow. I ran balooctl status right after the segfault: # balooctl status Die Baloo-Dateiindizierung läuft Indizierungsstatus: Dateiinhalt wird indiziert 75224/96084 Dateien indiziert Current size of index is 1.008,71 MiB # ls .local/share/baloo: -rw-r--r-- 1 user users 5352673280 16. Jun 21:02 index output of bt full: Thread 1 "baloo_file_extr" received signal SIGSEGV, Segmentation fault. 0x00007f1a501926d4 in __memcpy_sse2_unaligned () from /lib64/libc.so.6 (gdb) bt full #0 0x00007f1a501926d4 in __memcpy_sse2_unaligned () at /lib64/libc.so.6 #1 0x00007f1a5261e503 in Baloo::PostingCodec::decode(QByteArray const&) (__len=18446744073052851664, __src=<optimized out>, __dest=<optimized out>) at /usr/include/bits/string3.h:53 vec = {d = 0x7f1a50b48bb8} #2 0x00007f1a5261e503 in Baloo::PostingCodec::decode(QByteArray const&) (this=this@entry=0x7ffcd9bfd5ff, arr=...) at /usr/src/debug/baloo-5.22.0/src/codecs/postingcodec.cpp:42 vec = {d = 0x7f1a50b48bb8} #3 0x00007f1a5260a150 in Baloo::PostingDB::get(QByteArray const&) (this=this@entry=0x7ffcd9bfd6e0, term=...) at /usr/src/debug/baloo-5.22.0/src/engine/postingdb.cpp:100 key = {mv_size = 10, mv_data = 0x5e57e6d8} val = {mv_size = 3638267344, mv_data = 0xd8db8dd0} rc = <optimized out> arr = {d = 0x9f23d50} codec = {<No data fields>} #4 0x00007f1a5261b72d in Baloo::WriteTransaction::commit() (this=<optimized out>) at /usr/src/debug/baloo-5.22.0/src/engine/writetransaction.cpp:286 operations = {d = 0x64833860} list = {d = 0x7f1a50b48bb8} fetchedPositionList = <optimized out> positionList = {d = 0xc97c9900} postingDB = {m_txn = 0x1b493f0, m_dbi = 2} positionDB = {m_txn = 0x1b493f0, m_dbi = 3} iter = {c = {{d = 0xc8b8d50, e = 0xc8b8d50}}, i = {i = 0x44089e0}, n = {i = 0x64833830}} #5 0x00007f1a52612c02 in Baloo::Transaction::commit() (this=0x1099b750) at /usr/src/debug/baloo-5.22.0/src/engine/transaction.cpp:262 #6 0x00000000004094ec in Baloo::App::processNextFile() (this=0x7ffcd9bfddb0) at /usr/src/debug/baloo-5.22.0/src/file/extractor/app.cpp:100 message = {d_ptr = 0x1} vl = {<QListSpecialMethods<QVariant>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffcd9bfd840}, d = 0x7ffcd9bfd840}} #7 0x00007f1a50ad85c6 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007f1a50acd50b in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5 #9 0x00007f1a517c391c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #10 0x00007f1a517c87d6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #11 0x00007f1a50aa18b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #12 0x00007f1a50af2bbe in QTimerInfoList::activateTimers() () at /usr/lib64/libQt5Core.so.5 #13 0x00007f1a50af3139 in () at /usr/lib64/libQt5Core.so.5 #14 0x00007f1a4ebf0227 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #15 0x00007f1a4ebf0458 in () at /usr/lib64/libglib-2.0.so.0 #16 0x00007f1a4ebf04fc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #17 0x00007f1a50af3c3f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #18 0x00007f1a50a9f79a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #19 0x00007f1a50aa7a6d in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #20 0x00000000004083fc in main(int, char**) (argc=1, argv=0x7ffcd9bfdf98) at /usr/src/debug/baloo-5.22.0/src/file/extractor/main.cpp:57 aboutData = {d = 0x1a32d60} app = <incomplete type> appObject = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f1a50edc8e0 <QObject::staticMetaObject>, stringdata = 0x41d940 <qt_meta_stringdata_Baloo__App>, data = 0x41d8c0 <qt_meta_data_Baloo__App>, static_metacall = 0x41bed0 <Baloo::App::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_mimeDb = {d = 0x7f1a50eeb900}, m_extractorCollection = <incomplete type>, m_config = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f1a50edc8e0 <QObject::staticMetaObject>, stringdata = 0x41d6c0 <qt_meta_stringdata_Baloo__FileIndexerConfig>, data = 0x41d640 <qt_meta_data_Baloo__FileIndexerConfig>, static_metacall = 0x41c0e0 <Baloo::FileIndexerConfig::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_config = <incomplete type>, m_folderCache = {<QListSpecialMethods<QPair<QString, bool> >> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x1b2ab00}, d = 0x1b2ab00}}, m_excludeFilterRegExpCache = {m_regexpCache = {<QListSpecialMethods<QRegularExpression>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x1b47970}, d = 0x1b47970}}}, m_excludeMimetypes = {q_hash = {{d = 0x1b4b470, e = 0x1b4b470}}}, m_indexHidden = false, m_onlyBasicIndexing = false, m_devices = 0x1adb4d0, m_maxUncomittedFiles = 40}, m_notifyNewData = <incomplete type>, m_io = {m_stdinHandle = 0, m_stdoutHandle = 1, m_batchSize = 0, m_stdout = <incomplete type>}, m_idleMonitor = {<QObject> = {<No da---Type <return> to continue, or q <return> to quit--- ta fields>}, static staticMetaObject = {d = {superdata = 0x7f1a50edc8e0 <QObject::staticMetaObject>, stringdata = 0x41d800 <qt_meta_stringdata_Baloo__IdleStateMonitor>, data = 0x41d780 <qt_meta_data_Baloo__IdleStateMonitor>, static_metacall = 0x41bf10 <Baloo::IdleStateMonitor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_isIdle = true}, m_updatedFiles = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0xdad2ad70}, d = 0xdad2ad70}}, <No data fields>}, m_tr = 0x1099b750} ah, https://github.com/KDE/baloo/blob/master/src/engine/database.cpp#L97 shows the 5 GB are hardcoded (old size was 50 GB). But the size can be adjusted at runtime as it seems: http://lmdb.tech/doc/group__mdb.html#gaa2506ec8dab3d969b0e609cd82e619e5 Yeah, we should just increase the limit, baloo has no kind of "out of space" handling, increasing it on demand won't work ATM :/ *** This bug has been marked as a duplicate of bug 364475 *** |