Bug 166576

Summary: digiKam quits when running "Rebuild all Thumbnail Images" twice
Product: [Applications] digikam Reporter: Andi Clemens <andi.clemens>
Component: Thumbs-ImageAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 0.10.0
Sentry Crash Report:
Attachments: backtrace, backtrace full, info registers, thread all backtrace

Description Andi Clemens 2008-07-14 21:44:13 UTC
Version:           0.10.0-beta2 (rev.: 832472M) (using 4.00.98 (KDE 4.0.98 (4.1 RC1)), compiled sources)
Compiler:          gcc
OS:                Linux (i686) release 2.6.25-ARCH

I have a very small image collection for KDE4 testing purposes. So this test can be performed quite easy here. Maybe someone who tests this issue should reduce his collection, too so it will not take so long.

When running "Rebuild all Thumbnail Images", everything is fine. But if running immediately again, digiKam quits. But it seems not to crash, so no BT can be provided.
The console reads:
===========================================================
QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-139166600' is still in use, all queries will cease to work.
QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-139166600' is still in use, all queries will cease to work.
Warning: Size 5396 of Exif.Minolta.0x0020 exceeds 4096 bytes limit. Not decoded.
Running RAW decoding command: "/opt/kdemod/lib/libkdcraw5/kdcraw -c -e /kde4user/testfotos/MINOLTA-DYNAX5D-02.MRW"
Using embedded RAW preview extraction
Warning: Size 5396 of Exif.Minolta.0x0020 exceeds 4096 bytes limit. Not decoded.
Orientation => Exif.MinoltaCs5D.Rotation =>  72

ASSERT: "!isEmpty()" in file /usr/include/QtCore/qlist.h, line 256
===========================================================


Andi
Comment 1 Andi Clemens 2008-07-14 22:06:09 UTC
Another issue:

1. Run "Rebuild all Thumbnails"
2. Select an image
3. Image->Find Similar

It will quit again with the same error message:

================================================
ASSERT: "!isEmpty()" in file /usr/include/QtCore/qlist.h, line 256
QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-139166600' is still in use, all queries will cease to work.
QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-139166600' is still in use, all queries will cease to work.
QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-139166600' is still in use, all queries will cease to work.
================================================

Andi
Comment 2 Marcel Wiesweg 2008-07-15 18:46:14 UTC
ASSERT: "!isEmpty()" in file /usr/include/QtCore/qlist.h, line 256

Andi, debugging hint: Qt uses ASSERTs in some methods of QList. Hitting them usually means you use operator[] with an invalid index or something similar.
For whatever reasons (I think I have read it has been fixed meanwhile) this assert does not cause an abort, but an exit, so no crash handler.
To get a backtrace, you must run under gdb and set a breakpoint for "exit".
Comment 3 Andi Clemens 2008-07-15 19:29:12 UTC
Created attachment 26153 [details]
backtrace, backtrace full, info registers, thread all backtrace

Hi Marcel,

I hope this is enough information for now... :-)
Comment 4 Marcel Wiesweg 2008-07-17 21:49:30 UTC
SVN commit 834001 by mwiesweg:

Be more cautious: When using a shared thread, signals may come for other images as well

BUG: 166576


 M  +2 -1      batchthumbsgenerator.cpp  


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