Bug 430575 - crash while scanning collection on NAS via NFS
Summary: crash while scanning collection on NAS via NFS
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Media (show other bugs)
Version: 7.1.0
Platform: Appimage Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-12-19 11:43 UTC by jon33040
Modified: 2023-04-27 14:34 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jon33040 2020-12-19 11:43:33 UTC
SUMMARY
DK crashes while scanning my collection on a Synology NAS mounted via NFS. The collection is too large to copy to a local filesystem to see if the Synology NAS or NFS is a factor.

STEPS TO REPRODUCE
1. Mount Synology NAS via NFS
2. Start DK
3. Add NFS mounted directory as a Collection
4. Wait

OBSERVED RESULT
DK crashes without completing the scan.

EXPECTED RESULT
DK completes the scan.

SOFTWARE/OS VERSIONS
Operating System: Kubuntu 20.04
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
Kernel Version: 5.4.0-58-generic
OS Type: 64-bit
Processors: 8 × AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx
Memory: 15,5 GiB of RAM

ADDITIONAL INFORMATION
[Thread 0x7fff6a659700 (LWP 89116) exited]
[Thread 0x7fff52ffd700 (LWP 89117) exited]
[Thread 0x7fff2b5ef700 (LWP 89089) exited]
malloc(): unsorted double linked list corrupted
--Type <RET> for more, q to quit, c to continue without paging--

Thread 1 "digikam" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff3444859 in __GI_abort () at abort.c:79
#2  0x00007ffff34af3ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff35d9285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007ffff34b747c in malloc_printerr (str=str@entry=0x7ffff35dbad8 "malloc(): unsorted double linked list corrupted") at malloc.c:5347
#4  0x00007ffff34ba46c in _int_malloc (av=av@entry=0x7fff78000020, bytes=bytes@entry=129) at malloc.c:3744
#5  0x00007ffff34bafdf in _int_realloc (av=av@entry=0x7fff78000020, oldp=oldp@entry=0x7fff78188c90, oldsize=oldsize@entry=80, nb=144) at malloc.c:4600
#6  0x00007ffff34bd2d6 in __GI___libc_realloc (oldmem=0x7fff78188ca0, bytes=128) at malloc.c:3235
#7  0x00007ffff3cb4681 in QListData::realloc_grow(int) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#8  0x00007ffff3cb470f in QListData::append(int) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#9  0x00007ffff690b7c6 in QList<QString>::append (this=<optimized out>, t=...) at ././/include/QtCore/qlist.h:632
#10 0x00007ffff693056e in QStringList::operator<< (str=..., this=0x7fffffffc200) at ././/include/QtCore/qstringlist.h:138
#11 Digikam::CoreDB::imagePositionsFieldList (fields=..., fields@entry=...) at /b/dktemp/digikam-v7.1.0/core/libs/database/coredb/coredb.cpp:2940
#12 0x00007ffff6934e59 in Digikam::CoreDB::getItemPosition (this=0x857ed0, imageID=imageID@entry=140735211061120, fields=fields@entry=...) at /b/dktemp/digikam-v7.1.0/core/libs/database/coredb/coredb.cpp:1574
#13 0x00007ffff69ad2f0 in Digikam::ItemPositionPriv::init (this=0x29fa640, access=..., id=id@entry=140735211061120) at /b/dktemp/digikam-v7.1.0/core/libs/database/item/containers/itemposition.cpp:92
#14 0x00007ffff69add71 in Digikam::ItemPosition::ItemPosition (this=0x7fffffffc2f8, imageId=140735211061120) at /b/dktemp/digikam-v7.1.0/core/libs/database/item/containers/itemposition.cpp:120
#15 0x00007ffff699568f in Digikam::ItemInfo::imagePosition (this=this@entry=0x7fffffffc3b0) at /b/dktemp/digikam-v7.1.0/core/libs/database/item/containers/iteminfo_geolocation.cpp:39
#16 0x00007ffff6995989 in Digikam::ItemInfo::hasCoordinates (this=this@entry=0x7fffffffc3b0) at /b/dktemp/digikam-v7.1.0/core/libs/database/item/containers/iteminfo_geolocation.cpp:109
#17 0x00007ffff66a28b5 in Digikam::GPSMarkerTiler::slotImageChange (this=0x17e8ac0, changeset=...) at /b/dktemp/digikam-v7.1.0/core/utilities/geolocation/mapsearches/gpsmarkertiler.cpp:699
#18 0x00007ffff66a5629 in Digikam::GPSMarkerTiler::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /b/dktemp/digikam-v7.1.0/build/core/utilities/geolocation/mapsearches/gui_gpssearch_obj_automoc.dir/moc_gpsmarkertiler_LVSXQ6GDA73YDM.cpp:120
#19 0x00007ffff3e92ac3 in QObject::event(QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#20 0x00007ffff4a231cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Widgets.so.5
#21 0x00007ffff4a2a150 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Widgets.so.5
#22 0x00007ffff3e643b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#23 0x00007ffff3e6734a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#24 0x00007ffff3ebc983 in ?? () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#25 0x00007fffee998fbd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fffee999240 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffee9992e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff3ebc01c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#29 0x00007ffff3e62db2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#30 0x00007ffff6374f36 in Digikam::ScanController::completeCollectionScanCore (this=0x7ffff68ad6c0 <Digikam::(anonymous namespace)::Q_QGS_creator::innerFunction()::holder>, needTotalFiles=needTotalFiles@entry=true, defer=defer@entry=false)
    at /b/dktemp/digikam-v7.1.0/core/libs/database/utils/scan/scancontroller_start.cpp:99
#31 0x00007ffff6374ffe in Digikam::ScanController::completeCollectionScanInBackground (this=<optimized out>, defer=defer@entry=false) at /b/dktemp/digikam-v7.1.0/core/libs/database/utils/scan/scancontroller_start.cpp:83
#32 0x00007ffff651f0e0 in Digikam::NewItemsFinder::slotStart (this=0x1196830) at /b/dktemp/digikam-v7.1.0/core/utilities/maintenance/newitemsfinder.cpp:119
#33 0x00007ffff3e92ac3 in QObject::event(QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#34 0x00007ffff4a231cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Widgets.so.5
#35 0x00007ffff4a2a150 in QApplication::notify(QObject*, QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Widgets.so.5
#36 0x00007ffff3e643b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#37 0x00007ffff3e6734a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#38 0x00007ffff3ebc983 in ?? () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#39 0x00007fffee998fbd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007fffee999240 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007fffee9992e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007ffff3ebc01c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#43 0x00007ffff3e62db2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#44 0x00007ffff3e6bbd0 in QCoreApplication::exec() () from /tmp/.mount_digika2KmcwT/usr/lib/libQt5Core.so.5
#45 0x0000000000405993 in main (argc=1, argv=<optimized out>) at /b/dktemp/digikam-v7.1.0/core/app/main/main.cpp:379
(gdb)
Comment 1 jon33040 2020-12-19 13:14:50 UTC
I'm running the appimage & not a native build for Kubuntu.

-rwxrwxrwx 1 jon jon 638300200 Nov 15 19:04 digikam-7.1.0-x86-64-debug.appimage
-rwxrwxrwx 1 jon jon 318050344 Nov 15 09:16 digikam-7.1.0-x86-64.appimage
Comment 2 Maik Qualmann 2020-12-19 15:09:41 UTC
Can this problem be reproduced repeatably? Can you test it with digikam-7.2.0-Beta2, from here: https://files.kde.org/digikam/
Possibly do a database backup if you want to go back to an older version.

This crash in a QList could occur when one thread is writing to the list and another is reading or deleting it. But that is not the case here. We have a local QStringList and the CoreDB class is not deleted by digiKam during runtime.

Maik
Comment 3 jon33040 2020-12-19 15:14:28 UTC
I had another crash with this backtrace that looks completely different.

--Type <RET> for more, q to quit, c to continue without paging--

Thread 56 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff537fe700 (LWP 90090)]
0x00007ffff3d15a90 in QString::operator=(QString const&) () from /tmp/.mount_digikakSxSAH/usr/lib/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff3d15a90 in QString::operator=(QString const&) () from /tmp/.mount_digikakSxSAH/usr/lib/libQt5Core.so.5
#1  0x00007ffff6991116 in Digikam::ItemInfo::fromLocationAlbumAndName (locationId=<optimized out>, album=..., name=...) at /b/dktemp/digikam-v7.1.0/core/libs/database/item/containers/iteminfo.cpp:229
#2  0x00007ffff6991540 in Digikam::ItemInfo::fromLocalFile (path=...) at /b/dktemp/digikam-v7.1.0/core/libs/database/item/containers/iteminfo.cpp:197
#3  0x00007ffff6967cc8 in Digikam::ThumbsDbInfoProvider::thumbnailInfo (this=<optimized out>, identifier=...) at /b/dktemp/digikam-v7.1.0/core/libs/database/coredb/coredbthumbinfoprovider.cpp:54
#4  0x00007ffff6f35f30 in Digikam::ThumbnailCreator::makeThumbnailInfo (this=this@entry=0x1707960, identifier=..., rect=...) at /b/dktemp/digikam-v7.1.0/core/libs/threadimageio/thumb/thumbnailcreator.cpp:376
#5  0x00007ffff6f36396 in Digikam::ThumbnailCreator::load (this=0x1707960, identifier=..., rect=..., pregenerate=pregenerate@entry=false) at /b/dktemp/digikam-v7.1.0/core/libs/threadimageio/thumb/thumbnailcreator.cpp:208
#6  0x00007ffff6f36d52 in Digikam::ThumbnailCreator::load (this=<optimized out>, identifier=...) at /b/dktemp/digikam-v7.1.0/core/libs/threadimageio/thumb/thumbnailcreator.cpp:159
#7  0x00007ffff6f48b87 in Digikam::ThumbnailLoadingTask::execute (this=0x32b2470) at /b/dktemp/digikam-v7.1.0/core/libs/threadimageio/thumb/thumbnailtask.cpp:184
#8  0x00007ffff6f49ade in Digikam::LoadSaveThread::run (this=0x7ffff7734b60 <Digikam::(anonymous namespace)::Q_QGS_defaultObject::innerFunction()::holder>) at /b/dktemp/digikam-v7.1.0/core/libs/threadimageio/fileio/loadsavethread.cpp:134
#9  0x00007ffff6f6ef4e in Digikam::DynamicThread::Private::run (this=0x1707850) at /b/dktemp/digikam-v7.1.0/core/libs/threads/dynamicthread.cpp:191
#10 0x00007ffff3c78d87 in ?? () from /tmp/.mount_digikakSxSAH/usr/lib/libQt5Core.so.5
#11 0x00007ffff3c75335 in ?? () from /tmp/.mount_digikakSxSAH/usr/lib/libQt5Core.so.5
#12 0x00007ffff361a609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff3541293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

It's scanning now, but hasn't crashed for a little while.
Comment 4 caulier.gilles 2021-07-19 06:53:46 UTC
With next digiKam 7.4.0 release, AppImage bundle is compiled using a more recent Linux Mageia 7.1 host. Last stable Qt 5.15.2 and KF5 5.84 are used. ImageMagick codec 7 and libav 58 (ffmpeg) are used to supports extra image and video formats.

https://i.imgur.com/XV1tZkL.png

Please check if problem still reproducible with this version available as pre-release here:

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

Gilles Caulier
Comment 5 caulier.gilles 2022-01-21 16:18:38 UTC
Hi Jon, 

Any feedback using current AppImage bundle 7.6.0 pre-release avaailble here :

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

Thanks in advance

Gilles Caulier
Comment 6 caulier.gilles 2023-04-19 14:51:13 UTC
@Jon,

digiKam 8.0.0 is out. Problem still reproducible ?

Best regards
Gilles Caulier
Comment 7 jon33040 2023-04-27 12:48:16 UTC
Cannot reproduce in 8.0.0.