https://bugs.kde.org/show_bug.cgi?id=447593
Bug ID: 447593
Summary: segfault when moving large number of photos between
albums
Product: digikam
Version: 7.4.0
Platform: Debian testing
OS: Linux
Status: REPORTED
Keywords: drkonqi
Severity: crash
Priority: NOR
Component: general
Assignee: digikam-bugs-n...@kde.org
Reporter: r...@nodot.org
Target Milestone: ---
Application: digikam (7.4.0)
Qt Version: 5.15.2
Frameworks Version: 5.88.0
Operating System: Linux 5.15.11-grue x86_64
Windowing System: X11
Distribution: Debian GNU/Linux bookworm/sid
DrKonqi: 5.23.4 [KCrashBackend]
-- Information about the crash:
Compiled v7.4.0 from sources.
Crash happens when trying to copy photos from laptop drive to an external USB
drive connected to the laptop. The drive is mounted, visible and has full
read/write permissions.
Selected a large group of photos (approximately 800) in an album by left
clicking on first photo.
left click on last photo.
Left click and drag highlighted photos to new album.
Window opens asking whether to copy or move. Move is selected.
Seems to start moving then crashes with segfault.
Restart DigiKam.
Window open scanning for new photos.
As soon as this window closes DigiKam segfaults.
This second crash repeats everytime DigiKam is restarted. Had to resort to use
Appimage bundle to have a usable program. I did not attempt moving the photos
with the Appimage version.
The crash can be reproduced every time.
-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[KCrash Handler]
#4 0x7f2f0d5e2e20 in QString::operator=(QString const&) () at
/lib/x86_64-linux-gnu/libQt5Core.so.5
#5 0x7f2f0ef05828 in
Digikam::DRawDecoderSettings::operator=(Digikam::DRawDecoderSettings const&)
(this=0x7f2ed00c1af8, o=...) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/rawengine/drawdecodersettings.cpp:132
#6 0x7f2ed826ac5a in () at
/usr/lib/x86_64-linux-gnu/qt5/plugins/digikam/dimg/DImg_RAW_Plugin.so
#7 0x7f2ed826a456 in () at
/usr/lib/x86_64-linux-gnu/qt5/plugins/digikam/dimg/DImg_RAW_Plugin.so
#8 0x7f2f0ed4df6d in Digikam::DImg::load(QString const&, int,
Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&)
(this=0x7f2ed0180c68, filePath=..., loadFlagsInt=1, observer=0x0,
rawDecodingSettings=...) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/dimg/dimg_fileio.cpp:128
#9 0x7f2f0ed4ee16 in Digikam::DImg::loadItemInfo(QString const&, bool,
bool, bool, bool) (this=this@entry=0x7f2ed0180c68, filePath=...,
loadMetadata=loadMetadata@entry=false, loadICCData=loadICCData@entry=false,
loadUniqueHash=loadUniqueHash@entry=false,
loadImageHistory=loadImageHistory@entry=false) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/dimg/dimg_fileio.cpp:55
#10 0x7f2f0f79a47d in Digikam::ItemScanner::loadFromDisk()
(this=this@entry=0x7f2eda3576d8) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/item/scanner/itemscanner.cpp:132
#11 0x7f2f0f79d562 in Digikam::ItemScanner::newFile(int)
(this=this@entry=0x7f2eda3576d8, albumId=albumId@entry=837) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/item/scanner/itemscanner_database.cpp:109
#12 0x7f2f0f6e3c42 in Digikam::CollectionScanner::scanNewFile(QFileInfo
const&, int) (this=0x7f2eda357a60, info=, albumId=837) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/collection/collectionscanner_scan.cpp:1026
#13 0x7f2f0f6e6913 in
Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&,
QString const&, bool) (this=0x7f2eda357a60, location=..., album=...,
checkDate=false) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/collection/collectionscanner_scan.cpp:793
#14 0x7f2f0f6e73ed in
Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&)
(this=0x7f2eda357a60, location=...) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/collection/collectionscanner_scan.cpp:464
#15 0x7f2f0f6e831b in Digikam::CollectionScanner::completeScan()
(this=this@entry=0x7f2eda357a60) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/collection/collectionscanner_scan.cpp:95
#16 0x7f2f0fc0b345 in Digikam::ScanController::run() (this=0x7f2f101329a0
) at
/home/reb/src/digikam/digikam-7.4.0/core/libs/database/utils/scan/scancontroller.cpp:248
#17 0x7f2f0d561961 in () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x7f2f0b6fad80 in start_thread (arg=0x7f2eda35a640) at
pthread_create.c:481
#19 0x7f2f0d1a1b6f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7f2eeca2c640 (LWP 675437) "digikam:gdrv0"):
#1 0x7f2f0b70715b in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x5584cbaa2f50, expected=expected@entry=0,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
../sysdeps/nptl/futex-internal.c:123
#2