Summary: | Crash when using in Dolphin's context menu "Extract Archive Here, Autodetect Subfolder" | ||
---|---|---|---|
Product: | [Unmaintained] kdelibs | Reporter: | Clemens Eisserer <linuxhippy> |
Component: | general | Assignee: | kdelibs bugs <kdelibs-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alfonsog, art.alexion, cfeck, peter.penz19, rakuco, sebastian |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
testcase
Test program that causes the same crash. New crash information added by DrKonqi |
Description
Clemens Eisserer
2010-07-29 11:29:12 UTC
Can you attach a file that causes this crash? Created attachment 49646 [details]
testcase
Unfourtunatly I can't - it contains source code which doesn't belong to me. However it does seem its not related to the archive decompressed, it seems like Ark crashes if the archive has already been extracted once. If I choose "Extract, autodetect subfolder" several times on the archive attached, I get the crash. The problem is not in Ark at all. After some investigation, I'm still uncertain whether its Strigi or KFileMetaDataWidget (and its companions) that's at fault. I've written a short test case which reproduces most of the relevant code present in KIO::RenameDialog, and I get a similar crash most of the time. Valgrind also outputs a lot of Strigi-related warnings and errors (even when the program does not crash). The more KFileMetaDataWidgets are created, the more likely it is for the crash to happen -- when only one KFileMetaDataWidget is created, it usually crashes only when I run the program with Valgrind; when two instaces are created I almost always get this crash. I'm CC'ing trueg and ppenz here as they've done most of the work on KFileMeta* stuff and can help decide if it's just Strigi that's misbehaving. Created attachment 49656 [details]
Test program that causes the same crash.
This is the program I mentioned in my last comment.
Just compile and run it as "kfilemetadatawidgettest /path/to/some/file" (I've tested it with banner.png from Clemens' test archive).
It crashes most of the time when I create two KFileMetaDataWidget objects, as it is the case in KIO::RenameDialog.
This is one of the backtraces I got (the test case was initially called renamedialogtest): Application: renamedialogtest (renamedialogtest), signal: Segmentation fault [Current thread is 1 (Thread 0xb504e930 (LWP 32228))] Thread 3 (Thread 0xb2c37b70 (LWP 32229)): [KCrash Handler] #6 0xb5ab921b in memcmp () from /lib/libc.so.6 #7 0xb591f7c0 in MimeRule::matches (this=0x96b7668, data=0xbf32a0b8 <Address 0xbf32a0b8 out of bounds>, len=1246187464) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/eventanalyzers/mimeeventanalyzer.cpp:60 #8 0xb591f899 in Mime::matches (this=0x9851dfc, data=0x979ec80 "\310\001o\t\210\365n\t", length=1024) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/eventanalyzers/mimeeventanalyzer.cpp:84 #9 0xb592056f in Strigi::MimeEventAnalyzer::handleData (this=0x97b1160, data=0x979ec80 "\310\001o\t\210\365n\t", length=1024) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/eventanalyzers/mimeeventanalyzer.cpp:289 #10 0xb58d03c9 in Strigi::EventThroughAnalyzer::handleData (this=0x9758648, data=0x979ec80 "\310\001o\t\210\365n\t", size=1024) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/eventthroughanalyzer.cpp:71 #11 0xb580baf1 in Strigi::DataEventInputStream::read (this=0x9704388, start=@0xb2c37008, min=1024, max=1024) at /home/rakuco/kde4/src/kdesupport/strigi/libstreams/lib/dataeventinputstream.cpp:51 #12 0xb58f5981 in Strigi::StreamAnalyzerPrivate::analyze (this=0x96be830, idx=..., input=0x9704388) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:406 #13 0xb58f5641 in Strigi::StreamAnalyzer::analyze (this=0x9716ee8, idx=..., input=0xb2c370d0) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:365 #14 0xb76ab5e0 in KFileMetaInfoPrivate::init (this=0x9680e48, stream=..., url=..., mtime=1277841417, w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:210 #15 0xb76ab891 in KFileMetaInfo (this=0xb2c371fc, path=..., w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:237 #16 0xb77767fb in KLoadFileMetaDataThread::run (this=0x9644868) at /home/rakuco/kde4/src/kdelibs/kio/kfile/kloadfilemetadatathread.cpp:144 #17 0xb5d75f02 in QThreadPrivate::start (arg=0x9644868) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #18 0xb5cc5e60 in start_thread () from /lib/libpthread.so.0 #19 0xb5b1220e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xb2436b70 (LWP 32230)): #0 0xb77eb7f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0xb5b0b1f1 in select () from /lib/libc.so.6 #2 0xb5e5a95f in QProcessManager::run (this=0xb600296c) at /home/rakuco/kde4/src/qt-copy/src/corelib/io/qprocess_unix.cpp:245 #3 0xb5d75f02 in QThreadPrivate::start (arg=0xb600296c) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #4 0xb5cc5e60 in start_thread () from /lib/libpthread.so.0 #5 0xb5b1220e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb504e930 (LWP 32228)): #0 0xb77eb7f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0xb5cca3fc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5d7724d in QWaitConditionPrivate::wait (this=0x9557198, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:88 #3 0xb5d77051 in QWaitCondition::wait (this=0x9556ab8, mutex=0x9556aa0, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:160 #4 0xb5d76932 in QThread::wait (this=0xb600296c, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:660 #5 0xb5e5a722 in ~QProcessManager (this=0xb600296c, __in_chrg=<value optimized out>) at /home/rakuco/kde4/src/qt-copy/src/corelib/io/qprocess_unix.cpp:208 #6 0xb5a70ddf in ?? () from /lib/libc.so.6 #7 0xb5a70e3f in exit () from /lib/libc.so.6 #8 0xb6523bcb in qt_xio_errhandler () at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication_x11.cpp:745 #9 0xb737601b in KApplication::xioErrhandler (this=0xbfe0a0e8, dpy=0x956c7d8) at /home/rakuco/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:415 #10 0xb737530e in kde_xio_errhandler (dpy=0x956c7d8) at /home/rakuco/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:125 #11 0xb5638e26 in _XIOError () from /usr/lib/libX11.so.6 #12 0xb563ff7f in _XEventsQueued () from /usr/lib/libX11.so.6 #13 0xb56291cb in XEventsQueued () from /usr/lib/libX11.so.6 #14 0xb65667de in x11EventSourcePrepare (s=0x9556640, timeout=0xbfe09e9c) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:77 #15 0xb53ed496 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #16 0xb53ee333 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #17 0xb53eea04 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #18 0xb5eb415c in QEventDispatcherGlib::processEvents (this=0x9525468, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:415 #19 0xb6566e44 in QGuiEventDispatcherGlib::processEvents (this=0x9525468, flags=...) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:204 #20 0xb5e7d935 in QEventLoop::processEvents (this=0xbfe0a06c, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #21 0xb5e7da79 in QEventLoop::exec (this=0xbfe0a06c, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:201 #22 0xb5e802c2 in QCoreApplication::exec () at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:1009 #23 0xb649dd7a in QApplication::exec () at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:3668 #24 0x0804934c in main (argc=3, argv=0xbfe0a204) at /home/rakuco/kde4/src/kdelibs/kio/tests/renamedialogtest.cpp:62 A different backtrace: Application: renamedialogtest (kfilemetadatawidgettest), signal: Segmentation fault [Current thread is 1 (Thread 0xb50bb930 (LWP 5332))] Thread 4 (Thread 0xb2ca4b70 (LWP 5333)): [KCrash Handler] #6 0xb5ccddb4 in std::string::compare(std::string const&) const () from /usr/lib/libstdc++.so.6 #7 0xb593433e in std::operator< <char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/basic_string.h:2419 #8 0xb593362c in std::less<std::string>::operator() (this=0xb59d0b04, __x=..., __y=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_function.h:230 #9 0xb5934521 in std::_Rb_tree<std::string, std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*>, std::_Select1st<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> >, std::less<std::string>, std::allocator<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> > >::_M_insert_unique_ (this=0xb59d0b04, __position=..., __v=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_tree.h:1240 #10 0xb59336c1 in std::map<std::string, Strigi::AnalyzerLoader::Private::Module*, std::less<std::string>, std::allocator<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> > >::insert (this=0xb59d0b04, __position=..., __x=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_map.h:541 #11 0xb5932766 in std::map<std::string, Strigi::AnalyzerLoader::Private::Module*, std::less<std::string>, std::allocator<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> > >::operator[] (this=0xb59d0b04, __k=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_map.h:451 #12 0xb59318af in Strigi::AnalyzerLoader::Private::loadModule (lib=0x892b784 "/home/rakuco/kde4/lib/strigi/strigiea_dvi.so") at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/analyzerloader.cpp:175 #13 0xb593166c in Strigi::AnalyzerLoader::loadPlugins (d=0xb5992f5b "/home/rakuco/kde4/lib/strigi") at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/analyzerloader.cpp:134 #14 0xb5960a50 in StreamAnalyzerPrivate (this=0x88e0570, c=...) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:121 #15 0xb596114d in StreamAnalyzer (this=0xb2ca410c, c=...) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:174 #16 0xb77183c9 in KFileMetaInfoPrivate::init (this=0x88da2d0, stream=..., url=..., mtime=1277841417, w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:202 #17 0xb7718891 in KFileMetaInfo (this=0xb2ca41fc, path=..., w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:237 #18 0xb77e37fb in KLoadFileMetaDataThread::run (this=0x88b5bd0) at /home/rakuco/kde4/src/kdelibs/kio/kfile/kloadfilemetadatathread.cpp:144 #19 0xb5de2f02 in QThreadPrivate::start (arg=0x88b5bd0) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #20 0xb5d32e60 in start_thread () from /lib/libpthread.so.0 #21 0xb5b7f20e in clone () from /lib/libc.so.6 Thread 3 (Thread 0xb24a3b70 (LWP 5334)): #0 0xb78587f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0xb5b781f1 in select () from /lib/libc.so.6 #2 0xb5ec795f in QProcessManager::run (this=0xb606f96c) at /home/rakuco/kde4/src/qt-copy/src/corelib/io/qprocess_unix.cpp:245 #3 0xb5de2f02 in QThreadPrivate::start (arg=0xb606f96c) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #4 0xb5d32e60 in start_thread () from /lib/libpthread.so.0 #5 0xb5b7f20e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xb1c79b70 (LWP 5336)): [KCrash Handler] #6 0xb5ccddb4 in std::string::compare(std::string const&) const () from /usr/lib/libstdc++.so.6 #7 0xb593433e in std::operator< <char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/basic_string.h:2419 #8 0xb593362c in std::less<std::string>::operator() (this=0xb59d0b04, __x=..., __y=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_function.h:230 #9 0xb5934521 in std::_Rb_tree<std::string, std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*>, std::_Select1st<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> >, std::less<std::string>, std::allocator<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> > >::_M_insert_unique_ (this=0xb59d0b04, __position=..., __v=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_tree.h:1240 #10 0xb59336c1 in std::map<std::string, Strigi::AnalyzerLoader::Private::Module*, std::less<std::string>, std::allocator<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> > >::insert (this=0xb59d0b04, __position=..., __x=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_map.h:541 #11 0xb5932766 in std::map<std::string, Strigi::AnalyzerLoader::Private::Module*, std::less<std::string>, std::allocator<std::pair<std::string const, Strigi::AnalyzerLoader::Private::Module*> > >::operator[] (this=0xb59d0b04, __k=...) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_map.h:451 #12 0xb59318af in Strigi::AnalyzerLoader::Private::loadModule (lib=0x8918744 "/home/rakuco/kde4/lib/strigi/strigiea_dvi.so") at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/analyzerloader.cpp:175 #13 0xb593166c in Strigi::AnalyzerLoader::loadPlugins (d=0xb5992f5b "/home/rakuco/kde4/lib/strigi") at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/analyzerloader.cpp:134 #14 0xb5960a50 in StreamAnalyzerPrivate (this=0x89155f8, c=...) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:121 #15 0xb596114d in StreamAnalyzer (this=0xb1c7910c, c=...) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:174 #16 0xb77183c9 in KFileMetaInfoPrivate::init (this=0x89ea868, stream=..., url=..., mtime=1277841417, w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:202 #17 0xb7718891 in KFileMetaInfo (this=0xb1c791fc, path=..., w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:237 #18 0xb77e37fb in KLoadFileMetaDataThread::run (this=0x8950060) at /home/rakuco/kde4/src/kdelibs/kio/kfile/kloadfilemetadatathread.cpp:144 #19 0xb5de2f02 in QThreadPrivate::start (arg=0x8950060) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #20 0xb5d32e60 in start_thread () from /lib/libpthread.so.0 #21 0xb5b7f20e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb50bb930 (LWP 5332)): #0 0xb78587f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0xb5d373fc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5de424d in QWaitConditionPrivate::wait (this=0x87be9f8, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:88 #3 0xb5de4051 in QWaitCondition::wait (this=0x87bebc8, mutex=0x87bebb0, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:160 #4 0xb5de3932 in QThread::wait (this=0xb606f96c, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:660 #5 0xb5ec7722 in ~QProcessManager (this=0xb606f96c, __in_chrg=<value optimized out>) at /home/rakuco/kde4/src/qt-copy/src/corelib/io/qprocess_unix.cpp:208 #6 0xb5addddf in ?? () from /lib/libc.so.6 #7 0xb5adde3f in exit () from /lib/libc.so.6 #8 0xb5789c31 in _IceDefaultIOErrorHandler () from /usr/lib/libICE.so.6 #9 0xb57917e3 in _IceRead () from /usr/lib/libICE.so.6 #10 0xb5795cdf in IceProcessMessages () from /usr/lib/libICE.so.6 #11 0xb65a655a in QSmSocketReceiver::socketActivated (this=0x883e5b8) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication_x11.cpp:5716 #12 0xb65a6662 in QSmSocketReceiver::qt_metacall (this=0x883e5b8, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfa91a68) at .moc/debug-shared/qapplication_x11.moc:71 #13 0xb5ef426a in QMetaObject::metacall (object=0x883e5b8, cl=QMetaObject::InvokeMetaMethod, idx=4, argv=0xbfa91a68) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qmetaobject.cpp:237 #14 0xb5f07199 in QMetaObject::activate (sender=0x884d378, m=0xb606c770, local_signal_index=0, argv=0xbfa91a68) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qobject.cpp:3272 #15 0xb5f5f700 in QSocketNotifier::activated (this=0x884d378, _t1=9) at .moc/debug-shared/moc_qsocketnotifier.cpp:89 #16 0xb5f0f107 in QSocketNotifier::event (this=0x884d378, e=0xbfa91ff8) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qsocketnotifier.cpp:317 #17 0xb650d89c in QApplicationPrivate::notify_helper (this=0x87bb2f8, receiver=0x884d378, e=0xbfa91ff8) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:4392 #18 0xb650b148 in QApplication::notify (this=0xbfa922b4, receiver=0x884d378, e=0xbfa91ff8) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:3794 #19 0xb73e27ca in KApplication::notify (this=0xbfa922b4, receiver=0x884d378, event=0xbfa91ff8) at /home/rakuco/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:309 #20 0xb5eecbd7 in QCoreApplication::notifyInternal (this=0xbfa922b4, receiver=0x884d378, event=0xbfa91ff8) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:732 #21 0xb64ff73b in QCoreApplication::sendEvent (receiver=0x884d378, event=0xbfa91ff8) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:215 #22 0xb5f2059c in socketNotifierSourceDispatch (source=0x87bd718) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:110 #23 0xb545af72 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #24 0xb545b750 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #25 0xb545ba04 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #26 0xb5f2115c in QEventDispatcherGlib::processEvents (this=0x878d468, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:415 #27 0xb65d3e44 in QGuiEventDispatcherGlib::processEvents (this=0x878d468, flags=...) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:204 #28 0xb5eea935 in QEventLoop::processEvents (this=0xbfa9223c, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #29 0xb5eeaa79 in QEventLoop::exec (this=0xbfa9223c, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:201 #30 0xb5eed2c2 in QCoreApplication::exec () at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:1009 #31 0xb650ad7a in QApplication::exec () at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:3668 #32 0x080492a8 in main (argc=2, argv=0xbfa923c4) at /home/rakuco/kde4/src/kdelibs/kio/tests/kfilemetadatawidgettest.cpp:39 One final backtrace: Application: renamedialogtest (renamedialogtest), signal: Segmentation fault [Current thread is 1 (Thread 0xb4f60930 (LWP 4367))] Thread 3 (Thread 0xb2b49b70 (LWP 4368)): #0 0xb4c9d207 in __i686.get_pc_thunk.bx () from /usr/lib/libdbus-1.so.3 #1 0xb4cba8bf in _dbus_mutex_lock () from /usr/lib/libdbus-1.so.3 #2 0xb4ca56d1 in _dbus_connection_acquire_io_path () from /usr/lib/libdbus-1.so.3 #3 0xb4ca5b15 in _dbus_connection_do_iteration_unlocked () from /usr/lib/libdbus-1.so.3 #4 0xb4ca82a3 in _dbus_connection_block_pending_call () from /usr/lib/libdbus-1.so.3 #5 0xb4cb5ab1 in dbus_pending_call_block () from /usr/lib/libdbus-1.so.3 #6 0xb4ca776c in dbus_connection_send_with_reply_and_block () from /usr/lib/libdbus-1.so.3 #7 0xb4ca07f1 in send_no_return_values () from /usr/lib/libdbus-1.so.3 #8 0xb4ca09c4 in dbus_bus_add_match () from /usr/lib/libdbus-1.so.3 #9 0xb5f2cdf0 in q_dbus_bus_add_match (connection=0x8e2b3f8, rule=0x8fecdc0 "type='signal',interface='org.kde.KSycoca',member='notifyDatabaseChanged'", error=0xb2b48c74) at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbus_symbols_p.h:90 #10 0xb5f38df9 in QDBusConnectionPrivate::connectSignal (this=0x8e2a328, key=..., hook=...) at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbusintegrator.cpp:2045 #11 0xb5f38beb in QDBusConnectionPrivate::connectSignal (this=0x8e2a328, service=..., path=..., interface=..., name=..., argumentMatch=..., signature=..., receiver=0x8ff5d88, slot=0xb61f30a8 "1notifyDatabaseChanged(QStringList)") at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbusintegrator.cpp:2023 #12 0xb5f26740 in QDBusConnection::connect (this=0xb2b48e5c, service=..., path=..., interface=..., name=..., argumentMatch=..., signature=..., receiver=0x8ff5d88, slot=0xb61f30a8 "1notifyDatabaseChanged(QStringList)") at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbusconnection.cpp:636 #13 0xb5f26558 in QDBusConnection::connect (this=0xb2b48e5c, service=..., path=..., interface=..., name=..., receiver=0x8ff5d88, slot=0xb61f30a8 "1notifyDatabaseChanged(QStringList)") at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbusconnection.cpp:573 #14 0xb6184241 in KSycoca (this=0x8ff5d88) at /home/rakuco/kde4/src/kdelibs/kdecore/sycoca/ksycoca.cpp:185 #15 0xb61864af in KSycocaSingleton::sycoca (this=0x9015590) at /home/rakuco/kde4/src/kdelibs/kdecore/sycoca/ksycoca.cpp:166 #16 0xb6184a4a in KSycoca::self () at /home/rakuco/kde4/src/kdelibs/kdecore/sycoca/ksycoca.cpp:293 #17 0xb6189ce8 in KSycocaFactory (this=0x8f4f7c8, factory_id=KST_KServiceTypeFactory) at /home/rakuco/kde4/src/kdelibs/kdecore/sycoca/ksycocafactory.cpp:53 #18 0xb610d0b7 in KServiceTypeFactory (this=0x8f4f7c8) at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypefactory.cpp:31 #19 0xb610db7c in KSycocaFactorySingleton<KServiceTypeFactory>::self (this=0x8f4c098) at /home/rakuco/kde4/src/kdelibs/kdecore/sycoca/ksycocafactory.h:200 #20 0xb610d2d0 in KServiceTypeFactory::self () at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypefactory.cpp:65 #21 0xb610e752 in KServiceTypeProfiles::ensureParsed (this=0x8ed6588) at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypeprofile.cpp:71 #22 0xb610f4a9 in KServiceTypeProfiles (this=0x8ed6588) at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypeprofile.cpp:40 #23 0xb610e60e in operator-> (this=0xb6206100) at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypeprofile.cpp:60 #24 0xb610eda8 in KServiceTypeProfile::hasProfile (serviceType=...) at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypeprofile.cpp:172 #25 0xb6111213 in KServiceTypeTrader::query (this=0x8f12198, serviceType=..., constraint=...) at /home/rakuco/kde4/src/kdelibs/kdecore/services/kservicetypetrader.cpp:137 #26 0xb75c2f28 in KFileWriterProvider::loadPlugin (this=0x8fa6eb8, key=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilewriteplugin.cpp:52 #27 0xb75bd68a in KFileMetaInfoPrivate::initWriters (this=0x8f236b8, file=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:220 #28 0xb75bd8c5 in KFileMetaInfo (this=0xb2b491fc, path=..., w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:239 #29 0xb76887fb in KLoadFileMetaDataThread::run (this=0x8ed1260) at /home/rakuco/kde4/src/kdelibs/kio/kfile/kloadfilemetadatathread.cpp:144 #30 0xb5c87f02 in QThreadPrivate::start (arg=0x8ed1260) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #31 0xb5bd7e60 in start_thread () from /lib/libpthread.so.0 #32 0xb5a2420e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xb1b1eb70 (LWP 4371)): [KCrash Handler] #6 0xb5809e82 in std::vector<Strigi::StreamEndAnalyzer*, std::allocator<Strigi::StreamEndAnalyzer*> >::size (this=0x0) at /usr/lib/gcc/i686-pc-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_vector.h:534 #7 0xb5807a6c in Strigi::StreamAnalyzerPrivate::analyze (this=0x8fa1700, idx=..., input=0xb1b1e0d0) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:419 #8 0xb5807641 in Strigi::StreamAnalyzer::analyze (this=0x8fc3e60, idx=..., input=0xb1b1e0d0) at /home/rakuco/kde4/src/kdesupport/strigi/libstreamanalyzer/lib/streamanalyzer.cpp:365 #9 0xb75bd5e0 in KFileMetaInfoPrivate::init (this=0x9023230, stream=..., url=..., mtime=1277841417, w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:210 #10 0xb75bd891 in KFileMetaInfo (this=0xb1b1e1fc, path=..., w=...) at /home/rakuco/kde4/src/kdelibs/kio/kio/kfilemetainfo.cpp:237 #11 0xb76887fb in KLoadFileMetaDataThread::run (this=0x8f79ce8) at /home/rakuco/kde4/src/kdelibs/kio/kfile/kloadfilemetadatathread.cpp:144 #12 0xb5c87f02 in QThreadPrivate::start (arg=0x8f79ce8) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qthread_unix.cpp:274 #13 0xb5bd7e60 in start_thread () from /lib/libpthread.so.0 #14 0xb5a2420e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb4f60930 (LWP 4367)): #0 0xb76fd7f2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0xb5bdc3fc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb5c8924d in QWaitConditionPrivate::wait (this=0x8e2a590, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:88 #3 0xb5c89051 in QWaitCondition::wait (this=0x8e074b8, mutex=0x8e074b0, time=4294967295) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:160 #4 0xb5c83214 in QReadWriteLock::lockForWrite (this=0x8e2a360) at /home/rakuco/kde4/src/qt-copy/src/corelib/thread/qreadwritelock.cpp:293 #5 0xb5f282ff in QDBusWriteLocker (this=0xbfcd3f14, a=ObjectDestroyedAction, s=0x8e2a328) at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbusthreaddebug_p.h:166 #6 0xb5f32a9b in QDBusConnectionPrivate::objectDestroyed (this=0x8e2a328, obj=0x8ec7c38) at /home/rakuco/kde4/src/qt-copy/src/dbus/qdbusintegrator.cpp:1128 #7 0xb5f75384 in QDBusConnectionPrivate::qt_metacall (this=0x8e2a328, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfcd4028) at .moc/debug-shared/moc_qdbusconnection_p.cpp:101 #8 0xb5d9926a in QMetaObject::metacall (object=0x8e2a328, cl=QMetaObject::InvokeMetaMethod, idx=10, argv=0xbfcd4028) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qmetaobject.cpp:237 #9 0xb5dac199 in QMetaObject::activate (sender=0x8ec7c38, m=0xb5f0c530, local_signal_index=0, argv=0xbfcd4028) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qobject.cpp:3272 #10 0xb5dad9bc in QObject::destroyed (this=0x8ec7c38, _t1=0x8ec7c38) at .moc/debug-shared/moc_qobject.cpp:149 #11 0xb5da7a8c in ~QObject (this=0x8ec7c38, __in_chrg=<value optimized out>) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qobject.cpp:842 #12 0xb590606b in ~ResourceManager (this=0x8ec7c38, __in_chrg=<value optimized out>) at /home/rakuco/kde4/src/kdelibs/nepomuk/core/resourcemanager.cpp:291 #13 0xb5907bb3 in ~ResourceManagerHelper (this=0x8ec7c38, __in_chrg=<value optimized out>) at /home/rakuco/kde4/src/kdelibs/nepomuk/core/resourcemanager.cpp:307 #14 0xb590628c in destroy () at /home/rakuco/kde4/src/kdelibs/nepomuk/core/resourcemanager.cpp:311 #15 0xb5907abf in ~KCleanUpGlobalStatic (this=0xb5954de8, __in_chrg=<value optimized out>) at /home/rakuco/kde4/src/kdelibs/kdecore/kernel/kglobal.h:62 #16 0xb5982ddf in ?? () from /lib/libc.so.6 #17 0xb5982e3f in exit () from /lib/libc.so.6 #18 0xb6435bcb in qt_xio_errhandler () at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication_x11.cpp:745 #19 0xb728801b in KApplication::xioErrhandler (this=0xbfcd44f8, dpy=0x8df87d8) at /home/rakuco/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:415 #20 0xb728730e in kde_xio_errhandler (dpy=0x8df87d8) at /home/rakuco/kde4/src/kdelibs/kdeui/kernel/kapplication.cpp:125 #21 0xb554ae26 in _XIOError () from /usr/lib/libX11.so.6 #22 0xb5551f7f in _XEventsQueued () from /usr/lib/libX11.so.6 #23 0xb553b1cb in XEventsQueued () from /usr/lib/libX11.so.6 #24 0xb64787de in x11EventSourcePrepare (s=0x8de2640, timeout=0xbfcd42bc) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:77 #25 0xb52ff496 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0 #26 0xb5300333 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #27 0xb5300a04 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #28 0xb5dc617c in QEventDispatcherGlib::processEvents (this=0x8db1468, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:417 #29 0xb6478e44 in QGuiEventDispatcherGlib::processEvents (this=0x8db1468, flags=...) at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:204 #30 0xb5d8f935 in QEventLoop::processEvents (this=0xbfcd448c, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #31 0xb5d8fa79 in QEventLoop::exec (this=0xbfcd448c, flags=...) at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qeventloop.cpp:201 #32 0xb5d922c2 in QCoreApplication::exec () at /home/rakuco/kde4/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:1009 #33 0xb63afd7a in QApplication::exec () at /home/rakuco/kde4/src/qt-copy/src/gui/kernel/qapplication.cpp:3668 #34 0x0804931d in main (argc=3, argv=0xbfcd4614) at /home/rakuco/kde4/src/kdelibs/kio/tests/renamedialogtest.cpp:41 Valgrind log for one of the Ark tests I did earlier. ==9724== Thread 5: ==9724== Use of uninitialised value of size 4 ==9724== at 0x5E53CEA: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) (in /usr/lib/libstdc++.so.6.0.14) ==9724== by 0x637E396: Mime::Mime(Mime const&) (in /home/rakuco/kde4/lib/libstreamanalyzer.so.0.7.2) ==9724== by 0x637FDD3: void std::_Construct<Mime, Mime>(Mime*, Mime const&) (stl_construct.h:80) ==9724== by 0x637FBC6: Mime* std::__uninitialized_copy<false>::uninitialized_copy<Mime*, Mime*>(Mime*, Mime*, Mime*) (stl_uninitialized.h:74) ==9724== by 0x637F8DC: Mime* std::uninitialized_copy<Mime*, Mime*>(Mime*, Mime*, Mime*) (stl_uninitialized.h:116) ==9724== by 0x637F5E7: Mime* std::__uninitialized_copy_a<Mime*, Mime*, Mime>(Mime*, Mime*, Mime*, std::allocator<Mime>&) (stl_uninitialized.h:318) ==9724== by 0x637F03C: Mime* std::__uninitialized_move_a<Mime*, Mime*, std::allocator<Mime> >(Mime*, Mime*, Mime*, std::allocator<Mime>&) (stl_uninitialized.h:328) ==9724== by 0x637E61D: std::vector<Mime, std::allocator<Mime> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Mime*, std::vector<Mime, std::allocator<Mime> > >, Mime const&) (vector.tcc:338) ==9724== by 0x637DDA0: std::vector<Mime, std::allocator<Mime> >::push_back(Mime const&) (stl_vector.h:749) ==9724== by 0x637D437: Strigi::MimeEventAnalyzer::Private::parseFile(std::string const&) (mimeeventanalyzer.cpp:268) ==9724== by 0x637CB7F: Strigi::MimeEventAnalyzer::Private::parseFiles() (mimeeventanalyzer.cpp:121) ==9724== by 0x637D4B5: Strigi::MimeEventAnalyzer::startAnalysis(Strigi::AnalysisResult*) (mimeeventanalyzer.cpp:274) ==9724== ==9724== Invalid read of size 4 ==9724== at 0x5E53CEA: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) (in /usr/lib/libstdc++.so.6.0.14) ==9724== by 0x637E396: Mime::Mime(Mime const&) (in /home/rakuco/kde4/lib/libstreamanalyzer.so.0.7.2) ==9724== by 0x637FDD3: void std::_Construct<Mime, Mime>(Mime*, Mime const&) (stl_construct.h:80) ==9724== by 0x637FBC6: Mime* std::__uninitialized_copy<false>::uninitialized_copy<Mime*, Mime*>(Mime*, Mime*, Mime*) (stl_uninitialized.h:74) ==9724== by 0x637F8DC: Mime* std::uninitialized_copy<Mime*, Mime*>(Mime*, Mime*, Mime*) (stl_uninitialized.h:116) ==9724== by 0x637F5E7: Mime* std::__uninitialized_copy_a<Mime*, Mime*, Mime>(Mime*, Mime*, Mime*, std::allocator<Mime>&) (stl_uninitialized.h:318) ==9724== by 0x637F03C: Mime* std::__uninitialized_move_a<Mime*, Mime*, std::allocator<Mime> >(Mime*, Mime*, Mime*, std::allocator<Mime>&) (stl_uninitialized.h:328) ==9724== by 0x637E61D: std::vector<Mime, std::allocator<Mime> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Mime*, std::vector<Mime, std::allocator<Mime> > >, Mime const&) (vector.tcc:338) ==9724== by 0x637DDA0: std::vector<Mime, std::allocator<Mime> >::push_back(Mime const&) (stl_vector.h:749) ==9724== by 0x637D437: Strigi::MimeEventAnalyzer::Private::parseFile(std::string const&) (mimeeventanalyzer.cpp:268) ==9724== by 0x637CB7F: Strigi::MimeEventAnalyzer::Private::parseFiles() (mimeeventanalyzer.cpp:121) ==9724== by 0x637D4B5: Strigi::MimeEventAnalyzer::startAnalysis(Strigi::AnalysisResult*) (mimeeventanalyzer.cpp:274) ==9724== Address 0xffb29d74 is not stack'd, malloc'd or (recently) free'd Thanks a lot for your investigations and your test program. We are aware about those issues and the main root cause seems to be a libdbus issue (beside some issues in Strigi analyzers)). More information is available at https://bugs.kde.org/show_bug.cgi?id=232054#c37 I'll try to focus on fixing at least the non-dbus related crashes during the next weeks. Created attachment 49665 [details]
New crash information added by DrKonqi
ark (2.15) on KDE Platform 4.4.92 (KDE 4.4.92 (KDE 4.5 RC2)) using Qt 4.7.0
- What I was doing when the application crashed:
I was trying to extract a rar file in Dolphin with the "Extract Archive Here" from context menu. I tried several times and I got every time the same crash until I realized that the file I wanted to extract was already in the folder. So just to check what would happend if the file wasn't there, I deleted the file and I tried again to see if I got the same crash. I didn't, it worked.
-- Backtrace (Reduced):
#8 0xb57a96b7 in Mime (this=0x9658c0c, __position=..., __x=...) at /build/buildd/strigi-0.7.2/src/streamanalyzer/eventanalyzers/mimeeventanalyzer.cpp:67
#9 uninitialized_copy<Mime*, Mime*> (this=0x9658c0c, __position=..., __x=...) at /usr/include/c++/4.4/bits/stl_uninitialized.h:74
#10 uninitialized_copy<Mime*, Mime*> (this=0x9658c0c, __position=..., __x=...) at /usr/include/c++/4.4/bits/stl_uninitialized.h:117
#11 __uninitialized_copy_a<Mime*, Mime*, Mime> (this=0x9658c0c, __position=..., __x=...) at /usr/include/c++/4.4/bits/stl_uninitialized.h:257
#12 __uninitialized_move_a<Mime*, Mime*, std::allocator<Mime> > (this=0x9658c0c, __position=..., __x=...) at /usr/include/c++/4.4/bits/stl_uninitialized.h:267
Hey Peter, Thanks for the update. Do you think this bug should be merged with bug 232054? > Do you think this bug should be merged with bug 232054? Yes, although 232054 is already a container for different root causes, I think it is better to have this report linked there. *** This bug has been marked as a duplicate of bug 232054 *** Hm, but bug 232054 is not about a crash... > Hm, but bug 232054 is not about a crash...
You're right, I've reverted the duplicate marking. I anyhow need to iterate through all tooltip/infopanel reports as soon as the issues are resolved...
I think we can close this report once again after trueg's commit 1158299, which fixed bug 232054. *** Bug 246760 has been marked as a duplicate of this bug. *** Looking at commit 1158299, I doubt the crash from comment #0 is fixed by it. In this case, can you please reopen and/or test the program I've attached to this report? I've verified KDE SC 4.5.0 with your attached test program and no crash occurs anymore. Commit 1158299 is partly involved into this: The reason for the crash of this report was that KFileMetaInfo is not reentrant and I provided a workaround in another commit that bypasses this issue. The original intention of commit 1158299 to avoid bypassing the set limit for parsing files, but Sebastian TrĂ¼g also fixed the reentrency problem of KFileMetaInfo by very nice (and necessary) cleanups of the code. However I need to do further tests with KFileMetaInfo to be 100 % sure that it is reentrant now before removing my workaround. |