Version: (using Devel) Installed from: Compiled sources Crash in MarkerClusterHolder destructor because it access d->externalDrawPlugin which has been alreaédy deleted by LayerManager destructor (in marble) here the valgrind log : ==32507== Invalid write of size 4 ==32507== at 0x5180CE7: Marble::ExternalDrawPlugin::setRenderCallback(void (*)(Marble::GeoPainter*, void*), void*) (externaldraw.h:91) ==32507== by 0x517FA2B: Digikam::MarkerClusterHolder::~MarkerClusterHolder() (markerclusterholder.cpp:158) ==32507== by 0x6E19DBE: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.6.0) ==32507== by 0x612AD56: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.6.0) ==32507== by 0x5584C9E: Marble::MarbleWidget::~MarbleWidget() (MarbleWidget.cpp:152) ==32507== by 0x5181159: Digikam::MarbleSubClassWidget::~MarbleSubClassWidget() (markerclusterholder.h:435) ==32507== by 0x6E19DBE: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.6.0) ==32507== by 0x612AD56: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.6.0) ==32507== by 0x65038A0: QFrame::~QFrame() (in /usr/lib/libQtGui.so.4.6.0) ==32507== by 0x51789E8: Digikam::WorldMapWidget::~WorldMapWidget() (worldmapwidget.cpp:190) ==32507== by 0x6E19DBE: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.6.0) ==32507== by 0x612AD56: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.6.0) ==32507== Address 0x20b872e0 is 16 bytes inside a block of size 24 free'd ==32507== at 0x402357D: operator delete(void*) (vg_replace_malloc.c:346) ==32507== by 0x164FFABF: Marble::ExternalDrawPlugin::~ExternalDrawPlugin() (externaldraw.h:44) ==32507== by 0x55C91A5: void qDeleteAll<QList<Marble::RenderPlugin*>::const_iterator>(QList<Marble::RenderPlugin*>::const_iterator, QList<Marble::RenderPlugin*>::const_iterator) (qalgorithms.h:333) ==32507== by 0x55C9254: void qDeleteAll<QList<Marble::RenderPlugin*> >(QList<Marble::RenderPlugin*> const&) (qalgorithms.h:341) ==32507== by 0x55C8850: Marble::LayerManager::~LayerManager() (LayerManager.cpp:88) ==32507== by 0x5589A44: Marble::MarbleModel::~MarbleModel() (MarbleModel.cpp:246) ==32507== by 0x558E958: Marble::MarbleMap::~MarbleMap() (MarbleMap.cpp:382) ==32507== by 0x55863D8: Marble::MarbleWidgetPrivate::~MarbleWidgetPrivate() (MarbleWidget.cpp:91) ==32507== by 0x5584C8B: Marble::MarbleWidget::~MarbleWidget() (MarbleWidget.cpp:151) ==32507== by 0x5181159: Digikam::MarbleSubClassWidget::~MarbleSubClassWidget() (markerclusterholder.h:435) ==32507== by 0x6E19DBE: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.6.0) ==32507== by 0x612AD56: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.6.0)
Which Marble version you use ? Gilles Caulier
I build kdeedu from svn trunk (4.4)
SVN commit 1042443 by mghansen: Fix invalid reads when closing under KDE 4.3.2. CCBUG: 212105 M +2 -1 markerclusterholder.cpp M +7 -0 markerclusterholder.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1042443
Fixed for KDE 4.3.2, please test again under 4.4. Michael
I cannot reproduce it anymore. seems fixed to me.