Summary: | Mousewheeling on a slideshow sometimes crash digikam | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Yann LE HIR <yann.lehir> |
Component: | Plugin-Generic-SlideShow | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, marcel.wiesweg |
Priority: | NOR | ||
Version: | 0.10.0 | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 7.6.0 | |
Sentry Crash Report: |
Description
Yann LE HIR
2008-11-30 23:07:55 UTC
Marcel, This is not the only one entry in bugzilla with a similar backtrace where threadimageio component crash. This is not only relevant of Slideshow tool. If i remember, it become with kipi-plugins too (Gallery tool for ex). If you remember, i have talk about this problem during coding sprint... But without any sucess to reproduce the problem on my computer, it haven't be easy (:=))) Gilles I reproduced it, here is what I get in the console : pure virtual method called terminate called without an active exception KCrash: crashing... crashRecursionCounter = 2 KCrash: Application Name = digikam path = <unknown> pid = 21184 sock_file=~/.kde4.1/socket-azmodan/kdeinit4__0 The backtrace is a little bit different : Thread 2 (Thread 0xaa4d7b90 (LWP 21225)): #0 0xffffe424 in __kernel_vsyscall () #1 0xb7cc5806 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb7d4a353 in ?? () from /usr/lib/qt4/libQtCore.so.4 #3 0xb7d45905 in QMutex::lock () from /usr/lib/qt4/libQtCore.so.4 #4 0xb6b23f71 in CacheLock (this=0xaa4d66a0, cache=0x84b41b0) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/loadingcache.cpp:290 #5 0xb6b29f7a in Digikam::SharedLoadingTask::progressInfo (this=0xb2b028a0, progress=0.443009317) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/loadsavetask.cpp:230 #6 0xb6a82e56 in Digikam::JPEGLoader::load (this=0xaa4d6d80, filePath=@0xb2b028ac, observer=0xb2b028a8) at /home/build/digikam_4.1/graphics/digikam/libs/dimg/loaders/jpegloader.cpp:338 #7 0xb6a6ad53 in Digikam::DImg::load (this=0xaa4d7084, filePath=@0xb2b028ac, loadFlagsInt=31, observer=0xb2b028a8, rawDecodingSettings=@0xaa4d6f54) at /home/build/digikam_4.1/graphics/digikam/libs/dimg/dimg.cpp:358 #8 0xb6a6bc2c in Digikam::DImg::load (this=0xaa4d7084, filePath=@0xb2b028ac, observer=0xb2b028a8, rawDecodingSettings=@0xaa4d7244) at /home/build/digikam_4.1/graphics/digikam/libs/dimg/dimg.cpp:333 #9 0xb6b2ca5a in Digikam::PreviewLoadingTask::execute (this=0xb2b028a0) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/previewtask.cpp:188 #10 0xb6b1d8e3 in Digikam::LoadSaveThread::run (this=0xff10d48) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/loadsavethread.cpp:132 #11 0xb7d4ab5f in ?? () from /usr/lib/qt4/libQtCore.so.4 #12 0xb7cc145f in start_thread () from /lib/libpthread.so.0 Thread 1 (Thread 0xb4c37700 (LWP 21184)): #0 0xffffe424 in __kernel_vsyscall () #1 0xb7cc5806 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0xb7d4a353 in ?? () from /usr/lib/qt4/libQtCore.so.4 #3 0xb7d45905 in QMutex::lock () from /usr/lib/qt4/libQtCore.so.4 #4 0xb6b23f71 in CacheLock (this=0xbf844a88, cache=0x84b41b0) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/loadingcache.cpp:290 #5 0xb6b29ec5 in Digikam::SharedLoadingTask::setStatus (this=0xb2b06778, status=Digikam::LoadingTask::LoadingTaskStatusStopping) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/loadsavetask.cpp:254 #6 0xb6b2073e in Digikam::ManagedLoadSaveThread::loadPreview ( this=0xff0a5d8, description=@0xbf844be4) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/managedloadsavethread.cpp:236 #7 0xb6b2bad3 in Digikam::PreviewLoadThread::load (this=0xff0a5d8, description=@0xbf844ccc) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/previewloadthread.cpp:43 #8 0xb6bd6502 in Digikam::SlideShow::loadNextImage (this=0xbc69bd0) at /home/build/digikam_4.1/graphics/digikam/utilities/slideshow/slideshow.cpp:270 #9 0xb6bd6661 in Digikam::SlideShow::slotNext (this=0xbc69bd0) at /home/build/digikam_4.1/graphics/digikam/utilities/slideshow/slideshow.cpp:642 #10 0xb6bd67bf in Digikam::SlideShow::wheelEvent (this=0xbc69bd0, e=0xbf84521c) at /home/build/digikam_4.1/graphics/digikam/utilities/slideshow/slideshow.cpp:657 #11 0xb5fa3b48 in QWidget::event () from /usr/lib/qt4/libQtGui.so.4 #12 0xb5f490b0 in QApplicationPrivate::notify_helper () from /usr/lib/qt4/libQtGui.so.4 #13 0xb5f4eb57 in QApplication::notify () from /usr/lib/qt4/libQtGui.so.4 #14 0xb7951845 in KApplication::notify () from /usr/kde/4.1/lib/libkdeui.so.5 #15 0xbf845a3c in ?? () #16 0x0bc69bd0 in ?? () #17 0xbf84521c in ?? () #18 0xb7d4228f in QInternal::activateCallbacks () from /usr/lib/qt4/libQtCore.so.4 #19 0xb7e3f524 in QCoreApplication::notifyInternal () from /usr/lib/qt4/libQtCore.so.4 #20 0xb5fa90dd in ?? () from /usr/lib/qt4/libQtGui.so.4 #21 0xb5fb740b in ?? () from /usr/lib/qt4/libQtGui.so.4 #22 0xb5fb5959 in QApplication::x11ProcessEvent () from /usr/lib/qt4/libQtGui.so.4 #23 0xb5fdcfdb in ?? () from /usr/lib/qt4/libQtGui.so.4 #24 0xb7e3e721 in QEventLoop::processEvents () from /usr/lib/qt4/libQtCore.so.4 #25 0xb7e3e8ad in QEventLoop::exec () from /usr/lib/qt4/libQtCore.so.4 #26 0xb7e40a82 in QCoreApplication::exec () from /usr/lib/qt4/libQtCore.so.4 #27 0xb5f488c4 in QApplication::exec () from /usr/lib/qt4/libQtGui.so.4 #28 0x082740a6 in main (argc=1, argv=0xbf845c54) at /home/build/digikam_4.1/graphics/digikam/digikam/main.cpp:180 #0 0xffffe424 in __kernel_vsyscall () SVN commit 891676 by mwiesweg: Fix a crash in Slideshow when going back from the last page with the mouse wheel CCBUG: 176584 M +1 -1 slideshow.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=891676 The commit fixes a reproducible crash that I had with the slide show. Please test if you have the same problem. I tried to reproduce the crash in the last 10 minutes without your patch, but I can't get it crash (now my finger hurts :-)) Do you use a special amount of images when the crash appears? Andi I tested with 10 images. Crash happened only from the last "Click to exit slideshow..." page here, but very reliably, not much mouse wheel involved. (I did not verify it happens only with the mouse wheel btw, wrote it just because it's the bug report here) I still can't reproduce it, I turned off "Slideshow runs in a loop" and clicked my way through 10 images, it doesn't crash. So I guess I can not confirm that your patch is fixing it... Andi I can still reproduce the bug. Your patch sure fixes a bug but not the one I repported :) I use about 30,000 photos for a slideshow, but I don't think size matters. Since I can reproduce it, I'll try to get a better look at the code next week end. It usually provides better backtraces if you let digikam run under gdb directly and produce the crash then. The backtraces that you provide dont show me any crash location; there are two threads waiting in a mutex and doing nothing wrong. I tried that, but unfortunatly when digikam crashes I'm stuck on the slideshow and I can't go to the console for a trace :/ If you've any idea how I can make digikam show the slideshow in an internal window or in an other X session I'll get your trace :) Oh yes, I experienced that today as well. If you use the very latest svn this behavior is changed (the slideshow window uses less intrusive window flags) and you can use Alt+Tab to get back to any other window from the slideshow. Thank you :) Here is the trace : pure virtual method called terminate called without an active exception Program received signal SIGABRT, Aborted. [Switching to Thread 0xa9dffb90 (LWP 9035)] 0xffffe424 in __kernel_vsyscall () (gdb) bt #0 0xffffe424 in __kernel_vsyscall () #1 0xb51b6f4f in raise () from /lib/libc.so.6 #2 0xb52d7ff4 in ?? () from /lib/libc.so.6 #3 0xa9dffb90 in ?? () #4 0xb51b8958 in abort () from /lib/libc.so.6 #5 0x00000040 in ?? () #6 0xb539ccf5 in ?? () from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 #7 0xb539cd32 in std::terminate () from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 #8 0xb539d3e5 in __cxa_pure_virtual () from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 #9 0xb6ae5976 in Digikam::PreviewLoadingTask::execute (this=0xaa0e7958) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/previewtask.cpp:113 #10 0xb6ad6dd3 in Digikam::LoadSaveThread::run (this=0x14a68ac8) at /home/build/digikam_4.1/graphics/digikam/libs/threadimageio/loadsavethread.cpp:132 #11 0xb7d04b5f in ?? () from /usr/lib/qt4/libQtCore.so.4 #12 0xb7c7b45f in start_thread () from /lib/libpthread.so.0 Marcel, i never experienced crash in slideshow on my computers, with and without your patch... yann, Can you run digiKam under valgrind to try to see more informations about crash ? Gilles I would interpret this as an attempt to access a pointer (m_usedProcess) which has been deleted. But I carefully looked at the code and as far as I can see all is correctly mutex protected. Valgrind may help, and I have added some debug statements to current SVN which might be interesting in the context of the crash. Thank you very much for your help SVN commit 892243 by mwiesweg: This fixes a possible crash when a task is stopped in thread 1, the task is waiting in thread 2 for another master task that does the work in thread 3. CCBUG: 176584 M +2 -0 loadsavetask.cpp M +3 -2 previewtask.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=892243 Hi, I tested a lot the slideshow with svn-892243. I couldn't reproduce the bug so far, so I guess your patch fixed it :) Thanks Yann. I close this file now. Gilles Caulier |