Bug 1209450 - kf5-baloo often hangs at 100% cpu
Summary: kf5-baloo often hangs at 100% cpu
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: kf5-baloo
Version: 22
Hardware: x86_64
OS: Linux
high
high
Target Milestone: ---
Assignee: KDE SIG
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-04-07 11:48 UTC by Marcelo Ricardo Leitner
Modified: 2016-07-19 20:21 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-19 20:21:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Marcelo Ricardo Leitner 2015-04-07 11:48:35 UTC
Description of problem:
Like this:
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   10499 mleitner  39  19  663080  41064  34044 R 100.0  0.5  44:01.73 baloo_file

It happened 4 times with me since I installed Alpha 1, nearly two weeks ago.


Version-Release number of selected component (if applicable):
kf5-baloo-5.6.2-1.fc22.x86_64

How reproducible:
As said, 4 times in ~2 weeks.

Steps to Reproduce:
Sorry, I'm not aware of a reproducer. I really don't use this service. It's hanging on its own.

Additional info:
I have some cifs mount points, outside my home, and sometimes I switch from ethernet to wifi and back, but today was not the case and it was stuck in 100% again.

At least the back trace was the same from the previous hang (thread 1):

(gdb) thread apply all bt                                                                                                                           
                                                                                                                                                    
Thread 3 (Thread 0x7f36b2035700 (LWP 10504)):                                                                                                       
#0  0x00007f36c860b66d in poll () at /lib64/libc.so.6                                                                                               
#1  0x00007f36c7cd0182 in _xcb_conn_wait () at /lib64/libxcb.so.1                                                                                   
#2  0x00007f36c7cd1cff in xcb_wait_for_event () at /lib64/libxcb.so.1                                                                               
#3  0x00007f36b3b7d5e9 in QXcbEventReader::run() () at /usr/lib64/qt5/plugins/platforms/libqxcb.so                                                  
#4  0x00007f36c921245e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5                                                                 
#5  0x00007f36c7163555 in start_thread () at /lib64/libpthread.so.0                                                                                 
#6  0x00007f36c8616f3d in clone () at /lib64/libc.so.6                                                                                              
                                                                                                                                                    
Thread 2 (Thread 0x7f36b0d39700 (LWP 12668)):                                                                                                       
#0  0x00007f36c860d3d3 in select () at /lib64/libc.so.6                                                                                             
#1  0x00007f36c938277f in QProcessManager::run() () at /lib64/libQt5Core.so.5                                                                       
#2  0x00007f36c921245e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5                                                                 
#3  0x00007f36c7163555 in start_thread () at /lib64/libpthread.so.0                                                                                 
#4  0x00007f36c8616f3d in clone () at /lib64/libc.so.6                                                                                              
                                                                                                                                                    
Thread 1 (Thread 0x7f36d094d900 (LWP 10499)):                                                                                                       
#0  0x00007f36c867d244 in __memcmp_sse4_1 () at /lib64/libc.so.6                                                                                    
#1  0x00007f36d04add3e in Key::operator<(Key) const () at /lib64/libxapian.so.22                                                                    
#2  0x00007f36d04ade7b in ChertTable::find_in_block(unsigned char const*, Key, bool, int) () at /lib64/libxapian.so.22                              
#3  0x00007f36d04aec43 in ChertTable::find(Cursor*) const () at /lib64/libxapian.so.22                                                              
#4  0x00007f36d0487e59 in ChertCursor::find_entry(std::string const&) () at /lib64/libxapian.so.22                                                  
#5  0x00007f36d04b5453 in ChertValueManager::get_chunk_containing_did(unsigned int, unsigned int, std::string&) const () at /lib64/libxapian.so.22  
#6  0x00007f36d04b59f5 in ChertValueManager::get_value(unsigned int, unsigned int) const () at /lib64/libxapian.so.22                               
#7  0x00007f36d04987ee in ChertDocument::do_get_value(unsigned int) const () at /lib64/libxapian.so.22                                              
#8  0x00007f36d04065ca in Xapian::Document::Internal::get_value(unsigned int) const () at /lib64/libxapian.so.22                                    
#9  0x00007f36d0406600 in Xapian::Document::get_value(unsigned int) const () at /lib64/libxapian.so.22
#10 0x00007f36cf9053ca in Baloo::XapianDocument::value(int) const () at /lib64/libKF5BalooXapian.so.1
#11 0x000000000041fbe4 in Baloo::BasicIndexingQueue::shouldIndex(Baloo::FileMapping&, QString const&) const ()
#12 0x0000000000420835 in Baloo::BasicIndexingQueue::process(Baloo::FileMapping&, QFlags<Baloo::UpdateDirFlag>) ()
#13 0x000000000042104c in Baloo::BasicIndexingQueue::processNextIteration() ()
#14 0x00007f36c941b3f1 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#15 0x00007f36ca09cdec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#16 0x00007f36ca0a2370 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#17 0x00007f36c93ea7fb in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#18 0x00007f36c93ecf27 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#19 0x00007f36c94410c3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#20 0x00007f36c40380ba in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#21 0x00007f36c4038450 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#22 0x00007f36c40384fc in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#23 0x00007f36c94414cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#24 0x00007f36c93e827a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#25 0x00007f36c93efcdc in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#26 0x0000000000417376 in main ()

Comment 1 Daniel Vrátil 2015-04-10 11:28:28 UTC
This is most probably caused by Xapian database corruption. Could you please run

balooctl disable
balooctl enable

from console? It will recreate the database and re-index everything (which might take a while, depending on the amount of data you have to be indexed).

Comment 2 Marcelo Ricardo Leitner 2015-04-10 12:14:46 UTC
Seems so. First time I tried your steps, it flooded the console, hanged in 100% cpu but I didn't redirect the output to a file. I could see one message for each file indexed saying that there was an error reading the database, end of file was reached unexpectedly.

Then I tried again, and got a segfault.

Application: Baloo File (baloo_file), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff069a4a900 (LWP 7863))]

Thread 2 (Thread 0x7ff04b132700 (LWP 7864)):
#0  0x00007ff06170866d in poll () at /lib64/libc.so.6
#1  0x00007ff060dcd182 in _xcb_conn_wait () at /lib64/libxcb.so.1
#2  0x00007ff060dcecff in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007ff04cc7a5e9 in QXcbEventReader::run() () at /usr/lib64/qt5/plugins/platforms/libqxcb.so
#4  0x00007ff06230f45e in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007ff060260555 in start_thread () at /lib64/libpthread.so.0
#6  0x00007ff061713f3d in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7ff069a4a900 (LWP 7863)):
[KCrash Handler]
#5  0x00007ff0695aad9f in ChertTable::find_in_block(unsigned char const*, Key, bool, int) () at /lib64/libxapian.so.22
#6  0x00007ff0695abc43 in ChertTable::find(Cursor*) const () at /lib64/libxapian.so.22
#7  0x00007ff069584e59 in ChertCursor::find_entry(std::string const&) () at /lib64/libxapian.so.22
#8  0x00007ff0695b2453 in ChertValueManager::get_chunk_containing_did(unsigned int, unsigned int, std::string&) const () at /lib64/libxapian.so.22
#9  0x00007ff0695b29f5 in ChertValueManager::get_value(unsigned int, unsigned int) const () at /lib64/libxapian.so.22
#10 0x00007ff0695957ee in ChertDocument::do_get_value(unsigned int) const () at /lib64/libxapian.so.22
#11 0x00007ff0695035ca in Xapian::Document::Internal::get_value(unsigned int) const () at /lib64/libxapian.so.22
#12 0x00007ff069503600 in Xapian::Document::get_value(unsigned int) const () at /lib64/libxapian.so.22
#13 0x00007ff068a023ca in Baloo::XapianDocument::value(int) const () at /lib64/libKF5BalooXapian.so.1
#14 0x000000000041fbe4 in Baloo::BasicIndexingQueue::shouldIndex(Baloo::FileMapping&, QString const&) const ()
#15 0x0000000000420835 in Baloo::BasicIndexingQueue::process(Baloo::FileMapping&, QFlags<Baloo::UpdateDirFlag>) ()
#16 0x000000000042104c in Baloo::BasicIndexingQueue::processNextIteration() ()
#17 0x00007ff0625183f1 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#18 0x00007ff063199dec in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#19 0x00007ff06319f370 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#20 0x00007ff0624e77fb in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#21 0x00007ff0624e9f27 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#22 0x00007ff06253e0c3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#23 0x00007ff05d1350ba in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#24 0x00007ff05d135450 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#25 0x00007ff05d1354fc in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#26 0x00007ff06253e4cf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#27 0x00007ff0624e527a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#28 0x00007ff0624eccdc in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#29 0x0000000000417376 in main ()

It was counting 61k files by then and didn't have any message about read errors or end of file.

3rd time, happened just like 2nd time.

Comment 3 Fedora End Of Life 2016-07-19 20:21:30 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.