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
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);
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.
*** Bug has been marked as fixed ***.