Bug 183722

Summary: Strigi crashes dolphin when hovering over partially tarred file
Product: [Applications] dolphin Reporter: Oliver Putz <Regnaron>
Component: generalAssignee: Peter Penz <peter.penz19>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra
Priority: NOR    
Version: 16.12.2   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 4.7.0
Sentry Crash Report:

Description Oliver Putz 2009-02-08 20:28:42 UTC
Version:           1.2 (using 4.2.00 (KDE 4.2.0), Gentoo)
Compiler:          x86_64-pc-linux-gnu-gcc
OS:                Linux (x86_64) release 2.6.28-gentoo

Steps to reprouce:

1) Create a tar file (foo.tar)
2) use tar -cf bar foo.tar and cancel process before it gets finished
3) Whenever you hover over bar in dolphin, it crashes with the backtrace below

Not exactly sure if this is a strigi or dolphin issue, but as dolphin should definitively not crash, I report it here.

Application: Dolphin (dolphin), signal SIGABRT
0x00007fd1ab4fbca1 in nanosleep () from /lib/libc.so.6
Current language:  auto; currently c

Thread 1 (Thread 0x7fd1af9e2700 (LWP 9109)):
[KCrash Handler]
#5  0x00007fd1ab48e235 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#6  0x00007fd1ab48f753 in *__GI_abort () at abort.c:88
#7  0x00007fd1ab4870e9 in *__GI___assert_fail (assertion=0x7fd1aade7e09 "length >= -1", file=0x7fd1aade7db1 "/var/tmp/portage/app-misc/strigi-0.6.3/work/strigi-0.6.3/src/streams/subinputstream.cpp", 
    line=30, function=0x7fd1aade7f20 "Strigi::SubInputStream::SubInputStream(Strigi::InputStream*, int64_t)") at assert.c:78
#8  0x00007fd1aade47a3 in SubInputStream (this=<value optimized out>, i=<value optimized out>, length=<value optimized out>)
    at /var/tmp/portage/app-misc/strigi-0.6.3/work/strigi-0.6.3/src/streams/subinputstream.cpp:30
#9  0x00007fd1aade508e in Strigi::TarInputStream::nextEntry (this=0x7fffb7a25490) at /var/tmp/portage/app-misc/strigi-0.6.3/work/strigi-0.6.3/src/streams/tarinputstream.cpp:44
#10 0x00007fd1ab02eb07 in TarEndAnalyzer::staticAnalyze (idx=@0x7fffb7a25780, in=0xad7120)
    at /var/tmp/portage/app-misc/strigi-0.6.3/work/strigi-0.6.3/src/streamanalyzer/endanalyzers/tarendanalyzer.cpp:52
#11 0x00007fd1ab02ebc1 in TarEndAnalyzer::analyze (this=0xa2c030, idx=@0x7fffb7a25780, in=0x6)
    at /var/tmp/portage/app-misc/strigi-0.6.3/work/strigi-0.6.3/src/streamanalyzer/endanalyzers/tarendanalyzer.cpp:40
#12 0x00007fd1ab02249a in Strigi::StreamAnalyzerPrivate::analyze (this=0xade6a0, idx=@0x7fffb7a25780, input=0xad7120)
    at /var/tmp/portage/app-misc/strigi-0.6.3/work/strigi-0.6.3/src/streamanalyzer/streamanalyzer.cpp:415
#13 0x00007fd1af4c03d8 in KFileMetaInfoPrivate::init (this=0xd421b0, stream=<value optimized out>, url=<value optimized out>, mtime=1234119638)
    at /var/tmp/portage/kde-base/kdelibs-4.2.0-r1/work/kdelibs-4.2.0/kio/kio/kfilemetainfo.cpp:201
#14 0x00007fd1af4c0733 in KFileMetaInfo (this=0x7fffb7a25950, path=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.2.0-r1/work/kdelibs-4.2.0/kio/kio/kfilemetainfo.cpp:228
#15 0x00000000004382d1 in InfoSidebarPage::showMetaInfo (this=0x837a20) at /var/tmp/portage/kde-base/dolphin-4.2.0/work/dolphin-4.2.0/apps/dolphin/src/infosidebarpage.cpp:395
#16 0x00000000004389d1 in InfoSidebarPage::showItemInfo (this=0x837a20) at /var/tmp/portage/kde-base/dolphin-4.2.0/work/dolphin-4.2.0/apps/dolphin/src/infosidebarpage.cpp:230
#17 0x0000000000439097 in InfoSidebarPage::qt_metacall (this=0x837a20, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffb7a25cf0)
    at /var/tmp/portage/kde-base/dolphin-4.2.0/work/dolphin_build/apps/dolphin/src/infosidebarpage.moc:93
#18 0x00007fd1ace462ac in QMetaObject::activate (sender=0x8a0880, from_signal_index=<value optimized out>, to_signal_index=4, argv=0xffffffffffffffff) at kernel/qobject.cpp:3028
#19 0x00007fd1ace3fa43 in QObject::event (this=0x8a0880, e=0x2395) at kernel/qobject.cpp:1117
#20 0x00007fd1ac0eb68d in QApplicationPrivate::notify_helper (this=0x6950e0, receiver=0x8a0880, e=0x7fffb7a263d0) at kernel/qapplication.cpp:3809
#21 0x00007fd1ac0f266e in QApplication::notify (this=0x7fffb7a266e0, receiver=0x8a0880, e=0x7fffb7a263d0) at kernel/qapplication.cpp:3774
#22 0x00007fd1adbd22a8 in KApplication::notify (this=0x7fffb7a266e0, receiver=0x8a0880, event=0x7fffb7a263d0)
    at /var/tmp/portage/kde-base/kdelibs-4.2.0-r1/work/kdelibs-4.2.0/kdeui/kernel/kapplication.cpp:307
#23 0x00007fd1ace2f9d0 in QCoreApplication::notifyInternal (this=0x7fffb7a266e0, receiver=0x8a0880, event=0x7fffb7a263d0) at kernel/qcoreapplication.cpp:593
#24 0x00007fd1ace5e2b6 in QTimerInfoList::activateTimers (this=0x694530) at kernel/qcoreapplication.h:215
#25 0x00007fd1ace5adfd in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:166
#26 0x00007fd1a86b92f7 in IA__g_main_context_dispatch (context=0x693920) at gmain.c:2012
#27 0x00007fd1a86bb1b7 in g_main_context_iterate (context=0x693920, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2645
#28 0x00007fd1a86bb29d in IA__g_main_context_iteration (context=0x693920, may_block=1) at gmain.c:2708
#29 0x00007fd1ace5ad5f in QEventDispatcherGlib::processEvents (this=0x695250, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:325
#30 0x00007fd1ac18142f in QGuiEventDispatcherGlib::processEvents (this=0x2395, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#31 0x00007fd1ace2e582 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -1214093808}) at kernel/qeventloop.cpp:149
#32 0x00007fd1ace2e70d in QEventLoop::exec (this=0x7fffb7a26650, flags={i = -1214093728}) at kernel/qeventloop.cpp:200
#33 0x00007fd1ace30ccd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:851
#34 0x000000000043abf1 in main (argc=6, argv=0x7fffb7a26bc8) at /var/tmp/portage/kde-base/dolphin-4.2.0/work/dolphin-4.2.0/apps/dolphin/src/main.cpp:94
Comment 2 Peter Penz 2011-02-27 20:11:36 UTC
Git commit d1254968eac95f4d9d8c47552e27f0cc40e6aed9 by Peter Penz.
Committed on 27/02/2011 at 20:01.
Pushed by ppenz into branch 'master'.

KFileMetaDataProvider: Don't crash if a Strigi analyzer crashes

Some Strigi analyzers are still unstable and crash under certain circumstances. This patch moves the reading of the meta-data into a custom process instead of doing it in a thread, which assures that a crashing Strigi analyzer does not result in crashing Dolphin or Konqueror when hovering some items.

FIXED-IN: 4.7.0
BUG: 257964
BUG: 258715
BUG: 262299
BUG: 263468
BUG: 263502
BUG: 264254
BUG: 234799
BUG: 251462
BUG: 251701
BUG: 258918
BUG: 192377
BUG: 195564
BUG: 199368
BUG: 210841
BUG: 245376
BUG: 246461
BUG: 246901
BUG: 249150
BUG: 261952
BUG: 249876
BUG: 179376
BUG: 179417
BUG: 179420
BUG: 181591
BUG: 183269
BUG: 183722
BUG: 185667
BUG: 188596
BUG: 191864
BUG: 193112
BUG: 205813
BUG: 244621
BUG: 245451
BUG: 248214
BUG: 249655
BUG: 249876
BUG: 265549
BUG: 267079

M  +11   -1    kio/CMakeLists.txt     
M  +68   -38   kio/kfile/kfilemetadataprovider.cpp     
M  +2    -1    kio/kfile/kfilemetadataprovider_p.h     
A  +174  -0    kio/kfile/kfilemetadatareader.cpp         [License: LGPL (v2+)]
M  +0    -2    kio/kfile/kfilemetadatawidget.cpp     
D  +0    -178  kio/kfile/kloadfilemetadatathread.cpp     
D  +0    -96   kio/kfile/kloadfilemetadatathread_p.h     

http://commits.kde.org/kdelibs/d1254968eac95f4d9d8c47552e27f0cc40e6aed9