Bug 281302 - nepomuk segfault without any obvious trigger
Summary: nepomuk segfault without any obvious trigger
Status: RESOLVED DUPLICATE of bug 275880
Alias: None
Product: nepomuk
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Sebastian Trueg
URL:
Keywords:
: 276359 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-09-04 03:08 UTC by Scott Wood
Modified: 2011-10-11 19:15 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Scott Wood 2011-09-04 03:08:38 UTC
Application: nepomukservicestub (0.2)
KDE Platform Version: 4.7.00 (4.7.0)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-11-generic x86_64
Distribution: Ubuntu 11.04

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

Nothing that should be related to nepomuk -- I was playing Heroes of Might and Magic 3 (far too old to be using nepomuk), and right around when I reached the end of a campaign chapter and saved a game, the crash report popped up.

-- Backtrace:
Application: Nepomuk Service Stub (nepomukservicestub), signal: Segmentation fault
[Current thread is 1 (Thread 0x7ffb68aba780 (LWP 2423))]

Thread 3 (Thread 0x7ffb59a9d700 (LWP 2426)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffb684be82b in wait (this=<value optimized out>, mutex=0xbde100, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xbde100, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffb59ed447d in Nepomuk::MetadataMover::run (this=0xbde0e0) at ../../../../nepomuk/services/filewatch/metadatamover.cpp:142
#4  0x00007ffb684be175 in QThreadPrivate::start (arg=0xbde0e0) at thread/qthread_unix.cpp:320
#5  0x00007ffb65e95d8c in start_thread (arg=0x7ffb59a9d700) at pthread_create.c:304
#6  0x00007ffb6619304d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7ffb5929c700 (LWP 2428)):
#0  0x00007ffb66185f03 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffb653ba104 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffb653ba639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffb685d0446 in QEventDispatcherGlib::processEvents (this=0xc3d990, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007ffb685a4882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007ffb685a4abc in QEventLoop::exec (this=0x7ffb5929bdd0, flags=...) at kernel/qeventloop.cpp:201
#6  0x00007ffb684bb924 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492
#7  0x00007ffb68586c2f in QInotifyFileSystemWatcherEngine::run (this=0xc399d0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007ffb684be175 in QThreadPrivate::start (arg=0xc399d0) at thread/qthread_unix.cpp:320
#9  0x00007ffb65e95d8c in start_thread (arg=0x7ffb5929c700) at pthread_create.c:304
#10 0x00007ffb6619304d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffb68aba780 (LWP 2423)):
[KCrash Handler]
#6  QRegExpMatchState::matchHere (this=0xc08760) at tools/qregexp.cpp:1999
#7  0x00007ffb684f7308 in QRegExpMatchState::match (this=0xc08760, str0=<value optimized out>, len0=<value optimized out>, pos0=<value optimized out>, minimal0=<value optimized out>, oneTest=<value optimized out>, caretIndex=0) at tools/qregexp.cpp:1442
#8  0x00007ffb684f7caf in QRegExp::exactMatch (this=0xc0ee78, str=...) at tools/qregexp.cpp:4069
#9  0x00007ffb59cc120f in RegExpCache::exactMatch (this=<value optimized out>, s=...) at ../../../nepomuk/common/regexpcache.cpp:40
#10 0x00007ffb59ed6b05 in Nepomuk::StrigiServiceConfig::shouldFileBeIndexed (this=0xbe6420, fileName=<value optimized out>) at ../../../../nepomuk/services/strigi/strigiserviceconfig.cpp:177
#11 0x00007ffb59ed6d06 in Nepomuk::StrigiServiceConfig::shouldFolderBeIndexed (this=0xbe6420, path=...) at ../../../../nepomuk/services/strigi/strigiserviceconfig.cpp:165
#12 0x00007ffb59ed6d90 in Nepomuk::StrigiServiceConfig::shouldBeIndexed (this=0xbe6420, path=...) at ../../../../nepomuk/services/strigi/strigiserviceconfig.cpp:128
#13 0x00007ffb59ed16db in Nepomuk::FileWatch::updateFolderViaStrigi (path=...) at ../../../../nepomuk/services/filewatch/nepomukfilewatch.cpp:256
#14 0x00007ffb59ed1957 in Nepomuk::FileWatch::slotFileCreated (this=<value optimized out>, path=...) at ../../../../nepomuk/services/filewatch/nepomukfilewatch.cpp:237
#15 0x00007ffb59ed1d70 in Nepomuk::FileWatch::qt_metacall (this=0xbaeca0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8fea5b60) at ./nepomukfilewatch.moc:100
#16 0x00007ffb685ba5f8 in QMetaObject::activate (sender=0xbe1dd0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff8fea5b60) at kernel/qobject.cpp:3287
#17 0x00007ffb59eda035 in KInotify::created (this=<value optimized out>, _t1=<value optimized out>) at ./kinotify.moc:159
#18 0x00007ffb59eda7f5 in KInotify::slotEvent (this=0xbe1dd0, socket=<value optimized out>) at ../../../../nepomuk/services/filewatch/kinotify.cpp:365
#19 0x00007ffb59edbfaf in KInotify::qt_metacall (this=0xbe1dd0, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0x7fff8fea6110) at ./kinotify.moc:118
#20 0x00007ffb685ba5f8 in QMetaObject::activate (sender=0xc04e20, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff8fea6110) at kernel/qobject.cpp:3287
#21 0x00007ffb68601b7e in QSocketNotifier::activated (this=<value optimized out>, _t1=15) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#22 0x00007ffb685bff4b in QSocketNotifier::event (this=0xc04e20, e=0x7fff8fea67a0) at kernel/qsocketnotifier.cpp:317
#23 0x00007ffb669009f4 in QApplicationPrivate::notify_helper (this=0xa62320, receiver=0xc04e20, e=0x7fff8fea67a0) at kernel/qapplication.cpp:4462
#24 0x00007ffb669053ba in QApplication::notify (this=<value optimized out>, receiver=0xc04e20, e=0x7fff8fea67a0) at kernel/qapplication.cpp:4341
#25 0x00007ffb678db796 in KApplication::notify (this=0x7fff8fea6bc0, receiver=0xc04e20, event=0x7fff8fea67a0) at ../../kdeui/kernel/kapplication.cpp:311
#26 0x00007ffb685a549c in QCoreApplication::notifyInternal (this=0x7fff8fea6bc0, receiver=0xc04e20, event=0x7fff8fea67a0) at kernel/qcoreapplication.cpp:731
#27 0x00007ffb685cfda9 in sendEvent (source=0xa666d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#28 socketNotifierSourceDispatch (source=0xa666d0) at kernel/qeventdispatcher_glib.cpp:110
#29 0x00007ffb653b9bcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffb653ba3a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffb653ba639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffb685d03ef in QEventDispatcherGlib::processEvents (this=0xa1d4a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#33 0x00007ffb669aa4de in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007ffb685a4882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#35 0x00007ffb685a4abc in QEventLoop::exec (this=0x7fff8fea69d0, flags=...) at kernel/qeventloop.cpp:201
#36 0x00007ffb685a8ecb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#37 0x0000000000403e0e in main (argc=2, argv=<value optimized out>) at ../../../nepomuk/servicestub/main.cpp:167

Reported using DrKonqi
Comment 1 Sebastian Trueg 2011-09-19 08:49:00 UTC
Could you run the strigi indexer in valgrind and reproduce this one?
For that you have to disable the indexer in the nepomuk config: "kcmshell4 nepomuk". Then start it manually in valgrind:

valgrind nepomukservicestub nepomukstrigiservice

Hopefully it will tell me more.
Comment 2 Scott Wood 2011-09-20 15:10:46 UTC
(In reply to comment #1)
> Could you run the strigi indexer in valgrind and reproduce this one?
> For that you have to disable the indexer in the nepomuk config: "kcmshell4
> nepomuk". Then start it manually in valgrind:

It was already unchecked -- not sure if it was always that way, or is there something that would have it off when it crashed?  Is there any other way the Strigi stuff could have showed up in the backtrace?

> valgrind nepomukservicestub nepomukstrigiservice
> 
> Hopefully it will tell me more.

I got this so far, probably not related:
==30305== Conditional jump or move depends on uninitialised value(s)
==30305==    at 0x7884510: inflateReset2 (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
==30305==    by 0x7884605: inflateInit2_ (in /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
==30305==    by 0xB0511C0: png_create_read_struct_2 (in /lib/x86_64-linux-gnu/libpng12.so.0.44.0)
==30305==    by 0xB051366: png_create_read_struct (in /lib/x86_64-linux-gnu/libpng12.so.0.44.0)
==30305==    by 0x65D5BE6: QPngHandlerPrivate::readPngHeader() (qpnghandler.cpp:368)
==30305==    by 0x65D6914: QPngHandlerPrivate::readPngImage(QImage*) (qpnghandler.cpp:439)
==30305==    by 0x65A6C57: QImageReader::read(QImage*) (qimagereader.cpp:1205)
==30305==    by 0x65A72A6: QImageReader::read() (qimagereader.cpp:1155)
==30305==    by 0x659C4F1: operator>>(QDataStream&, QImage&) (qimage.cpp:5204)
==30305==    by 0x65B6DE5: operator>>(QDataStream&, QPixmap&) (qpixmap.cpp:1329)
==30305==    by 0x5BD80AE: KIconLoaderPrivate::findCachedPixmapWithPath(QString const&, QPixmap&, QString&) (kiconloader.cpp:876)
==30305==    by 0x5BDC7C8: KIconLoader::loadIcon(QString const&, KIconLoader::Group, int, int, QStringList const&, QString*, bool) const (kiconloader.cpp:1222)
==30305== 
Error in parsing: Keyword obj not found.
Comment 3 Sebastian Trueg 2011-09-20 18:56:38 UTC
(In reply to comment #2)
> > valgrind nepomukservicestub nepomukstrigiservice
> > 
> > Hopefully it will tell me more.
> 
> I got this so far, probably not related:
> ==30305== Conditional jump or move depends on uninitialised value(s)
> ==30305==    at 0x7884510: inflateReset2 (in
> /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
> ==30305==    by 0x7884605: inflateInit2_ (in
> /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
> ==30305==    by 0xB0511C0: png_create_read_struct_2 (in
> /lib/x86_64-linux-gnu/libpng12.so.0.44.0)
> ==30305==    by 0xB051366: png_create_read_struct (in
> /lib/x86_64-linux-gnu/libpng12.so.0.44.0)
> ==30305==    by 0x65D5BE6: QPngHandlerPrivate::readPngHeader()
> (qpnghandler.cpp:368)
> ==30305==    by 0x65D6914: QPngHandlerPrivate::readPngImage(QImage*)
> (qpnghandler.cpp:439)
> ==30305==    by 0x65A6C57: QImageReader::read(QImage*) (qimagereader.cpp:1205)
> ==30305==    by 0x65A72A6: QImageReader::read() (qimagereader.cpp:1155)
> ==30305==    by 0x659C4F1: operator>>(QDataStream&, QImage&) (qimage.cpp:5204)
> ==30305==    by 0x65B6DE5: operator>>(QDataStream&, QPixmap&)
> (qpixmap.cpp:1329)
> ==30305==    by 0x5BD80AE: KIconLoaderPrivate::findCachedPixmapWithPath(QString
> const&, QPixmap&, QString&) (kiconloader.cpp:876)
> ==30305==    by 0x5BDC7C8: KIconLoader::loadIcon(QString const&,
> KIconLoader::Group, int, int, QStringList const&, QString*, bool) const
> (kiconloader.cpp:1222)
> ==30305== 
> Error in parsing: Keyword obj not found.

Did it actually crash?
Comment 4 Scott Wood 2011-09-21 03:04:22 UTC
(In reply to comment #3)
> Did it actually crash?

No, I haven't been able to reproduce the crash.
Comment 5 Sebastian Trueg 2011-09-21 07:54:06 UTC
*** Bug 276359 has been marked as a duplicate of this bug. ***
Comment 6 Sebastian Trueg 2011-09-21 07:54:49 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > Did it actually crash?
> 
> No, I haven't been able to reproduce the crash.

Are you running KDE 4.7.1 in the meantime? If so this bug can be closed as fixed since the crashing code has been protected with mutexes.
Comment 7 Scott Wood 2011-09-21 15:25:35 UTC
(In reply to comment #6)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > Did it actually crash?
> > 
> > No, I haven't been able to reproduce the crash.
> 
> Are you running KDE 4.7.1 in the meantime? If so this bug can be closed as
> fixed since the crashing code has been protected with mutexes.

I'm running the version 4:4.7.0a-0ubuntu1~natty1~ppa1 of the Ubuntu kde-runtime package.  If it's been fixed since then, I apologize for the noise.  I don't see "mutex" anywhere in the patches Ubuntu has applied, so I assume this fix hasn't been backported.
Comment 8 Sebastian Trueg 2011-10-11 19:15:18 UTC
Closing this as a duplicate of bug 275880 since I am fairly certain that it can
be the only source of the problem. Hopefully the patch I posted there does also
solve this crash.

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