Summary: | baloo_file crashed a few minutes after starting Plasma | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-baloo | Reporter: | Matt Fagnani <matt.fagnani> |
Component: | Baloo File Daemon | Assignee: | baloo-bugs-null |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | matt.fagnani, nate, stefan.bruens |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.51.0 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi |
Description
Matt Fagnani
2018-10-31 00:50:56 UTC
The crash might've been due to a failed assertion rc == 0 in mdb_page_dirty at mdb.c:2127-2128 in liblmdb.so.0.0.0 in the lmdb-libs package. A possible fix in the lmdb package was noted at the following report in comments 39 and 41 and applied to openSUSE Tumbleweed liblmdb-0_9_22 https://bugs.kde.org/show_bug.cgi?id=389848#c39 The lmdb upstream fix is described at https://www.openldap.org/its/index.cgi/Software%20Bugs?id=8756;selectid=8756 https://www.openldap.org/lists/openldap-devel/201710/msg00019.html https://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=libraries/liblmdb/mdb.c;h=1bf81ed4c87901991b7cac885b0d8cbc4dd23436;hb=bb8502f08800a44a6b91a94d6478aa7101c4cc77#l3444 Applying that fix to the lmdb-libs package might address the crash above. I ran gdb on baloo_file based on the instructions in the Retrieving a backtrace when an uncaught exception is causing a crash section at https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports The following were the commands and output I ran. The full trace of all threads is shown from when the breakpoint function mdb_assert_fail at mdb.c:1533 in liblmdb.so.0.0.0 in the lmdb-libs package was reached. baloo_file crashed after about 45 minutes after the assertion rc == 0 failed in mdb_page_dirty at mdb.c:2127-2128. More details of the variables' values at the time of the crash were shown than in the original trace above. gdb baloo_file ... (gdb) start Temporary breakpoint 1 at 0xab20: file /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/file/main.cpp, line 42. Starting program: /usr/bin/baloo_file ... (gdb) set logging file ~/programs/kf5/gdblog_baloo_file_1.txt (gdb) set logging on Copying output to /home/matt/programs/kf5/gdblog_baloo_file_1.txt. (gdb) break mdb_assert_fail Breakpoint 2 at 0xb76e03c0: file mdb.c, line 1533. (gdb) cont Continuing. [New Thread 0xb35d3b40 (LWP 2781)] [New Thread 0x72afeb40 (LWP 3843)] [Thread 0x72afeb40 (LWP 3843) exited] [New Thread 0x72afeb40 (LWP 3862)] [Switching to Thread 0x72afeb40 (LWP 3862)] Thread 4 "Thread (pooled)" hit Breakpoint 2, mdb_assert_fail (env=0x4750c0, expr_txt=expr_txt@entry=0xb76e202f "rc == 0", func=func@entry=0xb76e28f8 <__func__.7062> "mdb_page_dirty", line=2127, file=0xb76e2010 "mdb.c") at mdb.c:1533 1533 mdb_assert_fail(MDB_env *env, const char *expr_txt, (gdb) thread apply all bt full Thread 4 (Thread 0x72afeb40 (LWP 3862)): #0 mdb_assert_fail (env=0x4750c0, expr_txt=expr_txt@entry=0xb76e202f "rc == 0", func=func@entry=0xb76e28f8 <__func__.7062> "mdb_page_dirty", line=2127, file=0xb76e2010 "mdb.c") at mdb.c:1533 buf = "\000\000\000\000\017\020\000\000D\032m\267o\000\000\000\000\000\000\000w\000\000\000\000\200n\267\020\360\257\262\204կr\b\017\000\000\244\260\376\267\204կr\340\357m\267\000\200n\267\020\360\257\262\204կrj\360m\267\020\360\257\262\b\017\000\000\t\000\000\000x\b2\267\264\357\377\267\364\034m\267\255\006\062\267\204կr\300PG\000\000\020\000\000M\360m\267 cG\000\000\200n\267\204\333\022r\b\017\000\000QTm\267\020\360\257\262\204կr`cG\000\f\000\000\000\334&\000\000\b\017\000\000 \334\022r\000\037\177\223\001\000\000\000\"\000\000\000 \334\022r\312fm\267lication\300PG\000\b\000\000\000\000\200n\267#\000\000\000P\000\020r\020\020\000\000\000\000\000\000\000\000\000\000"... #1 0xb76d5494 in mdb_page_dirty (txn=0x476320, mp=<optimized out>) at mdb.c:2128 mid = <optimized out> rc = <optimized out> insert = <optimized out> __func__ = "mdb_page_dirty" mp = <optimized out> txn = 0x476320 mid = <optimized out> rc = <optimized out> insert = <optimized out> mid = {mid = 3947, mptr = 0x72131d00} rc = <optimized out> --Type <RET> for more, q to quit, c to continue without paging--c insert = <optimized out> __func__ = "mdb_page_dirty" #2 0xb76d66ca in mdb_page_alloc (num=num@entry=1, mp=mp@entry=0x72afd830, mc=<optimized out>) at mdb.c:2308 rc = <optimized out> retry = <optimized out> txn = <optimized out> env = 0x4750c0 pgno = 3947 mop = <optimized out> i = <optimized out> j = <optimized out> mop_len = <optimized out> n2 = 0 np = 0x72131d00 oldest = <optimized out> last = 4294967292 op = <optimized out> m2 = {mc_next = 0xb76e8000, mc_backup = 0xb76d671b <mdb_page_touch+11>, mc_xcursor = 0x72afd864, mc_txn = 0x1, mc_dbi = 3077472256, mc_db = 0x72afddcc, mc_dbx = 0xb76d6e79 <mdb_page_search+169>, mc_dbflag = 0x1 <error: Cannot access memory at address 0x1>, mc_snum = 32768, mc_top = 46958, mc_flags = 4674160, mc_pg = {0xb76e8000, 0x7a6d612d, 0xa6c6d78, 0x475258, 0xb76e8000, 0xa657061, 0x69647561, 0x2d782f6f, 0x63616c66, 0x67676f2b, 0x6475610a, 0x782f6f69, 0x6d73672d, 0x6475610a, 0x782f6f69, 0x6972692d, 0x2d726576, 0xa616c70, 0x69647561, 0x2d782f6f, 0x610a7469, 0x6f696475, 0x6d2d782f, 0x610a6234, 0x6f696475, 0x6d2d782f, 0x610a7234, 0x6f696475, 0x6d2d782f, 0x6f727461, 0xa616b73, 0x69647561}, mc_ki = {12143, 11640, 26989, 26990, 29552, 2662, 30049, 26980, 12143, 11640, 28525, 2611, 30049, 26980, 46312, 29636, 15000, 46957, 4568, 29203, 46312, 29636, 2840, 0, 15000, 46957, 528, 29203, 42448, 29645, 60303, 46957}} found_old = <optimized out> #3 0xb76d6911 in mdb_page_touch (mc=mc@entry=0x72afdb64) at mdb.c:2495 mp = 0x73cc1000 np = 0x0 txn = 0x476320 m2 = <optimized out> m3 = <optimized out> pgno = <optimized out> rc = <optimized out> __func__ = "mdb_page_touch" #4 0xb76d844b in mdb_cursor_touch (mc=mc@entry=0x72afdb64) at mdb.c:6492 rc = <optimized out> #5 0xb76db446 in mdb_cursor_put (mc=0x72afdb64, key=0x72afddcc, data=0x72afddd4, flags=<optimized out>) at mdb.c:6626 env = 0x4750c0 leaf = 0x0 fp = <optimized out> mp = 0x6 sub_root = 0x0 fp_flags = <optimized out> xdata = {mv_size = 1924127508, mv_data = 0xb7f9fadc} rdata = <optimized out> dkey = {mv_size = 0, mv_data = 0x1} olddata = {mv_size = 0, mv_data = 0x0} dummy = {md_pad = 56, md_flags = 808, md_depth = 29203, md_branch_pages = 56, md_leaf_pages = 1942857448, md_overflow_pages = 1633905005, md_entries = 3077380724, md_root = 1924128212} do_sub = 0 insert_key = <optimized out> insert_data = <optimized out> mcount = 0 dcount = 0 nospill = 0 nsize = <optimized out> rc = -30798 rc2 = <optimized out> nflags = <optimized out> __func__ = "mdb_cursor_put" #6 0xb76de1f8 in mdb_put (txn=0x476320, dbi=8, key=0x72afddcc, data=0x72afddd4, flags=0) at mdb.c:8991 mc = {mc_next = 0x0, mc_backup = 0x0, mc_xcursor = 0x0, mc_txn = 0x476320, mc_dbi = 8, mc_db = 0x476448, mc_dbx = 0x475270, mc_dbflag = 0x476568 "\031\032\032\032\032\032", mc_snum = 2, mc_top = 1, mc_flags = 1, mc_pg = {0x72130cf0, 0x73cc1000, 0x10002, 0x1, 0x7212ec30, 0x7212fc40, 0x72afdbf4, 0x4750c0, 0x476320, 0x3f, 0x8, 0xb76d4abb <mdb_page_get+11>, 0x72afddb4, 0x59, 0x0, 0x59, 0xb76d6b22 <mdb_page_search_root+146>, 0x0, 0x0, 0x8, 0xb76d6bcf <mdb_page_search_root+319>, 0x0, 0x72afdbf4, 0x72afe00c, 0xb76e8000, 0x4746b0, 0x73cc1000, 0x1, 0x937f1f00, 0x0, 0xb76e8000, 0x8}, mc_ki = {89, 13, 0, 0, 32768, 46958, 8, 0, 3, 6, 15952, 46957, 21104, 71, 57356, 29359, 32768, 46958, 4428, 0, 56796, 29359, 20672, 71, 25376, 71, 55472, 29202, 10, 0, 19131, 46957}} mx = {mx_cursor = {mc_next = 0x72afddb4, mc_backup = 0x2, mc_xcursor = 0x1, mc_txn = 0x72afdc94, mc_dbi = 3077402184, mc_db = 0x0, mc_dbx = 0x1, mc_dbflag = 0x72afdc94 "\t", mc_snum = 28414, mc_top = 46957, mc_flags = 116, mc_pg = {0x38, 0x72100050, 0xa0, 0x0, 0x0, 0xffffffa4, 0x1c, 0x72100480, 0x9, 0x0, 0x95, 0x0, 0xa0, 0xb, 0x120, 0x24, 0x33, 0x7, 0x0, 0x721004a4, 0x5b, 0x0, 0x79c813, 0x9f, 0x0, 0x6e, 0x0, 0x77, 0xb, 0x2, 0x7c, 0x72afe00c}, mc_ki = {56612, 29359, 55392, 29202, 24576, 46916, 149, 0, 24, 29200, 9, 0, 2168, 46898, 56756, 29359, 26, 0, 56752, 29359, 0, 0, 57020, 29359, 8, 0, 1709, 46898, 34392, 47038, 0, 0}}, mx_db = {md_pad = 133, md_flags = 56944, md_depth = 29359, md_branch_pages = 3078205979, md_leaf_pages = 149, md_overflow_pages = 1, md_entries = 16, md_root = 160}, mx_dbx = {md_name = {mv_size = 0, mv_data = 0x0}, md_cmp = 0xffffffa4, md_dcmp = 0xb779c813 <qCalculateGrowingBlockSize(unsigned int, unsigned int, unsigned int)+51>, md_rel = 0x72100018, md_relctx = 0x55}, mx_dbflag = 0 '\000'} rc = <optimized out> #7 0xb7d0b2ce in Baloo::IdFilenameDB::put (this=0x72afde60, docId=<optimized out>, path=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/idfilenamedb.cpp:75 key = {mv_size = 8, mv_data = 0x72afddb8} data = {d = 0x72130c50} val = {mv_size = 132, mv_data = 0x72130c60} rc = <optimized out> #8 0xb7d0292d in Baloo::DocumentUrlDB::add (this=0x72afe020, id=6207877010226434, parentId=6217892873960706, name=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/documenturldb.cpp:125 idFilenameDb = {m_txn = 0x476320, m_dbi = 8} idTreeDb = {m_txn = 0x476320, m_dbi = 7} subDocs = {d = 0x7212b470} path = {parentId = 6217892873960706, name = {d = 0x7212da90}} #9 0xb7d02bc3 in Baloo::DocumentUrlDB::put (this=0x72afe020, docId=6207877010226434, url=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/documenturldb.cpp:69 id = <optimized out> pos = <optimized out> name = {d = 0x7212da90} parentId = 6217892873960706 idFilenameDb = {m_txn = 0x476320, m_dbi = 8} arr = {d = 0x7212d860} list = {d = 0x7212da90} #10 0xb7d237d5 in Baloo::WriteTransaction::addDocument (this=0x72102390, doc=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/writetransaction.cpp:57 id = <optimized out> documentTermsDB = {m_txn = 0x476320, m_dbi = 4} documentXattrTermsDB = {m_txn = 0x476320, m_dbi = 6} documentFileNameTermsDB = {m_txn = 0x476320, m_dbi = 5} docTimeDB = {m_txn = 0x476320, m_dbi = 9} docDataDB = {m_txn = 0x476320, m_dbi = 10} contentIndexingDB = {m_txn = 0x476320, m_dbi = 11} mtimeDB = {m_txn = 0x476320, m_dbi = 13} docUrlDB = {m_txn = 0x476320, m_idFilenameDbi = 8, m_idTreeDbi = 7} docTerms = {d = 0x160e08} docXattrTerms = {d = 0x72afe044} docFileNameTerms = {d = 0xb7d0b4b8 <Baloo::IdFilenameDB::contains(unsigned long long)+88>} info = {mTime = 1913722560, cTime = 2474581760} #11 0xb7d1b763 in Baloo::Transaction::addDocument (this=0x72afe0e0, doc=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/transaction.cpp:233 No locals. #12 0x0041302d in Baloo::NewFileIndexer::run (this=0x478ef0) at /usr/include/qt5/QtCore/qrefcount.h:60 fileName = {static null = {<No data fields>}, d = 0x721042f0} mimetype = {static null = {<No data fields>}, d = 0x721096c0} level = <optimized out> job = {m_filePath = {static null = {<No data fields>}, d = 0x49fc10}, m_mimetype = {static null = {<No data fields>}, d = 0x721096c0}, m_indexingLevel = Baloo::BasicIndexingJob::MarkForContentIndexing, m_doc = {m_id = 6207877010226434, m_terms = {d = 0x72105350}, m_xattrTerms = {d = 0xb7a36890 <QMapDataBase::shared_null>}, m_fileNameTerms = {d = 0x72106550}, m_url = {d = 0x721116c0}, m_contentIndexing = true, m_mTime = 1541079486, m_cTime = 1541079487, m_data = {d = 0xb79e93c0 <QArrayData::shared_null>}}} filePath = @0x4777d0: {static null = {<No data fields>}, d = 0x49fc10} __for_range = @0x478f08: {<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 = 0x4777c0}, d = 0x4777c0}}, <No data fields>} __for_begin = <optimized out> __for_end = <optimized out> mimeDb = {d = 0xb7becd70 <(anonymous namespace)::Q_QGS_staticQMimeDatabase::innerFunction()::holder>} tr = {m_dbis = @0xb7d3c04c, m_txn = 0x476320, m_env = 0x4750c0, m_writeTrans = 0x72102390} #13 0xb7791c10 in QThreadPoolThread::run (this=<optimized out>) at thread/qthreadpool.cpp:101 autoDelete = true page = <optimized out> r = 0x478ef8 expired = <optimized out> locker = {val = 4647712} #14 0xb779a909 in QThreadPrivate::start (arg=<optimized out>) at thread/qthread_unix.cpp:367 thr = 0x47dd00 data = <optimized out> eventDispatcher = <optimized out> __clframe = {__cancel_routine = 0xb7799d90 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x47dd00, __do_it = 1, __cancel_type = <optimized out>} #15 0xb65435de in start_thread (arg=<optimized out>) at pthread_create.c:486 ret = <optimized out> start = <optimized out> pd = <optimized out> now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1235898368, 1924131648, -1235898368, 1924129512, 110216424, -247556767}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #16 0xb738d72a in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108 No locals. Thread 2 (Thread 0xb35d3b40 (LWP 2781)): #0 0xb7fd3d41 in __kernel_vsyscall () No symbol table info available. #1 0xb7383853 in __GI___poll (fds=0xb2c0cd50, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 resultvar = <optimized out> resultvar = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> sc_ret = <optimized out> nfds = 3 fds = 0xb2c0cd50 sc_ret = <optimized out> __value = <optimized out> timeout = -1 resultvar = <optimized out> resultvar = <optimized out> sc_cancel_oldtype = <optimized out> resultvar = <optimized out> resultvar = <optimized out> sc_ret = <optimized out> __value = <optimized out> resultvar = <optimized out> resultvar = <optimized out> sc_cancel_oldtype = <optimized out> resultvar = <optimized out> resultvar = <optimized out> #2 0xb4162254 in poll (__timeout=-1, __nfds=3, __fds=0xb2c0cd50) at /usr/include/bits/poll2.h:46 No locals. #3 g_poll (fds=0xb2c0cd50, nfds=3, timeout=-1) at gpoll.c:124 No locals. #4 0xb4152913 in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0xb2c0cd50, timeout=<optimized out>, context=0xb2c00640) at gmain.c:4221 ret = <optimized out> errsv = <optimized out> poll_func = 0xb4162230 <g_poll> poll_func = <optimized out> ret = <optimized out> errsv = <optimized out> #5 g_main_context_iterate (context=context@entry=0xb2c00640, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915 max_priority = 2147483647 timeout = -1 some_ready = <optimized out> nfds = 3 allocated_nfds = <optimized out> fds = 0xb2c0cd50 #6 0xb4152a5b in g_main_context_iteration (context=0xb2c00640, may_block=1) at gmain.c:3981 retval = <optimized out> #7 0xb797f15d in QEventDispatcherGlib::processEvents (this=0xb2c005d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0xb2c005e0 canWait = true savedFlags = {i = 0} result = <optimized out> #8 0xb7926b6f in QEventLoop::exec (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 d = 0xb2c046f0 locker = {val = 4672384} ref = {d = 0xb2c046f0, locker = @0xb35d3104, exceptionCaught = true} app = <optimized out> #9 0xb778fdd1 in QThread::exec (this=0xb7e9f060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120 d = 0x474b40 locker = {val = 4672384} eventLoop = {<QObject> = {_vptr.QObject = 0xb7be7578 <vtable for QEventLoop+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0xb2c046f0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0xb7aa8100 <qt_meta_stringdata_QEventLoop>, data = 0xb7aa80a0 <qt_meta_data_QEventLoop>, static_metacall = 0xb7926800 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #10 0xb7dfd0d0 in QDBusConnectionManager::run (this=0xb7e9f060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 locker = <optimized out> #11 0xb779a909 in QThreadPrivate::start (arg=<optimized out>) at thread/qthread_unix.cpp:367 thr = 0xb7e9f060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder> data = <optimized out> eventDispatcher = <optimized out> __clframe = {__cancel_routine = 0xb7799d90 <QThreadPrivate::finish(void*)>, __cancel_arg = 0xb7e9f060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>, __do_it = 1, __cancel_type = <optimized out>} #12 0xb65435de in start_thread (arg=<optimized out>) at pthread_create.c:486 ret = <optimized out> start = <optimized out> pd = <optimized out> now = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1235898368, -1285735616, -1235898368, -1285737752, -483277461, -247556767}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #13 0xb738d72a in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108 No locals. Thread 1 (Thread 0xb3a4e840 (LWP 2743)): #0 0xb7fd3d41 in __kernel_vsyscall () No symbol table info available. #1 0xb7383853 in __GI___poll (fds=0x4a8a20, nfds=5, timeout=914) at ../sysdeps/unix/sysv/linux/poll.c:29 resultvar = <optimized out> resultvar = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> sc_ret = <optimized out> nfds = 5 fds = 0x4a8a20 sc_ret = <optimized out> __value = <optimized out> timeout = 914 resultvar = <optimized out> resultvar = <optimized out> sc_cancel_oldtype = <optimized out> resultvar = <optimized out> resultvar = <optimized out> sc_ret = <optimized out> __value = <optimized out> resultvar = <optimized out> resultvar = <optimized out> sc_cancel_oldtype = <optimized out> resultvar = <optimized out> resultvar = <optimized out> #2 0xb4162254 in poll (__timeout=914, __nfds=5, __fds=0x4a8a20) at /usr/include/bits/poll2.h:46 No locals. #3 g_poll (fds=0x4a8a20, nfds=5, timeout=914) at gpoll.c:124 No locals. #4 0xb4152913 in g_main_context_poll (priority=<optimized out>, n_fds=5, fds=0x4a8a20, timeout=<optimized out>, context=0x46aea0) at gmain.c:4221 ret = <optimized out> errsv = <optimized out> poll_func = 0xb4162230 <g_poll> poll_func = <optimized out> ret = <optimized out> errsv = <optimized out> #5 g_main_context_iterate (context=context@entry=0x46aea0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915 max_priority = 2147483647 timeout = 914 some_ready = <optimized out> nfds = 5 allocated_nfds = <optimized out> fds = 0x4a8a20 #6 0xb4152a5b in g_main_context_iteration (context=0x46aea0, may_block=1) at gmain.c:3981 retval = <optimized out> #7 0xb797f15d in QEventDispatcherGlib::processEvents (this=0x46ae90, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0x469d00 canWait = true savedFlags = {i = 0} result = <optimized out> #8 0xb7926b6f in QEventLoop::exec (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 d = 0x4778d0 locker = {val = 4630672} ref = {d = 0x4778d0, locker = @0xbfffec04, exceptionCaught = true} app = <optimized out> #9 0xb792f3e2 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120 threadData = 0x46a6c0 eventLoop = {<QObject> = {_vptr.QObject = 0xb7be7578 <vtable for QEventLoop+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x4778d0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0xb7aa8100 <qt_meta_stringdata_QEventLoop>, data = 0xb7aa80a0 <qt_meta_data_QEventLoop>, static_metacall = 0xb7926800 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #10 0x0040af61 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/file/main.cpp:104 aboutData = {d = 0x461390} app = {<QObject> = {_vptr.QObject = 0xb7be75fc <vtable for QCoreApplication+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x46b1f0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0xb7aa8720 <qt_meta_stringdata_QCoreApplication>, data = 0xb7aa8600 <qt_meta_data_QCoreApplication>, static_metacall = 0xb7929af0 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0xbfffecf4} indexerConfig = {<QObject> = {_vptr.QObject = 0x45d2dc <vtable for Baloo::FileIndexerConfig+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x46cd00}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0x4443a0 <qt_meta_stringdata_Baloo__FileIndexerConfig>, data = 0x444320 <qt_meta_data_Baloo__FileIndexerConfig>, static_metacall = 0x4337a0 <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 = 0x4c36c0}, d = 0x4c36c0}}, m_folderCacheDirty = false, 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 = 0x473d10}, d = 0x473d10}}}, m_excludeMimetypes = {q_hash = {{d = 0x46d200, e = 0x46d200}}}, m_indexHidden = false, m_onlyBasicIndexing = false, m_devices = 0x479660, m_maxUncomittedFiles = 40} path = {static null = {<No data fields>}, d = 0x46e700} migrator = {m_dbPath = {static null = {<No data fields>}, d = 0x46e700}, m_config = 0xbfffed18} db = <optimized out> hub = {<QObject> = {_vptr.QObject = 0x45d45c <vtable for Baloo::MainHub+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x475050}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0x4435a0 <qt_meta_stringdata_Baloo__MainHub>, data = 0x443500 <qt_meta_data_Baloo__MainHub>, static_metacall = 0x433900 <Baloo::MainHub::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_db = 0xb7d3c040 <(anonymous namespace)::Q_QGS_s_db::innerFunction()::holder>, m_config = 0xbfffed18, m_fileWatcher = {<QObject> = {_vptr.QObject = 0x45d34c <vtable for Baloo::FileWatch+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x475160}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0x443c20 <qt_meta_stringdata_Baloo__FileWatch>, data = 0x443a00 <qt_meta_data_Baloo__FileWatch>, static_metacall = 0x4334f0 <Baloo::FileWatch::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_db = 0xb7d3c040 <(anonymous namespace)::Q_QGS_s_db::innerFunction()::holder>, m_metadataMover = 0x47bfc0, m_config = 0xbfffed18, m_dirWatch = 0x46ea90, m_pendingFileQueue = 0x46f060}, m_fileIndexScheduler = {<QObject> = {_vptr.QObject = 0x45d314 <vtable for Baloo::FileIndexScheduler+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x476720}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0x4440c0 <qt_meta_stringdata_Baloo__FileIndexScheduler>, data = 0x443f00 <qt_meta_data_Baloo__FileIndexScheduler>, static_metacall = 0x434ae0 <Baloo::FileIndexScheduler::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_db = 0xb7d3c040 <(anonymous namespace)::Q_QGS_s_db::innerFunction()::holder>, m_config = 0xbfffed18, m_newFiles = {<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 = 0xb79eb0b8 <QListData::shared_null>}, d = 0xb79eb0b8 <QListData::shared_null>}}, <No data fields>}, m_modifiedFiles = {<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 = 0xb79eb0b8 <QListData::shared_null>}, d = 0xb79eb0b8 <QListData::shared_null>}}, <No data fields>}, m_xattrFiles = {<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 = 0xb79eb0b8 <QListData::shared_null>}, d = 0xb79eb0b8 <QListData::shared_null>}}, <No data fields>}, m_threadPool = {<QObject> = {_vptr.QObject = 0xb7be58a0 <vtable for QThreadPool+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x46eae0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0xb79e8900 <qt_meta_stringdata_QThreadPool>, data = 0xb79e8880 <qt_meta_data_QThreadPool>, static_metacall = 0xb77918d0 <QThreadPool::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, m_provider = {m_db = 0xb7d3c040 <(anonymous namespace)::Q_QGS_s_db::innerFunction()::holder>}, m_contentIndexer = 0x474db0, m_powerMonitor = {<QObject> = {_vptr.QObject = 0x45d5a4 <vtable for Baloo::PowerStateMonitor+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x4767a0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0x442c60 <qt_meta_stringdata_Baloo__PowerStateMonitor>, data = 0x442be0 <qt_meta_data_Baloo__PowerStateMonitor>, static_metacall = 0x433d00 <Baloo::PowerStateMonitor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_enabled = 9, m_isOnBattery = false}, m_indexerState = Baloo::NewFiles, m_timeEstimator = {<QObject> = {_vptr.QObject = 0x45d614 <vtable for Baloo::TimeEstimator+8>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0xb7aad680 <qt_meta_stringdata_QObject>, data = 0xb7aad560 <qt_meta_data_QObject>, static_metacall = 0xb795a2b0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x476f40}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xb7ab0400 <qt_meta_stringdata_Qt>, data = 0xb7aad760 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0xb7be2a84 <QObject::staticMetaObject>, stringdata = 0x4428a0 <qt_meta_stringdata_Baloo__TimeEstimator>, data = 0x442840 <qt_meta_data_Baloo__TimeEstimator>, static_metacall = 0x433f90 <Baloo::TimeEstimator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_batchTimeBuffer = {1, 3073193881, 4238102, 3076296848, 4579337}, m_bufferIndex = 0, m_estimateReady = false, m_config = 0xbfffed18, m_batchSize = 40}, m_checkUnindexedFiles = false}} *** This bug has been marked as a duplicate of bug 389625 *** While bug 389625 involves baloo and liblmdb.so.0, the crashing thread from the trace in 389625 doesn't show mdb_assert_fail and the failed assertion rc == 0 in mdb_page_dirty at mdb.c in liblmdb.so. I think that making this bug a duplicate of reports such as the following would be more appropriate since they involve those functions and assertion failure: comment 35 of https://bugs.kde.org/show_bug.cgi?id=389848 https://bugs.kde.org/show_bug.cgi?id=396078 https://bugs.kde.org/show_bug.cgi?id=399492 https://bugs.kde.org/show_bug.cgi?id=396277 etc. Thanks Matt! It's always nice to learn from someone who's much better at reading backtraces than I. *** This bug has been marked as a duplicate of bug 389848 *** (In reply to Matt Fagnani from comment #4) > While bug 389625 involves baloo and liblmdb.so.0, the crashing thread from > the trace in 389625 doesn't show mdb_assert_fail and the failed assertion rc > == 0 in mdb_page_dirty at mdb.c in liblmdb.so. The raised signal is enough to deduce this. At the moment the assertion fails, the problematic freelist entries which the unixed lmdb stumbles on are no longer visible in the backtrace. The relevant part is lmdb crashes inside mdb_put, which should newer fail save any out-of-memory conditons. Nate, I'm inexperienced at interpreting such traces so I doubt that I'm more familiar than you are at it. Stefan, I've reassigned the Fedora report I filed on these crashes from kf5-baloo to lmdb at https://bugzilla.redhat.com/show_bug.cgi?id=1645114 per your recommendation at https://bugs.kde.org/show_bug.cgi?id=389625#c5 My only knowledge of baloo and lmdb is through these crashes. I will take your word that the trace of bug 389625 has the same issue as those I reported. Created attachment 116198 [details] New crash information added by DrKonqi baloo_file (5.52.0) using Qt 5.11.1 - What I was doing when the application crashed: I logged into Plasma 5.13.5, and drkonqi showed this crash immediately. The crash has the same failed assertion rc == 0 in mdb_page_dirty at mdb.c:2127-8 as in the previous ones. The suggested lmdb patch was applied in lmdb-0.9.22-4.fc29 as noted at https://bugzilla.redhat.com/show_bug.cgi?id=1645114 I didn't see any baloo_file crashes from when I upgraded to lmdb-libs-0.9.22-4.fc29 on Nov 5 to Nov 7 in over ten Plasma sessions with baloo_file autostarted. I saw the same baloo_file crashes two times on Nov 8 right after logging into Plasma which occurred after I upgraded to KF5 5.52.0. https://bodhi.fedoraproject.org/updates/FEDORA-2018-6c2a374e6b Some change involved in the KF5 5.52.0 upgrade might have made the crash appear again. The crash might be related to which file was being indexed, and the same file might've been indexed when Plasma was started in the last 3 crashes. -- Backtrace (Reduced): #8 0xb722ab36 in __libc_signal_restore_set (set=0x72a7c24c) at ../sysdeps/unix/sysv/linux/internal-signals.h:84 #9 __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48 #10 0xb7214374 in __GI_abort () at abort.c:79 #11 0xb763bb20 in mdb_assert_fail (env=0xe93cf0, expr_txt=expr_txt@entry=0xb763e02f "rc == 0", func=func@entry=0xb763e920 <__func__.7063> "mdb_page_dirty", line=2127, file=0xb763e010 "mdb.c") at mdb.c:1542 #12 0xb7630a24 in mdb_page_dirty (txn=0xe94f50, mp=<optimized out>) at mdb.c:2128 Matt, according to the duplicate, you need a fix in liblmdb. Created attachment 116200 [details] New crash information added by DrKonqi baloo_file (5.52.0) using Qt 5.11.1 - What I was doing when the application crashed: I ran balooctl start in konsole which showed the following error messages and crash. KCatalog being used without a Q*Application instance. Some translations won't work mdb.c:2127: Assertion 'rc == 0' failed in mdb_page_dirty() KCrash: Attempting to start /usr/bin/baloo_file from kdeinit sock_file=/run/user/1000/kdeinit5__0 KCrash: Application 'baloo_file' crashing... KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit sock_file=/run/user/1000/kdeinit5__0 QSocketNotifier: Invalid socket 5 and type 'Read', disabling... QSocketNotifier: Invalid socket 10 and type 'Read', disabling... QSocketNotifier: Invalid socket 9 and type 'Read', disabling... QSocketNotifier: Invalid socket 12 and type 'Exception', disabling... QSocketNotifier: Invalid socket 11 and type 'Read', disabling... QSocketNotifier: Invalid socket 14 and type 'Read', disabling... The error messages also occurred when I ran baloo_file -h. Christoph, the patch suggested by Stefan in comments 39 and 41 at https://bugs.kde.org/show_bug.cgi?id=389848#c39 was applied by Jan Staněk on Nov 5 in the lmdb-0.9.22-4.fc29 update which I upgraded to that day https://bugzilla.redhat.com/show_bug.cgi?id=1645114 I didn't see any baloo_file 5.51 crashes with the lmdb-libs-0.9.22-4.fc29 update on Nov 5-7. After I upgrading to KF5 5.52 on Nov 8, I've seen this crash six times. I read in another post that the failed assertion might indicate a corrupted baloo index which seems likely as the crashes occur immediately on starting baloo_file or balooctl start. Some change to how lmdb-libs handles the exception from the failed assertion around mdb_assert_fail at mdb.c:1542 or mdb_page_dirty at mdb.c:2128 so that the abort signal isn't made might prevent the crashes at least. If baloo_file were able to handle that exception from the failed assertion, then it might be able to fix or recreate the index. I'm not familiar enough with baloo or lmdb to know how if or how those changes could be properly made. -- Backtrace (Reduced): #8 0xb7207b36 in __libc_signal_restore_set (set=0x72a7c24c) at ../sysdeps/unix/sysv/linux/internal-signals.h:84 #9 __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48 #10 0xb71f1374 in __GI_abort () at abort.c:79 #11 0xb7618b20 in mdb_assert_fail (env=0xd159d0, expr_txt=expr_txt@entry=0xb761b02f "rc == 0", func=func@entry=0xb761b920 <__func__.7063> "mdb_page_dirty", line=2127, file=0xb761b010 "mdb.c") at mdb.c:1542 #12 0xb760da24 in mdb_page_dirty (txn=0xd16c30, mp=<optimized out>) at mdb.c:2128 (In reply to Matt Fagnani from comment #10) > I read in another post that the failed assertion might indicate a corrupted > baloo index which seems likely as the crashes occur immediately on starting > baloo_file or balooctl start. In this case its a fault completely inside lmdb. It keeps a list of page no longer used (i.e. containing stale data), the freelist, and reuses these pages when writing new data. lmdb apparently has problems managing this list under some circumstances, and while one issue was fixed, there seem to be another one. Can you please verify you are *really* using the fixed liblmdb package, i.e. it has not been reverted locally on your system or in the fedora repo? > Some change to how lmdb-libs handles the > exception from the failed assertion around mdb_assert_fail at mdb.c:1542 or > mdb_page_dirty at mdb.c:2128 so that the abort signal isn't made might > prevent the crashes at least. If baloo_file were able to handle that > exception from the failed assertion, then it might be able to fix or > recreate the index. As the signal never reaches baloo, it has no chance of handling it. lmdb notices something is wrong and commits suicide, unfortunately taking down everything else with it ... > I'm not familiar enough with baloo or lmdb to know how > if or how those changes could be properly made. > > -- Backtrace (Reduced): > #8 0xb7207b36 in __libc_signal_restore_set (set=0x72a7c24c) at > ../sysdeps/unix/sysv/linux/internal-signals.h:84 > #9 __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48 > #10 0xb71f1374 in __GI_abort () at abort.c:79 > #11 0xb7618b20 in mdb_assert_fail (env=0xd159d0, > expr_txt=expr_txt@entry=0xb761b02f "rc == 0", func=func@entry=0xb761b920 > <__func__.7063> "mdb_page_dirty", line=2127, file=0xb761b010 "mdb.c") at > mdb.c:1542 > #12 0xb760da24 in mdb_page_dirty (txn=0xd16c30, mp=<optimized out>) at > mdb.c:2128 (In reply to Stefan Brüns from comment #11) > (In reply to Matt Fagnani from comment #10) > > I read in another post that the failed assertion might indicate a corrupted > > baloo index which seems likely as the crashes occur immediately on starting > > baloo_file or balooctl start. > > In this case its a fault completely inside lmdb. It keeps a list of page no > longer used (i.e. containing stale data), the freelist, and reuses these > pages when writing new data. lmdb apparently has problems managing this list > under some circumstances, and while one issue was fixed, there seem to be > another one. > > Can you please verify you are *really* using the fixed liblmdb package, i.e. > it has not been reverted locally on your system or in the fedora repo? > sudo dnf repoquery lmdb-libs --installed shows lmdb-libs-0:0.9.22-4.fc29.i686 which had the patch suggested applied as shown at https://src.fedoraproject.org/rpms/lmdb/c/8008a8dff332a1faea6be2763eef01e7899c32e5?branch=f29 https://koji.fedoraproject.org/koji/buildinfo?buildID=1160101 > > Some change to how lmdb-libs handles the > > exception from the failed assertion around mdb_assert_fail at mdb.c:1542 or > > mdb_page_dirty at mdb.c:2128 so that the abort signal isn't made might > > prevent the crashes at least. If baloo_file were able to handle that > > exception from the failed assertion, then it might be able to fix or > > recreate the index. > > As the signal never reaches baloo, it has no chance of handling it. lmdb > notices something is wrong and commits suicide, unfortunately taking down > everything else with it ... > I guess that changing how mdb.c of lmdb-libs handles the exception would be necessary then maybe by changing the signal made in mdb_assert_fail at mdb.c:1542. I ran ls -la ~/.local/share/baloo/ total 21096 drwxrwxr-x. 2 matt matt 4096 Nov 9 10:04 . drwxr-xr-x. 78 matt matt 4096 Nov 7 21:34 .. -rw-rw-r--. 1 matt matt 21585920 Feb 16 2018 index -rw-r-----. 1 matt matt 8192 Nov 9 10:32 index-lock Since ~/.local/share/baloo/index hadn't been updated since Feb 16, I guessed that it might've been corrupted or something similar. I ran mv ~/.local/share/baloo/index ~/.local/share/baloo/index.old balooctl start The baloo_file and baloo_file_extractor started running without crashing. ls -la ~/.local/share/baloo/ now shows total 23288 drwxrwxr-x. 2 matt matt 4096 Nov 9 10:42 . drwxr-xr-x. 78 matt matt 4096 Nov 7 21:34 .. -rw-r-----. 1 matt matt 2244608 Nov 9 10:42 index -rw-r-----. 1 matt matt 8192 Nov 9 11:13 index-lock -rw-rw-r--. 1 matt matt 21585920 Feb 16 2018 index.old The crashes might've been due to how mdb.c of lmdb-libs was handling the likely corrupted ~/.local/share/baloo/index |