Bug 392607 - Crash sometimes when applying Tags to images
Summary: Crash sometimes when applying Tags to images
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Tags-Engine (show other bugs)
Version: 6.0.0
Platform: Appimage Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-04-01 14:19 UTC by meku
Modified: 2020-08-10 10:18 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description meku 2018-04-01 14:19:21 UTC
On some occasion when applying Tags to a selection of images the application will crash. It appears the Tags may have been applied to only one of the selected images before crashing.

Testing with latest AppImage (currently 5.9.0-release)

Backtrace:
Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x000000372a25d2b8 in QSortFilterProxyModel::parent(QModelIndex const&) const () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
(gdb) bt
#0  0x000000372a25d2b8 in QSortFilterProxyModel::parent(QModelIndex const&) const () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#1  0x000000372a23737e in QAbstractItemModelPrivate::rowsAboutToBeRemoved(QModelIndex const&, int, int) ()
   from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#2  0x000000372a23a775 in QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) ()
   from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#3  0x000000372a25cbfd in ?? () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#4  0x000000372a2617ca in ?? () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#5  0x000000372a261623 in ?? () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#6  0x000000372a262131 in QSortFilterProxyModel::invalidateFilter() () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#7  0x00007ffff76fc98d in Digikam::CheckableAlbumFilterModel::setFilterChecked (this=0x125f5e0, filter=<optimised out>)
    at /b/dktemp/digikam-master/core/libs/models/albumfiltermodel.cpp:455
#8  0x00007ffff762897c in Digikam::ImageDescEditTab::slotAssignedTagsToggled (this=0x11d3e90, t=true)
    at /b/dktemp/digikam-master/core/libs/imageproperties/imagedescedittab.cpp:1409
#9  0x00007ffff7628b32 in Digikam::ImageDescEditTab::updateTagsView (this=this@entry=0x11d3e90)
    at /b/dktemp/digikam-master/core/libs/imageproperties/imagedescedittab.cpp:1107
#10 0x00007ffff762cc95 in Digikam::ImageDescEditTab::setInfos (this=this@entry=0x11d3e90, infos=...)
    at /b/dktemp/digikam-master/core/libs/imageproperties/imagedescedittab.cpp:800
#11 0x00007ffff762ce26 in Digikam::ImageDescEditTab::setItem (this=0x11d3e90, info=...)
    at /b/dktemp/digikam-master/core/libs/imageproperties/imagedescedittab.cpp:755
#12 0x00007ffff761fd92 in Digikam::ImagePropertiesSideBarDB::slotChangedTab (this=this@entry=0x10155e0, tab=0x11d3e90)
    at /b/dktemp/digikam-master/core/libs/imageproperties/imagepropertiessidebardb.cpp:294
#13 0x00007ffff761d69e in Digikam::ImagePropertiesSideBarDB::itemChanged (this=this@entry=0x10155e0, infos=..., rect=..., 
    img=img@entry=0x0, history=...) at /b/dktemp/digikam-master/core/libs/imageproperties/imagepropertiessidebardb.cpp:199
#14 0x00007ffff761d752 in Digikam::ImagePropertiesSideBarDB::itemChanged (this=0x10155e0, infos=...)
    at /b/dktemp/digikam-master/core/libs/imageproperties/imagepropertiessidebardb.cpp:175
#15 0x00007ffff75e3544 in Digikam::DigikamView::slotDispatchImageSelected (this=0x9619c0)
    at /b/dktemp/digikam-master/core/app/views/digikamview.cpp:1420
#16 0x00007ffff75f99c7 in Digikam::DigikamView::qt_static_metacall (_o=0x9619c0, _c=<optimised out>, _id=<optimised out>, 
    _a=<optimised out>) at /b/dktemp/digikam-master/build/core/app/moc_digikamview.cpp:726
#17 0x000000372a2b72c8 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#18 0x000000372a2c4b67 in QTimer::timeout(QTimer::QPrivateSignal) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#19 0x000000372a2c4e98 in QTimer::timerEvent(QTimerEvent*) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#20 0x000000372a2b8aab in QObject::event(QEvent*) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#21 0x00007fffef468a0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Widgets.so.5
#22 0x00007fffef46ff10 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Widgets.so.5
#23 0x000000372a28e4b0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#24 0x000000372a2dd9ae in QTimerInfoList::activateTimers() () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#25 0x000000372a2de151 in ?? () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#26 0x00007fffecdd8fb7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffecdd91f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fffecdd927c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x000000372a2de487 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#30 0x000000372a28c64a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#31 0x000000372a294d74 in QCoreApplication::exec() () from /tmp/.mount_digikaQF3wE9/usr/lib/libQt5Core.so.5
#32 0x0000000000405a61 in main (argc=1, argv=<optimised out>) at /b/dktemp/digikam-master/core/app/main/main.cpp:285
Comment 1 caulier.gilles 2018-08-29 07:53:04 UTC
The AppImage Linux Bundle have been recompiled with last changes from source code and is available here for testing :

https://files.kde.org/digikam/

Take a care : 6.0.0 is a beta release for the moment. Make a database backup before to test.

Problem still here ?

Gilles Caulier
Comment 2 meku 2018-09-08 06:03:10 UTC
I have had some crashes with 'digikam-6.0.0-beta1-20180831T074549-x86-64.appimage' while saving metadata to images (with and without lazy synchronization).

Unfortunately there doesn't appear to be any backtrace?

Console:
/tmp/.mount_digikaEIFCxQ/AppRun: line 73: 10756 Segmentation fault      (core dumped) digikam $@
[Inferior 1 (process 10740) exited with code 0213]
(gdb) bt
No stack.
Comment 3 caulier.gilles 2018-09-08 06:07:57 UTC
You can start the AppImage bundle in GDV using the "debug" option from command line.

It's explained here :

http://www-ftp.lip6.fr/pub/X11/kde-applicationdata/digikam/README

Gilles Caulier
Comment 4 Maik Qualmann 2018-09-08 18:54:15 UTC
Just as a note, we have many crashes with the AppImage ending in Qt, e.g. Bug 397919. Crashes that I can not reproduce here with the native digiKam version.

Maik
Comment 5 meku 2018-09-09 06:16:37 UTC
(In reply to caulier.gilles from comment #3)
> You can start the AppImage bundle in GDV using the "debug" option from
> command line.
> 
> It's explained here :
> 
> http://www-ftp.lip6.fr/pub/X11/kde-applicationdata/digikam/README
> 
> Gilles Caulier

Hi, I'm not sure what else I need to do to get a backtrace.
I am starting the appimage with "debug" option and the console outputs:

Starting digiKam into GDB...
Use 'bt' command on debugger prompt to get a crash backtrace.
Use 'q' command to quit debugger session.
...
Comment 6 caulier.gilles 2018-09-09 07:18:50 UTC
... and use the application as usual. when it crash, go back in the console and enter "bt". the backtrace will appear in the console.
Comment 7 meku 2018-09-09 09:36:40 UTC
(In reply to caulier.gilles from comment #6)
> ... and use the application as usual. when it crash, go back in the console
> and enter "bt". the backtrace will appear in the console.

Yes, that is what I did previously, the log I posted shows it returned to (gdb) after crashing.

Crashed again just now while tagging, no backtrace in GDB

Digikam::ActionThreadBase::run: Action Thread run  1  new jobs
Digikam::ActionThreadBase::cancel: Cancel Main Thread
Digikam::ActionThreadBase::slotJobFinished: One job is done
Digikam::ActionThreadBase::cancel: Cancel Main Thread
/tmp/.mount_digikacGw5gK/AppRun: line 73:  3207 Segmentation fault      (core dumped) digikam $@
[Inferior 1 (process 3163) exited with code 0213]
(gdb) bt
No stack.
(gdb)
Comment 8 meku 2019-01-09 08:00:21 UTC
Latest AppImage (digikam-6.0.0-beta3-20181228T114626-x86-64.appimage) has been crashing frequently while tagging.

In this instance the tags were added to all images in the database but only one image file was updated (JPG).


Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x00000030a1258488 in QSortFilterProxyModel::parent(QModelIndex const&) const () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5      
(gdb) bt
#0  0x00000030a1258488 in QSortFilterProxyModel::parent(QModelIndex const&) const () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#1  0x00000030a1235253 in QAbstractItemModelPrivate::rowsAboutToBeInserted(QModelIndex const&, int, int) ()
   from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#2  0x00000030a1239245 in QAbstractItemModel::beginInsertRows(QModelIndex const&, int, int) ()
   from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#3  0x00000030a1258bfa in ?? () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#4  0x00000030a125d261 in ?? () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#5  0x00000030a125d537 in ?? () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#6  0x00000030a125da51 in QSortFilterProxyModel::invalidateFilter() () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#7  0x00007ffff78996cd in Digikam::CheckableAlbumFilterModel::setFilterChecked (this=0x12eb390, filter=<optimized out>)
    at /b/dktemp/digikam-master/core/libs/models/albumfiltermodel.cpp:456
#8  0x00007ffff77bb49c in Digikam::ItemDescEditTab::slotAssignedTagsToggled (this=0x125eff0, t=true)
    at /b/dktemp/digikam-master/core/libs/properties/captions/itemdescedittab.cpp:1412
#9  0x00007ffff77bb64a in Digikam::ItemDescEditTab::updateTagsView (this=this@entry=0x125eff0)
    at /b/dktemp/digikam-master/core/libs/properties/captions/itemdescedittab.cpp:1109
#10 0x00007ffff77c0420 in Digikam::ItemDescEditTab::setInfos (this=this@entry=0x125eff0, infos=...)
    at /b/dktemp/digikam-master/core/libs/properties/captions/itemdescedittab.cpp:802
#11 0x00007ffff77c07ef in Digikam::ItemDescEditTab::slotReloadForMetadataChange (this=0x125eff0)
    at /b/dktemp/digikam-master/core/libs/properties/captions/itemdescedittab.cpp:1319
#12 0x00007ffff77ccc05 in Digikam::ItemDescEditTab::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, 
    _a=<optimized out>) at /b/dktemp/digikam-master/build/core/libs/properties/moc_itemdescedittab.cpp:253
#13 0x00000030a12b9449 in QMetaObject::activate(QObject*, int, int, void**) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#14 0x00000030a12c5c17 in QTimer::timeout(QTimer::QPrivateSignal) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#15 0x00000030a12c5ee8 in QTimer::timerEvent(QTimerEvent*) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#16 0x00000030a12ba35b in QObject::event(QEvent*) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#17 0x00007ffff18d028c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Widgets.so.5
#18 0x00007ffff18d76b7 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Widgets.so.5
#19 0x00000030a128ee68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#20 0x00000030a12e0c5e in QTimerInfoList::activateTimers() () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#21 0x00000030a12e1441 in ?? () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#22 0x00007ffff0637c3e in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff0637ed8 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff0637f6c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00000030a12e177f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#26 0x00000030a128d45a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#27 0x00000030a1295d34 in QCoreApplication::exec() () from /tmp/.mount_digikajiq4kA/usr/lib/libQt5Core.so.5
#28 0x0000000000405214 in main (argc=1, argv=<optimized out>) at /b/dktemp/digikam-master/core/app/main/main.cpp:290
Comment 9 Maik Qualmann 2019-01-09 20:14:41 UTC
It crashes relatively deep in the QSortFilterProxyModel. There have been Qt bugreports lately. I can not reproduce the problem. we'll see if they can reproduce the problem with Qt-5.12.

https://bugreports.qt.io/browse/QTBUG-44962
https://bugreports.qt.io/browse/QTBUG-67948

Maik
Comment 10 caulier.gilles 2019-03-20 15:15:57 UTC
After 3 weeks of work, i finally completed the compilation of AppImage using Qt
5.11.3 + QWebkit 5.212.

New 6.1.0 pre-release AppImage bundle can be found here (64 bits only for the
moment) :

https://files.kde.org/digikam/

Please check if this bugzilla entry still valid.

Thanks in advance

Gilles Caulier
Comment 11 Maik Qualmann 2019-05-24 18:49:44 UTC
*** Bug 407914 has been marked as a duplicate of this bug. ***
Comment 12 Maik Qualmann 2019-05-24 21:00:27 UTC
Git commit 941f7cfae0416f9f123ce47a995041b566ff85ec by Maik Qualmann.
Committed on 24/05/2019 at 20:57.
Pushed by mqualmann into branch 'master'.

add checks for valid QModelIndex
Related: bug 407914

M  +15   -0    core/libs/database/models/itemfiltermodel.cpp
M  +10   -0    core/libs/models/albumfiltermodel.cpp
M  +18   -3    core/showfoto/thumbbar/showfotofiltermodel.cpp
M  +1    -1    core/showfoto/thumbbar/showfotofiltermodel.h
M  +15   -0    core/utilities/import/models/importfiltermodel.cpp

https://invent.kde.org/kde/digikam/commit/941f7cfae0416f9f123ce47a995041b566ff85ec
Comment 13 MarcP 2019-05-25 00:31:11 UTC
Full logfile for bug #407914:

https://drive.google.com/open?id=1nwxNUtGug_BcikkdFOr5VDyyt8Nrrmu1


The beginning is truncated due to the limitations in gnome-terminal. I have redacted people's names in the log file due to privacy concerns.
Comment 14 Maik Qualmann 2019-05-25 05:56:22 UTC
Unfortunately, the most important thing is missing. If you run digiKam like here in GDB, you have to type "bt" + Enter after the crash. Then GDB shows the backtrace and this gives us the information where the problem can be approximately.

Maik
Comment 15 MarcP 2019-05-25 14:51:43 UTC
That's too bad. I'll keep it in mind for the next time.
Comment 16 caulier.gilles 2019-07-24 05:48:16 UTC
Hi,

This problem still reproducible using last Linux AppImage bundle 6.2.0 pre release available here : https://files.kde.org/digikam/

Thanks in advance

Gilles Caulier
Comment 17 MarcP 2019-07-24 15:43:59 UTC
I personally have not had that problem in some time (a couple of months). I am not sure if it has been solved or I just have not repeated the same behavior that triggered this crash.
Comment 18 caulier.gilles 2019-07-24 17:16:58 UTC
Meku do you see my comment #16 ?

Best

Gilles Caulier
Comment 19 meku 2019-08-07 22:46:40 UTC
(In reply to caulier.gilles from comment #18)
> Meku do you see my comment #16 ?
> 
> Best
> 
> Gilles Caulier

Sorry I have not begun using 6.2.0 yet.
Comment 20 caulier.gilles 2020-01-19 09:34:53 UTC
Not reproducible with AppImage bundle pre-release 7.0.0-beta2 based on Qt 5.14

Please repon this file if problem remain.

Gilles Caulier