Bug 400498

Summary: baloo_file crashed a few minutes after starting Plasma
Product: [Frameworks and Libraries] frameworks-baloo Reporter: Matt Fagnani <matt.fagnani>
Component: Baloo File DaemonAssignee: 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
Application: baloo_file (5.51.0)

Qt Version: 5.11.1
Frameworks Version: 5.51.0
Operating System: Linux 4.18.16-300.fc29.i686 i686
Distribution (Platform): Fedora RPMs

-- Information about the crash:
- What I was doing when the application crashed:

baloo_file crashed about 5 minutes after I logged into Plasma in Fedora 29. I was using Konsole and Firefox at the time although these are likely unrelated to the crash.

I installed the kf5-baloo*-debuginfo-5.51.0-1.fc29 , qt5-qtbase-debuginfo-5.11.1-8.fc29, lmdb-debuginfo-0.9.22-3.fc29, glibc-debuginfo-0:2.28-9.fc29 packages.
I've seen similar crashes in baloo_file many times in previous KF5 versions which usually occur about 5-30 minutes after starting Plasma.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Baloo File Indexing Daemon (baloo_file), signal: Aborted
Using host libthread_db library "/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0xb3982840 (LWP 1369))]

Thread 3 (Thread 0x72a6db40 (LWP 2081)):
[KCrash Handler]
#7  0xb7f06d41 in __kernel_vsyscall ()
#8  0xb7203b36 in __libc_signal_restore_set (set=0x72a6c27c) at ../sysdeps/unix/sysv/linux/internal-signals.h:84
#9  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:48
#10 0xb71ed374 in __GI_abort () at abort.c:79
#11 0xb7613440 in mdb_assert_fail (env=0x1eaed50, expr_txt=expr_txt@entry=0xb761502f "rc == 0", func=func@entry=0xb76158f8 <__func__.7062> "mdb_page_dirty", line=2127, file=0xb7615010 "mdb.c") at mdb.c:1542
#12 0xb7608494 in mdb_page_dirty (txn=0x1eaffb0, mp=<optimized out>) at mdb.c:2128
#13 0xb76096ca in mdb_page_alloc (num=num@entry=1, mp=mp@entry=0x72a6c830, mc=<optimized out>) at mdb.c:2308
#14 0xb7609911 in mdb_page_touch (mc=mc@entry=0x72a6cb64) at mdb.c:2495
#15 0xb760b44b in mdb_cursor_touch (mc=mc@entry=0x72a6cb64) at mdb.c:6492
#16 0xb760e446 in mdb_cursor_put (mc=0x72a6cb64, key=0x72a6cdcc, data=0x72a6cdd4, flags=<optimized out>) at mdb.c:6626
#17 0xb76111f8 in mdb_put (txn=0x1eaffb0, dbi=8, key=0x72a6cdcc, data=0x72a6cdd4, flags=0) at mdb.c:8991
#18 0xb7c3e2ce in Baloo::IdFilenameDB::put (this=0x72a6ce60, docId=<optimized out>, path=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/idfilenamedb.cpp:75
#19 0xb7c3592d in Baloo::DocumentUrlDB::add (this=0x72a6d020, id=6200068759682306, parentId=6217892873960706, name=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/documenturldb.cpp:125
#20 0xb7c35bc3 in Baloo::DocumentUrlDB::put (this=0x72a6d020, docId=6200068759682306, url=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/documenturldb.cpp:69
#21 0xb7c567d5 in Baloo::WriteTransaction::addDocument (this=0x72102390, doc=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/writetransaction.cpp:57
#22 0xb7c4e763 in Baloo::Transaction::addDocument (this=0x72a6d0e0, doc=...) at /usr/src/debug/kf5-baloo-5.51.0-1.fc29.i386/src/engine/transaction.cpp:233
#23 0x004b302d in Baloo::NewFileIndexer::run (this=0x1ea9e20) at /usr/include/qt5/QtCore/qrefcount.h:60
#24 0xb76c4c10 in QThreadPoolThread::run (this=<optimized out>) at thread/qthreadpool.cpp:101
#25 0xb76cd909 in QThreadPrivate::start (arg=<optimized out>) at thread/qthread_unix.cpp:367
#26 0xb64765de in start_thread (arg=<optimized out>) at pthread_create.c:486
#27 0xb72c072a in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 2 (Thread 0xb3507b40 (LWP 1382)):
#0  0xb7f06d41 in __kernel_vsyscall ()
#1  0xb72b6853 in __GI___poll (fds=0xb2c0cd50, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#2  0xb4095254 in poll (__timeout=-1, __nfds=1, __fds=0xb2c0cd50) at /usr/include/bits/poll2.h:46
#3  g_poll (fds=0xb2c0cd50, nfds=1, timeout=-1) at gpoll.c:124
#4  0xb4085913 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0xb2c0cd50, timeout=<optimized out>, context=0xb2c00640) at gmain.c:4221
#5  g_main_context_iterate (context=context@entry=0xb2c00640, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915
#6  0xb4085a5b in g_main_context_iteration (context=0xb2c00640, may_block=1) at gmain.c:3981
#7  0xb78b217c in QEventDispatcherGlib::processEvents (this=0xb2c005d0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#8  0xb7859b6f in QEventLoop::exec (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#9  0xb76c2dd1 in QThread::exec (this=0xb7dd2060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#10 0xb7d300d0 in QDBusConnectionManager::run (this=0xb7dd2060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#11 0xb76cd909 in QThreadPrivate::start (arg=<optimized out>) at thread/qthread_unix.cpp:367
#12 0xb64765de in start_thread (arg=<optimized out>) at pthread_create.c:486
#13 0xb72c072a in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 1 (Thread 0xb3982840 (LWP 1369)):
#0  0xb7f06d41 in __kernel_vsyscall ()
#1  0xb72b6853 in __GI___poll (fds=0x1f01750, nfds=1, timeout=119983) at ../sysdeps/unix/sysv/linux/poll.c:29
#2  0xb4095254 in poll (__timeout=119983, __nfds=1, __fds=0x1f01750) at /usr/include/bits/poll2.h:46
#3  g_poll (fds=0x1f01750, nfds=1, timeout=119983) at gpoll.c:124
#4  0xb4085913 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x1f01750, timeout=<optimized out>, context=0x1ea3ea0) at gmain.c:4221
#5  g_main_context_iterate (context=context@entry=0x1ea3ea0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3915
#6  0xb4085a5b in g_main_context_iteration (context=0x1ea3ea0, may_block=1) at gmain.c:3981
#7  0xb78b215d in QEventDispatcherGlib::processEvents (this=0x1ea3e90, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#8  0xb7859b6f in QEventLoop::exec (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#9  0xb78623e2 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#10 0x004aaf61 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
[Inferior 1 (process 1369) detached]

Reported using DrKonqi
Comment 1 Matt Fagnani 2018-11-01 12:53:12 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.
Comment 2 Matt Fagnani 2018-11-01 14:19:01 UTC
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}}
Comment 3 Nate Graham 2018-11-01 18:31:03 UTC

*** This bug has been marked as a duplicate of bug 389625 ***
Comment 4 Matt Fagnani 2018-11-01 19:41:21 UTC
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.
Comment 5 Nate Graham 2018-11-01 20:12:01 UTC
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 ***
Comment 6 Stefan Brüns 2018-11-01 20:35:15 UTC
(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.
Comment 7 Matt Fagnani 2018-11-01 21:42:11 UTC
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.
Comment 8 Matt Fagnani 2018-11-09 13:20:48 UTC
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
Comment 9 Christoph Feck 2018-11-09 13:37:20 UTC
Matt, according to the duplicate, you need a fix in liblmdb.
Comment 10 Matt Fagnani 2018-11-09 15:32:43 UTC
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
Comment 11 Stefan Brüns 2018-11-09 15:51:26 UTC
(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
Comment 12 Matt Fagnani 2018-11-09 16:20:10 UTC
(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