Bug 366019

Summary: Digikam Crashes when Table view button is clicked
Product: [Applications] digikam Reporter: Daniel McCubbing <dmccubbing>
Component: Albums-TableViewAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 5.0.0   
Target Milestone: ---   
Platform: macOS (DMG)   
OS: macOS   
Latest Commit: Version Fixed In: 5.3.0
Sentry Crash Report:

Description Daniel McCubbing 2016-07-23 16:20:47 UTC
No matter what I do, when I click the Table view button in the toolbar or the menu bar, the program crashes. This even occurs right after I open the program.

Reproducible: Always

Steps to Reproduce:
1.Open Digikam
2.Click Table button
3.

Actual Results:  
Program crash.

Expected Results:  
I expect to see the table view of my images.

I am running OSX 10.11.3 El Capitan and Digikam is a standard install using SQLite database.
Comment 1 caulier.gilles 2016-07-23 17:13:51 UTC
I suspect a problem we previous version settings stored somewhere. There is one other report about.

Please try to setup digiKam from a new account where digiKam have never been installed. Configure with first run assistant and try again to see if crash is reproducible.

Gilles Caulier
Comment 2 Daniel McCubbing 2016-07-24 09:56:28 UTC
I ran the first run assistant on two other accounts on my computer with the same results. One of the accounts I created specifically to test for this.
Comment 3 caulier.gilles 2016-07-24 11:44:51 UTC
This is strange, because Maik has already fixed a similar crash in Table view in the past.

Please give us more information to try to reproduce the problem here (it do not crash on 2 Apple computers here in same situation).

- How many items do you have exactly in current album.
- Which type of files do you have in current album (JPG, RAW, PNG, TIF, ???)
- Do you use  any album view presentation option ? Look in View menu entry, as Sort, Order, Group, Include, etc ?
- Do you use color managed view ?
- What do you see as debug trace if you run digiKam binary from a console. To launch digiKam from CLI, use /opt/digikam/Application/KF5/digikam.app/Contents/MacOS/digikam

Gilles Caulier
Comment 4 caulier.gilles 2016-07-25 08:56:38 UTC
Daniel,

Do you seen my previous comment ?

Gilles Caulier
Comment 5 Daniel McCubbing 2016-07-25 20:13:12 UTC
Sorry for taking so long to get back to you.

Items in Album: 
Several albums ranging in size from just about 10 to over 1000 with nested albums
Album used below had 149 images and a sub album.
The Album in my other account only had one image and no nested albums

Image Formats: 
Primarily JPG, with possibly a few PNG and TIF thrown in.

Album View Presentation Options: 
Sort by Folder
Order Ascending
Group by Album
Group Sort Ascending
Include Tag Sub Tree

Color Managed View: is on

Here is the console output from the after I clicked the Table View button in my personal Account with 149 photos in the album:

digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Stacked View Mode :  0
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Action Thread run  1  new jobs
digikam.general: Data From DBJobsThread is null:  true
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Stacked View Mode :  2
digikam.general: Action Thread run  1  new jobs
digikam.general: Data From DBJobsThread is null:  true
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Stacked View Mode :  0
digikam.general: Action Thread run  1  new jobs
digikam.general: Data From DBJobsThread is null:  true
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Action Thread run  1  new jobs
digikam.general: Data From DBJobsThread is null:  true
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Action Thread run  1  new jobs
digikam.general: Data From DBJobsThread is null:  true
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.geoiface: ----
digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Action Thread run  1  new jobs
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.geoiface: ----
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0022.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0022.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0024.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0024.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0026.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0026.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0028.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0028.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0030.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0030.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0032.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0032.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0036.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0036.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0038.jpg"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/File aa 0038.jpg"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0346.JPG"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0346.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0347.JPG"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0347.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0348.JPG"  : JPEG file identified
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0348.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  0
digikam.metaengine: Orientation => Exif.Image.Orientation =>  0
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0349.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  0
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0350.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  0
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0351.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/HPIM0352.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3149.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3150.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3155.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3157.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3159.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3160.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3161.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/IMG_3164.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_2995.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_2996.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_2997.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_2998.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_2999.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3000.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3001.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3003.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  0
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3004.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3005.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3006.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3007.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3008.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  1
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3009.JPG"  : JPEG file identified
digikam.metaengine: Orientation => Exif.Image.Orientation =>  0
digikam.dimg: "/Users/daniel/Pictures/Pictures/Daniel's/BC Roadtrip/_MG_3012.JPG"  : JPEG file identified
digikam.general: Stacked View Mode :  3
ASSERT failure in QList<T>::at: "index out of range", file /opt/digikam/libexec/qt5/lib/QtCore.framework/Headers/qlist.h, line 531
Abort trap: 6


The other account I set up with only one photo in the album had the following output from the same point:

digikam.geoiface: ----
digikam.geoiface: ----
digikam.general: Using  4  CPU core to run threads
digikam.general: Stacked View Mode :  0
digikam.general: Action Thread run  1  new jobs
digikam.general: Cancel Main Thread
digikam.general: One job is done
digikam.general: Stacked View Mode :  3
ASSERT failure in QList<T>::at: "index out of range", file /opt/digikam/libexec/qt5/lib/QtCore.framework/Headers/qlist.h, line 531
Abort trap: 6

I saved the entire console output from both sessions if you would like to see all of it (A total of 18 pages).
Comment 6 caulier.gilles 2016-07-25 21:10:26 UTC
Daniel,

No need. This is clear :

digikam.general: Stacked View Mode :  3
ASSERT failure in QList<T>::at: "index out of range", file
/opt/digikam/libexec/qt5/lib/QtCore.framework/Headers/qlist.h, line 531
Abort trap: 6

Maik, 

The famous bug in table view is back. Do you remember ?

Gilles Caulier
Comment 7 Maik Qualmann 2016-07-25 21:35:41 UTC
Yes I remember. But I think that this problem has another cause. We use the at() function at some places in the table view. Gilles, you can not reproduce it?

Maik
Comment 8 caulier.gilles 2016-07-25 21:43:03 UTC
It's not reproducible for the moment. I must try to have an album with enough items as specified in comment #5.

It's strange that problem is not reproducible in same conditions under Linux (I must admit that i use rarely Table View in fact)
Gilles
Comment 9 Maik Qualmann 2016-10-07 19:13:09 UTC
Git commit 3823b092851ff6a905775d78535f2047aa295cf3 by Maik Qualmann.
Committed on 19/09/2016 at 20:28.
Pushed by mqualmann into branch 'master'.

apply patch #101185 to prevent crash on OS X if column headers not yet loaded from config
FIXED-IN: 5.3.0

M  +2    -1    NEWS
M  +13   -0    app/views/tableview/tableview_treeview_delegate.cpp

http://commits.kde.org/digikam/3823b092851ff6a905775d78535f2047aa295cf3