Bug 258918

Summary: Dolphin crashed when passing mouse over a PPTX file
Product: [Applications] dolphin Reporter: fsanchez <franciscoadriansanchez>
Component: generalAssignee: Peter Penz <peter.penz19>
Status: RESOLVED FIXED    
Severity: crash CC: frank78ac, remur
Priority: NOR    
Version: 16.12.2   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.7.0
Sentry Crash Report:
Attachments: Powerpoint 2007 presentation

Description fsanchez 2010-12-05 15:59:30 UTC
Application: dolphin (1.5)
KDE Platform Version: 4.5.3 (KDE 4.5.3)
Qt Version: 4.7.0
Operating System: Linux 2.6.32-26-generic x86_64
Distribution: Ubuntu 10.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
- Pass the mouse over a PPTX file (which has animations and usr interactions all that staff) and Dolphin crashed. It doesn't happen with PPT files nor another PPTX file I have there.

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Aborted
[Current thread is 1 (Thread 0x7f012fdd5760 (LWP 5919))]

Thread 3 (Thread 0x7f011c834710 (LWP 5924)):
#0  0x00007f012f6b1f93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f01272464a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f01272468fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f012baa01d6 in QEventDispatcherGlib::processEvents (this=0x1ed3a10, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#4  0x00007f012ba72dd2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f012ba731bc in QEventLoop::exec (this=0x7f011c833db0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f012b97e36d in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f012ba52b48 in QInotifyFileSystemWatcherEngine::run (this=0x21a4070) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f012b9812ee in QThreadPrivate::start (arg=0x21a4070) at thread/qthread_unix.cpp:266
#9  0x00007f01297cd9ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f012f6be70d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f0115bc4710 (LWP 5931)):
[KCrash Handler]
#6  0x00007f012f60ba75 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007f012f60f5c0 in *__GI_abort () at abort.c:92
#8  0x00007f012f604941 in *__GI___assert_fail (assertion=0x7f012881c450 "m_path.size() > m_parent->p->m_path.size()+1", file=<value optimized out>, line=134, 
    function=0x7f012881c740 "Strigi::AnalysisResult::Private::Private(const std::string&, const char*, time_t, Strigi::AnalysisResult&, Strigi::AnalysisResult&)") at assert.c:81
#9  0x00007f01287d497f in Private (this=0x2472800, p=..., name=<value optimized out>, mt=<value optimized out>, t=..., parent=...)
    at /build/buildd/strigi-0.7.2/src/streamanalyzer/analysisresult.cpp:134
#10 0x00007f01287d4a55 in AnalysisResult (this=0x2473e10, path=..., name=0x24633d1 "", mt=315543600, parent=...) at /build/buildd/strigi-0.7.2/src/streamanalyzer/analysisresult.cpp:140
#11 0x00007f01287d52bf in Strigi::AnalysisResult::indexChild (this=0x7f0115bc3940, name=<value optimized out>, mt=315543600, file=0x20115d0)
    at /build/buildd/strigi-0.7.2/src/streamanalyzer/analysisresult.cpp:249
#12 0x00007f012880e985 in ZipEndAnalyzer::analyze (this=0x7f011800a9d0, idx=..., in=0x7f0118042360) at /build/buildd/strigi-0.7.2/src/streamanalyzer/endanalyzers/zipendanalyzer.cpp:62
#13 0x00007f01287f6172 in Strigi::StreamAnalyzerPrivate::analyze (this=0x7f01180254d0, idx=..., input=0x7f0118042360) at /build/buildd/strigi-0.7.2/src/streamanalyzer/streamanalyzer.cpp:421
#14 0x00007f012d9825b5 in KFileMetaInfoPrivate::init (this=<value optimized out>, stream=<value optimized out>, url=<value optimized out>, mtime=1284054900, w=<value optimized out>)
    at ../../kio/kio/kfilemetainfo.cpp:270
#15 0x00007f012d9842f3 in KFileMetaInfo (this=0x7f0115bc3cf0, path=..., w=<value optimized out>) at ../../kio/kio/kfilemetainfo.cpp:299
#16 0x00007f012da6f4b3 in KLoadFileMetaDataThread::run (this=<value optimized out>) at ../../kio/kfile/kloadfilemetadatathread.cpp:130
#17 0x00007f012b9812ee in QThreadPrivate::start (arg=0x2472bb0) at thread/qthread_unix.cpp:266
#18 0x00007f01297cd9ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#19 0x00007f012f6be70d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#20 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f012fdd5760 (LWP 5919)):
#0  0x00007f012f6b1f93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f0125a9b29a in ?? () from /usr/lib/libxcb.so.1
#2  0x00007f0125a9cc2c in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#3  0x00007f012aa288d3 in _XReply () from /usr/lib/libX11.so.6
#4  0x00007f012aa04a45 in XGetImage () from /usr/lib/libX11.so.6
#5  0x00007f012c7c1860 in QX11PixmapData::toImage (this=0x23d73d0, rect=...) at image/qpixmap_x11.cpp:1546
#6  0x00007f012c7baeca in QX11PixmapData::toImage (this=0x1) at image/qpixmap_x11.cpp:1577
#7  0x00007f012c7a7a20 in QPixmap::toImage (this=0x7fffebbf77a0) at image/qpixmap.cpp:487
#8  0x00007f012c7bc0dd in QX11PixmapData::setAlphaChannel (this=0x23df470, alpha=...) at image/qpixmap_x11.cpp:1300
#9  0x00007f012ec7e9c2 in SelectionToggle::paintEvent (this=<value optimized out>, event=<value optimized out>) at ../../../../apps/dolphin/src/selectiontoggle.cpp:175
#10 0x00007f012c71706e in QWidget::event (this=0x21cf230, event=0x7fffebbf8040) at kernel/qwidget.cpp:8333
#11 0x00007f012c6c16ec in QApplicationPrivate::notify_helper (this=0x1de07a0, receiver=0x21cf230, e=0x7fffebbf8040) at kernel/qapplication.cpp:4396
#12 0x00007f012c6c71dd in QApplication::notify (this=0x7fffebbfb180, receiver=0x21cf230, e=0x7fffebbf8040) at kernel/qapplication.cpp:4277
#13 0x00007f012d41d926 in KApplication::notify (this=0x7fffebbfb180, receiver=0x21cf230, event=0x7fffebbf8040) at ../../kdeui/kernel/kapplication.cpp:310
#14 0x00007f012ba740ac in QCoreApplication::notifyInternal (this=0x7fffebbfb180, receiver=0x21cf230, event=0x7fffebbf8040) at kernel/qcoreapplication.cpp:732
#15 0x00007f012c71da7d in QCoreApplication::sendSpontaneousEvent (this=0x21cf2a0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#16 QWidgetPrivate::drawWidget (this=0x21cf2a0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=0x2007b50)
    at kernel/qwidget.cpp:5420
#17 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=0, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#18 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x21b3840, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#19 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=0, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#20 0x00007f012c71e549 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=12, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5614
#21 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x21b3b60, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#22 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=4, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#23 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x21b06e0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#24 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=4, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#25 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x2190810, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#26 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=0, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#27 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x2190540, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#28 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=3, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#29 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x2042b10, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#30 0x00007f012c71e718 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=35, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x2007b50) at kernel/qwidget.cpp:5627
#31 0x00007f012c71d7da in QWidgetPrivate::drawWidget (this=0x1ef5010, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x2007b50) at kernel/qwidget.cpp:5473
#32 0x00007f012c8effb8 in QWidgetBackingStore::sync (this=0x2007b50) at painting/qbackingstore.cpp:1328
#33 0x00007f012c710b90 in QWidgetPrivate::syncBackingStore (this=0x1ef5010) at kernel/qwidget.cpp:1805
#34 0x00007f012c717735 in QWidget::event (this=0x1efd120, event=0x24314a0) at kernel/qwidget.cpp:8480
#35 0x00007f012caf9b5b in QMainWindow::event (this=0x1efd120, event=0x24314a0) at widgets/qmainwindow.cpp:1417
#36 0x00007f012d539e03 in KXmlGuiWindow::event (this=0x7fffebbf7480, ev=0x1) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:132
#37 0x00007f012c6c16ec in QApplicationPrivate::notify_helper (this=0x1de07a0, receiver=0x1efd120, e=0x24314a0) at kernel/qapplication.cpp:4396
#38 0x00007f012c6c71dd in QApplication::notify (this=0x7fffebbfb180, receiver=0x1efd120, e=0x24314a0) at kernel/qapplication.cpp:4277
#39 0x00007f012d41d926 in KApplication::notify (this=0x7fffebbfb180, receiver=0x1efd120, event=0x24314a0) at ../../kdeui/kernel/kapplication.cpp:310
#40 0x00007f012ba740ac in QCoreApplication::notifyInternal (this=0x7fffebbfb180, receiver=0x1efd120, event=0x24314a0) at kernel/qcoreapplication.cpp:732
#41 0x00007f012ba76fd2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x1db8740) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#42 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x1db8740) at kernel/qcoreapplication.cpp:1373
#43 0x00007f012baa0643 in QCoreApplication::sendPostedEvents (s=0x1de4000) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#44 postEventSourceDispatch (s=0x1de4000) at kernel/qeventdispatcher_glib.cpp:277
#45 0x00007f01272428c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#46 0x00007f0127246748 in ?? () from /lib/libglib-2.0.so.0
#47 0x00007f01272468fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#48 0x00007f012baa0183 in QEventDispatcherGlib::processEvents (this=0x1db8280, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#49 0x00007f012c77397e in QGuiEventDispatcherGlib::processEvents (this=0x7fffebbf7480, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#50 0x00007f012ba72dd2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#51 0x00007f012ba731bc in QEventLoop::exec (this=0x7fffebbfb0c0, flags=) at kernel/qeventloop.cpp:201
#52 0x00007f012ba7726b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#53 0x00007f012f9a6d4f in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../../../apps/dolphin/src/main.cpp:98
#54 0x00007f012f5f6c4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fffebbfb698) at libc-start.c:226
#55 0x00000000004006b9 in _start ()

This bug may be a duplicate of or related to bug 258031, bug 252152.

Possible duplicates by query: bug 258031, bug 253991, bug 252152, bug 251462, bug 250738.

Reported using DrKonqi
Comment 1 fsanchez 2010-12-05 16:01:57 UTC
I forgot to add:
If I close the Information panel in Dolphin, it doesn't crash.
Comment 2 Frank Reininghaus 2010-12-06 16:04:24 UTC
Thanks for the bug report. Can you attach the problematic file?
Comment 3 fsanchez 2010-12-06 16:11:33 UTC
(In reply to comment #2)
> Thanks for the bug report. Can you attach the problematic file?

Oh, no. Sorry I can't, I erased it. I didn't realised that it could be usefull.
Comment 4 Frank Reininghaus 2010-12-06 19:47:35 UTC
> Oh, no. Sorry I can't, I erased it. I didn't realised that it could be usefull.

Unfortunately, we can't do much about the bug without the file :-(
If you see the issue again, please reopen the report and provide the test file. Thanks!
Comment 5 fsanchez 2010-12-06 20:01:04 UTC
Created attachment 54217 [details]
Powerpoint 2007 presentation

The problematic file
Comment 6 fsanchez 2010-12-06 20:02:19 UTC
Hell yes, I found it. I had forgot it was also in KMail :D
Comment 7 Frank Reininghaus 2010-12-06 22:13:52 UTC
Thanks for the file! I can reproduce the crash with my 4.5 branch build which uses a somewhat outdated Strigi, but not with my trunk build, which uses a quite up-to-date Strigi from trunk. So it seems that this bug might have been fixed in the meantime.

Looks related to bug 251462, bug 252152.
Comment 8 Karsten König 2011-02-08 17:42:15 UTC
It works fine for me on strigi 0.7.3.99, could you please retry?
Comment 9 fsanchez 2011-02-08 18:11:10 UTC
(In reply to comment #8)
> It works fine for me on strigi 0.7.3.99, could you please retry?

Hi. Who do you reffer to? Although I can still reproduce it since I haven't update my system since the date I report this crash.
Comment 10 Karsten König 2011-02-08 18:14:46 UTC
I refer to you =) Please try a more recent version of strigi, if it is fixed there you'd have to ask your distributor to find which diff fixed it and backport that.
Comment 11 fsanchez 2011-02-08 18:37:01 UTC
> I refer to you =)

Hehe, ok :D It was just for being sure.

Well, some questions: it seems to be that the only packages I have installed is one called "kdepim-strigi-plugins" and "kdegraphics-strigi-plugins". Do I should update both packages?

Which is the version of KDE that has you version of strigi? Kubuntu isn't providing new packages for Lucid, (it's stakced on KDE 4.5.3), and all the version packages seems to be tied to a specific version of KDE, at least in Kubuntu.
Comment 12 Peter Penz 2011-02-27 20:11:34 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