https://bugs.kde.org/show_bug.cgi?id=352260
Matthew Dawson <matt...@mjdsystems.ca> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |matt...@mjdsystems.ca Resolution|WAITINGFORINFO |--- Ever confirmed|0 |1 Status|NEEDSINFO |CONFIRMED --- Comment #2 from Matthew Dawson <matt...@mjdsystems.ca> --- Hi Vishesh, I've got this happening reliably for me. Relevant Valgrind output (too large for a comment, I'll attach the full thing): ==30783== ==30783== Conditional jump or move depends on uninitialised value(s) ==30783== at 0x4C2E945: _intel_fast_memcpy (vg_replace_strmem.c:929) ==30783== by 0x5A28EF1: memcpy (string3.h:53) ==30783== by 0x5A28EF1: Baloo::PostingCodec::decode(QByteArray const&) (postingcodec.cpp:42) ==30783== by 0x5A0F35F: Baloo::PostingDB::get(QByteArray const&) (postingdb.cpp:100) ==30783== by 0x5A24FC2: Baloo::WriteTransaction::commit() (writetransaction.cpp:286) ==30783== by 0x5A1AC72: Baloo::Transaction::commit() (transaction.cpp:262) ==30783== by 0x422869: Baloo::MetadataMover::moveFileMetadata(QString const&, QString const&) (metadatamover.cpp:58) ==30783== by 0x619C36A: call (qobject_impl.h:124) ==30783== by 0x619C36A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3698) ==30783== by 0x426DB5: moved (moc_kinotify.cpp:330) ==30783== by 0x426DB5: KInotify::slotEvent(int) (kinotify.cpp:421) ==30783== by 0x619C36A: call (qobject_impl.h:124) ==30783== by 0x619C36A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3698) ==30783== by 0x6221A1B: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:134) ==30783== by 0x61A9192: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:260) ==30783== by 0x616B3DB: notify (qcoreapplication.cpp:1038) ==30783== by 0x616B3DB: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:965) ==30783== ==30783== Invalid read of size 16 ==30783== at 0x4C2E900: _intel_fast_memcpy (vg_replace_strmem.c:929) ==30783== by 0x5A28EF1: memcpy (string3.h:53) ==30783== by 0x5A28EF1: Baloo::PostingCodec::decode(QByteArray const&) (postingcodec.cpp:42) ==30783== by 0x5A0F35F: Baloo::PostingDB::get(QByteArray const&) (postingdb.cpp:100) ==30783== by 0x5A24FC2: Baloo::WriteTransaction::commit() (writetransaction.cpp:286) ==30783== by 0x5A1AC72: Baloo::Transaction::commit() (transaction.cpp:262) ==30783== by 0x422869: Baloo::MetadataMover::moveFileMetadata(QString const&, QString const&) (metadatamover.cpp:58) ==30783== by 0x619C36A: call (qobject_impl.h:124) ==30783== by 0x619C36A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3698) ==30783== by 0x426DB5: moved (moc_kinotify.cpp:330) ==30783== by 0x426DB5: KInotify::slotEvent(int) (kinotify.cpp:421) ==30783== by 0x619C36A: call (qobject_impl.h:124) ==30783== by 0x619C36A: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3698) ==30783== by 0x6221A1B: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:134) ==30783== by 0x61A9192: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:260) ==30783== by 0x616B3DB: notify (qcoreapplication.cpp:1038) ==30783== by 0x616B3DB: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:965) ==30783== Address 0x4065000 is not stack'd, malloc'd or (recently) free'd ==30783== KCrash: Attempting to start /usr/bin/baloo_file from kdeinit sock_file=/run/user/1000/kdeinit5__0 KCrash: Application 'baloo_file' crashing... ==30783== ==30783== HEAP SUMMARY: ==30783== in use at exit: 145,962,439 bytes in 691,847 blocks ==30783== total heap usage: 61,909,015 allocs, 61,217,168 frees, 12,624,450,230 bytes allocated ==30783== ==30783== LEAK SUMMARY: ==30783== definitely lost: 0 bytes in 0 blocks ==30783== indirectly lost: 0 bytes in 0 blocks ==30783== possibly lost: 3,337,148 bytes in 86 blocks ==30783== still reachable: 142,625,291 bytes in 691,761 blocks ==30783== suppressed: 0 bytes in 0 blocks ==30783== Rerun with --leak-check=full to see details of leaked memory ==30783== ==30783== For counts of detected and suppressed errors, rerun with: -v ==30783== Use --track-origins=yes to see where uninitialised values come from ==30783== ERROR SUMMARY: 681434 errors from 42 contexts (suppressed: 0 from 0) Killed But I think the root cause is something around LMDB. I got it to happen in gdb and poked around some. The address given back by mdb_get is invalid to start with. I tried to get GDB to break if rc != 0 (my desktop has Qt compiled without debugging, so the asserts disappear), but it didn't before it crashed again. Could mdb be returning invalid pointers? The pointers aren't anywhere close to an mmaped file. The size looks really large too (35768630 and 42781780). I'll see about getting the rc value out on crash. Is there anything else that can help? Also, I see what appears to be similar bugs about this popping up. If you'd like, I'll mark them as duplicates of this bug. -- You are receiving this mail because: You are watching all bug changes.