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)
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
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
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.
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
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
@Jon, digiKam 8.0.0 is out. Problem still reproducible ? Best regards Gilles Caulier
Cannot reproduce in 8.0.0.