Bug 186255 - digiKam crashes when switching collection database
Summary: digiKam crashes when switching collection database
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Setup-Database (show other bugs)
Version: 1.0.0
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-05 20:08 UTC by Andi Clemens
Modified: 2017-07-26 06:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 1.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andi Clemens 2009-03-05 20:08:31 UTC
Version:           0.11.0-svn (using 4.2.1 (KDE 4.2.1), Arch Linux)
Compiler:          gcc
OS:                Linux (i686) release 2.6.28-ARCH

This is only true for 0.11!

If you start a "find duplicates" or "find similar" search and change the database location in the setup dialog, digiKam crashes.

To reproduce:

1. start "Find Similar" for an image
2. when in "Find Similar" view, goto configure dialog
3. change the database location to another digiKam db path
4. You will be asked if you want to use the existing db, choose yes
5. Now digiKam crashes.

In trunk (0.10) it is working fine.


#0  0x08245bad in QMap<void const*, void*>::findNode (this=0x10, akey=@0xbfaf3d94) at /usr/include/QtCore/qmap.h:418
        cur = (QMapData::Node *) 0x0
        next = (QMapData::Node *) 0x0
#1  0x08245ca2 in QMap<void const*, void*>::find (this=0x10, akey=@0xbfaf3d94) at /usr/include/QtCore/qmap.h:543
No locals.
#2  0x08242dae in Digikam::Album::extraData (this=0x0, key=0xd05ee28) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/album.cpp:221
        it = {i = 0x0}
#3  0x08296508 in Digikam::AlbumSelectWidget::slotAlbumAdded (this=0xcf7d9c8, album=0xd00e630) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albumselectwidget.cpp:371
        parentItem = (class Digikam::TreeAlbumItem *) 0x3b
        item = (class Digikam::TreeAlbumItem *) 0xbfaf3e28
        palbum = (class Digikam::PAlbum *) 0xb5b34b10
        __PRETTY_FUNCTION__ = "void Digikam::AlbumSelectWidget::slotAlbumAdded(Digikam::Album*)"
#4  0x08298d77 in Digikam::AlbumSelectWidget::qt_metacall (this=0xcf7d9c8, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfaf3ef0) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albumselectwidget.moc:76
No locals.
#5  0xb5aa977b in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#6  0xb5aa9cd2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#7  0x0827d76c in Digikam::AlbumManager::signalAlbumAdded (this=0x8897aa8, _t1=0xd00e630) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albummanager.moc:212
        _a = {0x0, 0xbfaf3f04}
#8  0x0827f82c in Digikam::AlbumManager::insertPAlbum (this=0x8897aa8, album=0xd00e630, parent=0x0) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albummanager.cpp:2094
No locals.
#9  0x08283509 in Digikam::AlbumManager::startScan (this=0x8897aa8) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albummanager.cpp:717
        m = KDirWatch::INotify
        mName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 206610}, alloc = 0, size = 0, data = 0x84114f2, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0,
    array = {0}}, static shared_empty = {ref = {_q_value = 279}, alloc = 0, size = 0, data = 0xb5b34f6e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc816658,
  static codecForCStrings = 0x0}
        locations = {{p = {static shared_null = {ref = {_q_value = 52635}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x1}, d = 0x1}}
        __PRETTY_FUNCTION__ = "void Digikam::AlbumManager::startScan()"
#10 0x08285ac7 in Digikam::AlbumManager::changeDatabase (this=0x8897aa8, dbPath=@0xbfaf428c) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albummanager.cpp:476
        params = {databaseType = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 206610}, alloc = 0, size = 0, data = 0x84114f2, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0,
      reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 279}, alloc = 0, size = 0, data = 0xb5b34f6e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}},
    d = 0x888c908, static codecForCStrings = 0x0}, databaseName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 206610}, alloc = 0, size = 0, data = 0x84114f2, clean = 0, simpletext = 0, righttoleft = 0,
      asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 279}, alloc = 0, size = 0, data = 0xb5b34f6e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0,
      reserved = 0, array = {0}}, d = 0x8890790, static codecForCStrings = 0x0}, connectOptions = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 206610}, alloc = 0, size = 0, data = 0x84114f2, clean = 0,
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 279}, alloc = 0, size = 0, data = 0xb5b34f6e, clean = 0, simpletext = 0, righttoleft = 0,
      asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x84114e0, static codecForCStrings = 0x0}, hostName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 206610}, alloc = 0, size = 0,
      data = 0x84114f2, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 279}, alloc = 0, size = 0, data = 0xb5b34f6e, clean = 0,
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x84114e0, static codecForCStrings = 0x0}, port = -1, userName = {static null = {<No data fields>}, static shared_null = {ref = {
        _q_value = 206610}, alloc = 0, size = 0, data = 0x84114f2, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 279}, alloc = 0,
      size = 0, data = 0xb5b34f6e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x84114e0, static codecForCStrings = 0x0}, password = {static null = {<No data fields>},
    static shared_null = {ref = {_q_value = 206610}, alloc = 0, size = 0, data = 0x84114f2, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
        _q_value = 279}, alloc = 0, size = 0, data = 0xb5b34f6e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x84114e0, static codecForCStrings = 0x0}}
#11 0x082b5dee in Digikam::DigikamApp::slotSetupChanged (this=0x88934f8) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/digikamapp.cpp:2062
No locals.
#12 0x082d12d7 in Digikam::DigikamApp::qt_metacall (this=0x88934f8, _c=QMetaObject::InvokeMetaMethod, _id=28, _a=0xbfaf4348) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/digikamapp.moc:204
No locals.
#13 0xb5aa977b in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#14 0xb5aa9cd2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#15 0x0829ffe3 in Digikam::AlbumSettings::setupChanged (this=0x895f978) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albumsettings.moc:75
No locals.
#16 0x0829fff7 in Digikam::AlbumSettings::emitSetupChanged (this=0x895f978) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/albumsettings.cpp:508
No locals.
#17 0x080eb061 in Digikam::Setup::slotOkClicked (this=0xbfaf56d4) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/utilities/setup/setup.cpp:360
No locals.
#18 0x080f11f9 in Digikam::Setup::qt_metacall (this=0xbfaf56d4, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfaf44a8) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/setup.moc:65
No locals.
#19 0xb5aa977b in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#20 0xb5aa9cd2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#21 0xb6781df7 in KDialog::okClicked () from /usr/lib/libkdeui.so.5
No symbol table info available.
#22 0xb6784e28 in KDialog::slotButtonClicked () from /usr/lib/libkdeui.so.5
No symbol table info available.
#23 0xb6784f94 in KDialog::qt_metacall () from /usr/lib/libkdeui.so.5
No symbol table info available.
#24 0xb68512ea in KPageDialog::qt_metacall () from /usr/lib/libkdeui.so.5
No symbol table info available.
#25 0x080f11d0 in Digikam::Setup::qt_metacall (this=0xbfaf56d4, _c=QMetaObject::InvokeMetaMethod, _id=68, _a=0xbfaf468c) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/setup.moc:60
No locals.
#26 0xb5aa977b in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#27 0xb5aa9cd2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#28 0xb5aae493 in QSignalMapper::mapped () from /usr/lib/libQtCore.so.4
No symbol table info available.
#29 0xb5aae56d in QSignalMapper::map () from /usr/lib/libQtCore.so.4
No symbol table info available.
#30 0xb5aae75e in QSignalMapper::map () from /usr/lib/libQtCore.so.4
No symbol table info available.
#31 0xb5aaf5fb in QSignalMapper::qt_metacall () from /usr/lib/libQtCore.so.4
No symbol table info available.
#32 0xb5aa977b in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#33 0xb5aa9a50 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
No symbol table info available.
#34 0xb644a111 in QAbstractButton::clicked () from /usr/lib/libQtGui.so.4
No symbol table info available.
#35 0xb61db7b9 in ?? () from /usr/lib/libQtGui.so.4
No symbol table info available.
#36 0x0ac8e380 in ?? ()


Andi
Comment 1 Andi Clemens 2009-03-31 11:11:03 UTC
SVN commit 947262 by aclemens:

Check if a parent is really available, otherwise we get a null pointer
issue when accessing extraData()

BUG:186255

 M  +4 -1      albumselectwidget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=947262