Summary: | digicam crashed for no obvious reason | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | simon |
Component: | Database-Models | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, marcel.wiesweg |
Priority: | NOR | ||
Version: | 1.0.0 | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 1.0.0 | |
Sentry Crash Report: | |||
Attachments: | crash |
Description
simon
2009-05-26 03:59:53 UTC
Marcel, I'm not sure if it's your new code but look : /var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/libs/models/imagefiltermodel.cpp:197 #8 0x0000000000495ee1 in QModelIndex::data (this=0x0, arole=536) at /usr/include/qt4/QtCore/qabstractitemmodel.h:378 #9 0x00000000005dfa2f in Digikam::ImageCategorizedView::albumAt (this=<value optimized out>, pos=@0x7fffa3a63630) at /var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/digikam/imagecategorizedview.cpp:564 #10 0x00000000005e8e74 in Digikam::ImageDragDropHandler::dropEvent (this=0xdf9860, abstractview=0xd1c8a0, e=0x7fffa3a63610, droppedOn=@0x7fffa3a62a50) at /var/tmp/portage/media-gfx/digikam-9999/work/digikam-9999/digikam/imagedragdrop.cpp:86 Gilles I think this is the same problem that Andi has sent backtraces of. I have not yet been able to reproduce this. Must think about it. Yes, seems to be the same. Simon, can you go into AlbumIconView, click on one item and drag it just some millimeters, then release (although it might also crash when dragging the item centimeters or even meters around the screen :-)) If it crashing now, we are at least aware of it :D Andi yes it crashes I managed to get this crash just once when running under valgrind, but not since then with or without valgrind. Does it happen in all albums or only with some albums, tags, searches? I have added Q_ASSERTs and a debug statement in albumAt to check if the returned model index is valid (it should be the first index in the category under the mouse; if dragging the first image, it should be the model index (0,0) ) It doesn't seem to crash in every album, only in some specific. But they have the same permissions and filetypes as the other ones. Also the names are normal, for example "Urlaub 2008" crashes, but "Weihnachtsfeier 2007" does not. Here is what I get from the console: digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) digikam(5955) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xbe7e5f0,Digikam::ImageAlbumFilterModel(0x9eeb0a0) ) Andi Created attachment 34039 [details]
crash
Marcel,
for me it always crashes here... maybe it helps?
Andi
SVN commit 974225 by mwiesweg: Add temporary debugging code to catch the crash that I dont get. CCBUG: 194116 M +6 -0 imagefiltermodel.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=974225 Marcel, maybe a stupid question but what Qt version are you using? I'm running 4.5.1 here. Maybe this is some indicator? Andi Added some lines. I would be interested if / which one of the added lines crashes and the debug output prior to the crash. I'm running latest 4.4.x. Yes this is a difference. I was reluctant to upgrade so far. Simon is also at 4.5. Gilles, running 4.4? Current console output after D&D: digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 digikam(4579) Digikam::ImageFilterModel::data: QModelIndex(0,0,0x0,Digikam::ImageAlbumModel(0xa1cc520) ) 2407 false digikam(4579) Digikam::ImageCategorizedView::albumAt: QModelIndex(0,0,0xa20cce0,Digikam::ImageAlbumFilterModel(0xa1cd770) ) digikam(4579) Digikam::ImageFilterModel::data: Query album id of QModelIndex(0,0,0xa20cce0,Digikam::ImageAlbumFilterModel(0xa1cd770) ) 77 77 Andi Strange that I get this data output so many times. It is always the same object as far as I see. It is also called when the category drawer is repainted. And repaints seem to occur very often, here as well. The interesting part is this: QModelIndex(0,0,0xa1cb558,Digikam::ImageAlbumFilterModel(0xa1cd770) ) QModelIndex(0,0,0xa20cce0,Digikam::ImageAlbumFilterModel(0xa1cd770) ) I will follow this trace! For me, the internal pointers of QSortFilterProxyModel are the same in both cases. I'm running 4.5.0 (Mandriva 2009.1), everywhere now... Gilles SVN commit 974370 by mwiesweg: To retrieve the index in categoryAt(), use the same code like for drawNewCategory(): call model->index(storedIndex.row(), 0) instead of returning storedIndex. This leads to the fact that storing QModelIndexes is illegal and leads to crashes; remove all stored QModelIndexes from Private CCBUG: 194116 M +16 -23 kcategorizedview.cpp M +3 -4 kcategorizedview_p.h WebSVN link: http://websvn.kde.org/?view=rev&revision=974370 Yes, seems to work now. I'll commit the updated spreadsheet now. Thanks Marcel!!! Andi Simon, Can you checkout last digiKam code from svn and confirm that crash disappear for you ? Thanks in advance Gilles Caulier works flawless, thanks guys! |