Bug 255735 - strigi dies when indexing
Summary: strigi dies when indexing
Status: RESOLVED DUPLICATE of bug 261083
Alias: None
Product: nepomuk
Classification: Unmaintained
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Sebastian Trueg
URL:
Keywords:
: 268878 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-10-31 13:51 UTC by Arne Babenhauserheide
Modified: 2011-09-21 17:42 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arne Babenhauserheide 2010-10-31 13:51:39 UTC
Hi, 

My file indexer dies short after starting. A short google search led me to a mail telling me to gather the backtrace with gdb, so that’s what I did :)

I hope it helps debugging! 

$ gdb --args nepomukservicestub nepomukstrigiservice

warning: Can not parse XML syscalls information; XML support was disabled at compile time.
GNU gdb (Gentoo 7.0.1 p1) 7.0.1
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/bin/nepomukservicestub...Reading symbols from /usr/lib64/debug/usr/bin/nepomukservicestub.debug...(no debugging symbols found)...done.
(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/nepomukservicestub nepomukstrigiservice
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffe7890710 (LWP 9743)]
nepomukstrigiservice(9738) Strigi::NepomukIndexManager::indexWriter: creating IndexWriter
[New Thread 0x7fffdde21710 (LWP 9896)]
[Thread 0x7fffdde21710 (LWP 9896) exited]
[New Thread 0x7fffdde21710 (LWP 9946)]
[Thread 0x7fffdde21710 (LWP 9946) exited]
[New Thread 0x7fffdde21710 (LWP 10010)]
[Thread 0x7fffdde21710 (LWP 10010) exited]
[New Thread 0x7fffdde21710 (LWP 10051)]
[Thread 0x7fffdde21710 (LWP 10051) exited]
nepomukstrigiservice(9738) XSyncBasedPoller::XSyncBasedPoller: 3 0
nepomukstrigiservice(9738) XSyncBasedPoller::XSyncBasedPoller: XSync seems available and ready
nepomukstrigiservice(9738) XSyncBasedPoller::setUpPoller: XSync Inited
nepomukstrigiservice(9738) XSyncBasedPoller::setUpPoller: Supported, init completed
[New Thread 0x7fffdde21710 (LWP 10188)]
nepomukservicestub: gconv.c:75: __gconv: Zusicherung »outbuf != ((void *)0) && *outbuf != ((void *)0)« nicht erfüllt.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe7890710 (LWP 9743)]
0x00007ffff4a33475 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff4a33475 in raise () from /lib/libc.so.6
#1  0x00007ffff4a347ff in abort () from /lib/libc.so.6
#2  0x00007ffff4a2c3dd in __assert_fail () from /lib/libc.so.6
#3  0x00007ffff4a20e82 in __gconv () from /lib/libc.so.6
#4  0x00007ffff4a202b8 in iconv () from /lib/libc.so.6
#5  0x00007fffef6d3bbc in UTF8Convertor::convert(char const*, unsigned long) () from /usr/lib/libstreamanalyzer.so.0
#6  0x00007fffef6d7475 in ID3EndAnalyzer::analyze(Strigi::AnalysisResult&, Strigi::StreamBase<char>*) () from /usr/lib/libstreamanalyzer.so.0
#7  0x00007fffef6b9872 in Strigi::StreamAnalyzerPrivate::analyze(Strigi::AnalysisResult&, Strigi::StreamBase<char>*) () from /usr/lib/libstreamanalyzer.so.0
#8  0x00007fffe855d84a in Nepomuk::IndexScheduler::analyzeFile(QFileInfo const&, Strigi::StreamAnalyzer*) () from /usr/lib64/kde4/nepomukstrigiservice.so
#9  0x00007fffe855f474 in Nepomuk::IndexScheduler::updateDir(QString const&, Strigi::StreamAnalyzer*, QFlags<Nepomuk::IndexScheduler::UpdateDirFlag>) ()
   from /usr/lib64/kde4/nepomukstrigiservice.so
#10 0x00007fffe855f703 in Nepomuk::IndexScheduler::updateDir(QString const&, Strigi::StreamAnalyzer*, QFlags<Nepomuk::IndexScheduler::UpdateDirFlag>) ()
   from /usr/lib64/kde4/nepomukstrigiservice.so
#11 0x00007fffe8561464 in Nepomuk::IndexScheduler::run() () from /usr/lib64/kde4/nepomukstrigiservice.so
#12 0x00007ffff79d80d5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#13 0x00007ffff7747a64 in start_thread () from /lib/libpthread.so.0
#14 0x00007ffff4ad1e8d in clone () from /lib/libc.so.6
(gdb) quit
A debugging session is active.

        Inferior 1 [process 9738] will be killed.
Comment 1 Pino Toscano 2010-10-31 13:55:39 UTC
Looks like analyzing an mp3 file causes the crash.
Can you run `xmlindexer` over the mp3 files you have in the indexe directories, and see which is the file which causes the crash?
Comment 2 Arne Babenhauserheide 2010-10-31 17:58:25 UTC
Can you give me a commandline for doing the check? 

Would that suffice? 

echo "from subprocess import call" >/tmp/mp3s
echo "from time import sleep" >>/tmp/mp3s
echo "for i in '''" >> /tmp/mp3s
find ~/ -iname *mp3 >> /tmp/mp3s
echo "'''.splitlines(): " >> /tmp/mp3s
echo "   print('indexxxresult', i)" >> /tmp/mp3s
echo "   sleep(0.01)" >> /tmp/mp3s
echo "   if i.strip(): call(['xmlindexer',i])" >> /tmp/mp3s

python3 /tmp/mp3s
Comment 3 Dario Andres 2010-12-12 19:50:29 UTC
[Comment from a bug triager]
Running "xmlindexer" directly will analyze all the files on the folder youn are in.
Regards
Comment 4 Karsten König 2011-02-04 19:55:08 UTC
Hey Arne, any update? Maybe you could upload an mp3 as a testcase?
Comment 5 Szymon Świerkosz 2011-03-07 18:02:23 UTC
Konqueror dies too.

Application: Konqueror (kdeinit4), signal: Aborted
[Current thread is 1 (Thread 0x7fb6f64db760 (LWP 6868))]

Thread 3 (Thread 0x7fb6eff7c700 (LWP 6869)):
#0  0x0000003af060a5ae in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0
#1  0x0000003af1a45a6c in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#2  0x0000003af1a45ed8 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#3  0x0000003af1a464bc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#4  0x0000003af4b99e66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#5  0x0000003af4b6ca82 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#6  0x0000003af4b6ce64 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#7  0x0000003af4a7948d in QThread::exec() () from /usr/lib64/qt4/libQtCore.so.4
#8  0x0000003af4b4ca98 in QInotifyFileSystemWatcherEngine::run() () from /usr/lib64/qt4/libQtCore.so.4
#9  0x0000003af4a7c4b5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#10 0x0000003afba99ae3 in ?? () from //usr/lib64/opengl/nvidia/lib/libGL.so.1
#11 0x0000003af0606914 in start_thread () from /lib/libpthread.so.0
#12 0x0000003aefad17dd in clone () from /lib/libc.so.6

Thread 2 (Thread 0x7fb6eeaae700 (LWP 6876)):
[KCrash Handler]
#6  0x0000003aefa32175 in raise () from /lib/libc.so.6
#7  0x0000003aefa33590 in abort () from /lib/libc.so.6
#8  0x0000003aefa2b201 in __assert_fail () from /lib/libc.so.6
#9  0x0000003aefa1fde3 in __gconv () from /lib/libc.so.6
#10 0x0000003aefa1f25c in iconv () from /lib/libc.so.6
#11 0x0000003afe854b1f in UTF8Convertor::convert(char const*, unsigned long) () from /usr/lib/libstreamanalyzer.so.0
#12 0x0000003afe85839d in ID3EndAnalyzer::analyze(Strigi::AnalysisResult&, Strigi::StreamBase<char>*) () from /usr/lib/libstreamanalyzer.so.0
#13 0x0000003afe83ad5a in Strigi::StreamAnalyzerPrivate::analyze(Strigi::AnalysisResult&, Strigi::StreamBase<char>*) () from /usr/lib/libstreamanalyzer.so.0
#14 0x0000003aff9556b5 in KFileMetaInfoPrivate::init(QIODevice&, KUrl const&, long, QFlags<KFileMetaInfo::What>) () from /usr/lib64/libkio.so.5
#15 0x0000003aff9573f3 in KFileMetaInfo::KFileMetaInfo(QString const&, QString const&, QFlags<KFileMetaInfo::What>) () from /usr/lib64/libkio.so.5
#16 0x0000003affa44b02 in KLoadFileMetaDataThread::run() () from /usr/lib64/libkio.so.5
#17 0x0000003af4a7c4b5 in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#18 0x0000003afba99ae3 in ?? () from //usr/lib64/opengl/nvidia/lib/libGL.so.1
#19 0x0000003af0606914 in start_thread () from /lib/libpthread.so.0
#20 0x0000003aefad17dd in clone () from /lib/libc.so.6

Thread 1 (Thread 0x7fb6f64db760 (LWP 6868)):
#0  0x0000003af060b2ac in pthread_cond_wait () from /lib/libpthread.so.0
#1  0x0000003af4a7d07b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x0000003af4a7c104 in QThread::wait(unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x0000003af4b3f710 in QFileSystemWatcher::~QFileSystemWatcher() () from /usr/lib64/qt4/libQtCore.so.4
#4  0x0000003af4b7fc3f in QObjectPrivate::deleteChildren() () from /usr/lib64/qt4/libQtCore.so.4
#5  0x0000003af4b872fb in QObject::~QObject() () from /usr/lib64/qt4/libQtCore.so.4
#6  0x0000003af76bf456 in Solid::Backends::Fstab::FstabWatcher::~FstabWatcher() () from /usr/lib/libsolid.so.4
#7  0x0000003aefa34be5 in __run_exit_handlers () from /lib/libc.so.6
#8  0x0000003aefa34c35 in exit () from /lib/libc.so.6
#9  0x0000003af623faa8 in qt_xio_errhandler () from /usr/lib64/qt4/libQtGui.so.4
#10 0x0000003afe26ae88 in KApplication::xioErrhandler(_XDisplay*) () from /usr/lib/libkdeui.so.5
#11 0x0000003af32490de in _XIOError () from /usr/lib/libX11.so.6
#12 0x0000003af324803d in _XEventsQueued () from /usr/lib/libX11.so.6
#13 0x0000003af323825f in XEventsQueued () from /usr/lib/libX11.so.6
#14 0x0000003af6279b57 in x11EventSourcePrepare(_GSource*, int*) () from /usr/lib64/qt4/libQtGui.so.4
#15 0x0000003af1a45a78 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#16 0x0000003af1a45ed8 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#17 0x0000003af1a464bc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#18 0x0000003af4b99e66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#19 0x0000003af627992e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#20 0x0000003af4b6ca82 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#21 0x0000003af4b6ce64 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#22 0x0000003af4b70edb in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00007fb6f5d99422 in kdemain () from /usr/lib64/libkdeinit4_konqueror.so
#24 0x00000000004080e3 in launch(int, char const*, char const*, char const*, int, char const*, bool, char const*, bool, char const*) ()
#25 0x0000000000408ce0 in handle_launcher_request(int, char const*) ()
#26 0x00000000004091ea in handle_requests(int) ()
#27 0x0000000000409de1 in main ()

I can provide sample file (9MB) by e-mail if someone is still interested.
Comment 6 Dillon 2011-03-21 00:21:07 UTC
*** Bug 268878 has been marked as a duplicate of this bug. ***
Comment 7 Dillon 2011-03-21 00:59:37 UTC
Maybe this is a bohrbug? Whether the indexer would crash seemed pseudo-random. Its manifestation changed depending on whether I indexed: individual files (not all of them) one at a time, the directory containing the crashing mp3 files, or the other directories as well as the one containing the crashing mp3s.
http://www.megaupload.com/?d=BJ47WRQU
Comment 8 Sebastian Trueg 2011-09-21 17:42:50 UTC

*** This bug has been marked as a duplicate of bug 261083 ***