After a crash of digikam the Tags table was corrupted: the lft and rgt values were inconsistend and several old tags were missing. I was able to re-construct most of the table by hand. Reproducible: Didn't try Steps to Reproduce: 1. After GPS correlating several pictures I used the feature to reverse-tag those pictures. For some new cities multiple tags were created. 2. I removed some of those duplicate tags. 3. Digikam consumed 100% for a very long time, so I termincated it 4. After a restart several tags were missing: As one country tag was removed, all subtags were missing as well. They were still in the table, but unreachable. The Tags-table corruption is similar to Bug 298929. I was able to re-insert most of the missing tags by hand and re-constructing the lft,rgt values by following <http://stackoverflow.com/questions/3623645/how-to-repair-a-corrupted-mptt-tree-nested-set-in-the-database-using-sql> Bug 309061 describes a bug when deleting tags.
Created attachment 81232 [details] tag recovery procedure
digiKam 3.5.0 is out. Can you give a fresh feedback about your report ? Crash still reproducible ? Thanks in advance Gilles Caulier
(In reply to comment #2) > Can you give a fresh feedback about your report ? Crash still reproducible ? I hope to never get in that situation again, as reconstructing the tree by hand did cost me several days. Perhaps killing digikam by "kill -9" while a tag-tree modification is in process can reproduce it?
digiKam 4.0.0 is out : http://www.digikam.org/node/713 Please check if this entry still valid with this new version. Thanks in advance Gilles Caulier
A work around to maintain sqlite database file have been given in users mailing lits : http://mail.kde.org/pipermail/digikam-users/2014-August/019738.html http://mail.kde.org/pipermail/digikam-users/2014-August/019739.html http://mail.kde.org/pipermail/digikam-users/2014-August/019740.html These kind of maintenance operation must be done through a dedicated tool in digiKam. Gilles Caulier
Another optimization of SQlite database is given here : http://neuntoeter.wordpress.com/2012/06/21/io-probleme-mit-digikam/ It's an performance tune of SQlite settings. Gilles Caulier
This bug report is no longer relevant to the current database schema under MySQL. The tables lft and rgt no longer exist. As in SQLite, it was implemented with triggers and a TagTree table. Maik