Bug 131972 - Crash when closing Digikam [backtrace]
Summary: Crash when closing Digikam [backtrace]
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Scan (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-06 23:34 UTC by Dik Takken
Modified: 2023-04-08 20:54 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 8.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dik Takken 2006-08-06 23:34:25 UTC
Version:           0.9.0-Beta1 (using KDE KDE 3.5.3)
Installed from:    Gentoo Packages
OS:                Linux

When I closed DigiKam, it crashed. I changed the comments tag of one of the images in the collection , just before closing.

Backtrace:

Using host libthread_db library "/lib/tls/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1229912384 (LWP 8091)]
[New Thread -1291699280 (LWP 9067)]
[New Thread -1283306576 (LWP 8670)]
[New Thread -1230672976 (LWP 8476)]
[New Thread -1239065680 (LWP 8228)]
[KCrash handler]
#6  0x0804c900 in vtable for __cxxabiv1::__si_class_type_info ()
#7  0xb7dce8b7 in Digikam::ImagePropertiesMetaDataTab::setCurrentURL (
    this=0x8253ee0, url=@0x823c9ec, itemType=1135508008)
    at imagepropertiesmetadatatab.cpp:183
#8  0xb7dcc3bf in Digikam::ImagePropertiesSideBarDB::slotChangedTab (
    this=0x823c938, tab=0x8253ee0) at imagepropertiessidebardb.cpp:272
#9  0xb7dcb12e in Digikam::ImagePropertiesSideBarDB::slotFileMetadataChanged (
    this=0x823c938, url=@0x43ae7a28) at imagepropertiessidebardb.cpp:299
#10 0xb7dcbe33 in Digikam::ImagePropertiesSideBarDB::qt_invoke (
    this=0x823c938, _id=59, _o=0xbfb2d9b0) at qucom_p.h:316
#11 0x4366df24 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#12 0xb7d1c180 in Digikam::ImageAttributesWatch::signalFileMetadataChanged (
    this=0xbfb2d9d8, t0=@0x43ae7a28) at imageattributeswatch.moc:178
#13 0xb7d1c1d4 in Digikam::ImageAttributesWatch::fileMetadataChanged (
    this=0x43ae7a28, url=@0x43ae7a28) at imageattributeswatch.cpp:75
#14 0xb7ddb871 in Digikam::ImageDescEditTab::applyAllChanges (this=0x82c5360)
    at imagedescedittab.cpp:448
#15 0xb7ddc18b in ~ImageDescEditTab (this=0x82c5360)
    at imagedescedittab.cpp:305
#16 0x436a5df5 in QWidget::~QWidget () from /usr/qt/3/lib/libqt-mt.so.3
#17 0x437b8f02 in QWidgetStack::~QWidgetStack ()
   from /usr/qt/3/lib/libqt-mt.so.3
#18 0x436a5df5 in QWidget::~QWidget () from /usr/qt/3/lib/libqt-mt.so.3
#19 0x437993cd in QSplitter::~QSplitter () from /usr/qt/3/lib/libqt-mt.so.3
#20 0x436a5df5 in QWidget::~QWidget () from /usr/qt/3/lib/libqt-mt.so.3
#21 0xb7caabb6 in ~DigikamView (this=0x82332f8) at digikamview.cpp:114
#22 0xb7c9d9dd in ~DigikamApp (this=0x8217b98) at digikamapp.cpp:179
#23 0x4366b3df in QObject::event () from /usr/qt/3/lib/libqt-mt.so.3
#24 0x436a6e0c in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3
#25 0x437699a2 in QMainWindow::event () from /usr/qt/3/lib/libqt-mt.so.3
#26 0x436098ff in QApplication::internalNotify ()
   from /usr/qt/3/lib/libqt-mt.so.3
#27 0x43609a9c in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#28 0xb7152ef1 in KApplication::notify (this=0xbfb2e180, receiver=0x8217b98, 
    event=0x838b818) at kapplication.cpp:550
#29 0x4360aaef in QApplication::sendPostedEvents ()
   from /usr/qt/3/lib/libqt-mt.so.3
#30 0x43620065 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#31 0x4361ff26 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
#32 0x43608aaf in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
#33 0x0804a69c in main (argc=1135508008, argv=0x43ae7a28) at main.cpp:273
Comment 1 Marcel Wiesweg 2006-08-13 14:59:12 UTC
SVN commit 572641 by mwiesweg:

- Shut down ImageAttributesWatch connections when closing,
  widgets may have been deleted at that time, which will cause a crash.
- properly shut down albumthumbnailloader when closing to free Shared Memory

CCBUG: 131972



 M  +4 -0      digikamapp.cpp  
 M  +7 -0      imageattributeswatch.cpp  
 M  +1 -0      imageattributeswatch.h  


--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #572640:572641
@@ -85,6 +85,7 @@
 #include "imageattributeswatch.h"
 #include "dcrawbinary.h"
 #include "digikamapp.h"
+#include "albumthumbnailloader.h"
 
 using KIO::Job;
 using KIO::UDSEntryList;
@@ -171,6 +172,8 @@
 
 DigikamApp::~DigikamApp()
 {
+    ImageAttributesWatch::shutDown();
+
     if (ImageWindow::imagewindowCreated())
         delete ImageWindow::imagewindow();
 
@@ -186,6 +189,7 @@
     ImageAttributesWatch::cleanUp();
     LoadingCacheInterface::cleanUp();
     DcrawBinary::cleanUp();
+    AlbumThumbnailLoader::cleanUp();
 
     m_instance = 0;
 }
--- trunk/extragear/graphics/digikam/digikam/imageattributeswatch.cpp #572640:572641
@@ -36,8 +36,15 @@
 void ImageAttributesWatch::cleanUp()
 {
     delete m_instance;
+    m_instance = 0;
 }
 
+void ImageAttributesWatch::shutDown()
+{
+    if (m_instance)
+        m_instance->disconnect(0, 0, 0);
+}
+
 ImageAttributesWatch *ImageAttributesWatch::instance()
 {
     if (!m_instance)
--- trunk/extragear/graphics/digikam/digikam/imageattributeswatch.h #572640:572641
@@ -42,6 +42,7 @@
 
     static ImageAttributesWatch *instance();
     static void cleanUp();
+    static void shutDown();
 
     void imageTagsChanged(Q_LLONG imageId);
     void imagesChanged(int albumId);
Comment 2 Marcel Wiesweg 2006-08-13 15:12:37 UTC
If the bug was reproducible for you, please test it.
If it was a once-and-never-again, I will close it after this fix.
Comment 3 Marcel Wiesweg 2006-09-02 17:08:21 UTC
*** Bug has been marked as fixed ***.