Bug 462129

Summary: Bomb after splash screen
Product: [Applications] digikam Reporter: TahomaSoft <bacon>
Component: Plugin-DImg-HEIFAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, metzpinguin
Priority: NOR Keywords: drkonqi
Version First Reported In: 7.8.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed/Implemented In: 7.9.0
Sentry Crash Report:

Description TahomaSoft 2022-11-22 14:14:36 UTC
Application: digikam (7.8.0)

Qt Version: 5.15.2
Frameworks Version: 5.96.0
Operating System: Linux 6.0.8-100.fc35.x86_64 x86_64
Windowing System: X11
Distribution: "Fedora release 35 (Thirty Five)"
DrKonqi: 5.25.4 [KCrashBackend]

-- Information about the crash:
happens repeatedly.

Happens while scanning my collection. First run converted schema from 7.3, then crashed.  Each run after crashes after splash screen and a few seconds of scanning.

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted

[KCrash Handler]
#4  0x00007f97ad2a156c in __pthread_kill_implementation () at /lib64/libc.so.6
#5  0x00007f97ad254d16 in raise () at /lib64/libc.so.6
#6  0x00007f97ad2287f3 in abort () at /lib64/libc.so.6
#7  0x00007f97ad22871b in _nl_load_domain.cold () at /lib64/libc.so.6
#8  0x00007f97ad24dc66 in  () at /lib64/libc.so.6
#9  0x00007f97a1de0244 in heif::Box_iloc::read_data(heif::Box_iloc::Item const&, std::shared_ptr<heif::StreamReader>, std::shared_ptr<heif::Box_idat> const&, std::vector<unsigned char, std::allocator<unsigned char> >*) const [clone .constprop.0] () at /lib64/libheif.so.1
#10 0x00007f97a1daa389 in heif::HeifFile::get_compressed_image_data(unsigned int, std::vector<unsigned char, std::allocator<unsigned char> >*) const () at /lib64/libheif.so.1
#11 0x00007f97a1dbbe18 in heif::HeifContext::interpret_heif_file() () at /lib64/libheif.so.1
#12 0x00007f97a1daf4b0 in heif_context_read_from_reader () at /lib64/libheif.so.1
#13 0x00007f9764b1ccdd in Digikam::DImgHEIFLoader::load(QString const&, Digikam::DImgLoaderObserver*) (this=0x7f976815c1c0, filePath=..., observer=0x0) at /home/erikbeck/Build/digikam-7.8.0/core/dplugins/dimg/heif/dimgheifloader_load.cpp:146
#14 0x00007f97afdfa7a9 in Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (this=0x7f9768019758, filePath=..., loadFlagsInt=1, observer=0x0, rawDecodingSettings=...) at /home/erikbeck/Build/digikam-7.8.0/core/libs/dimg/dimg_fileio.cpp:132
#15 0x00007f97afdfa141 in Digikam::DImg::loadItemInfo(QString const&, bool, bool, bool, bool) (this=0x7f9768019758, filePath=..., loadMetadata=false, loadICCData=false, loadUniqueHash=false, loadImageHistory=false) at /home/erikbeck/Build/digikam-7.8.0/core/libs/dimg/dimg_fileio.cpp:55
#16 0x00007f97b0b4abe5 in Digikam::ItemScanner::loadFromDisk() (this=0x7f97751fb658) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/item/scanner/itemscanner.cpp:135
#17 0x00007f97b0b53744 in Digikam::ItemScanner::fileModified() (this=0x7f97751fb658) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/item/scanner/itemscanner_file.cpp:322
#18 0x00007f97b0a800f4 in Digikam::CollectionScanner::scanModifiedFile(QFileInfo const&, Digikam::ItemScanInfo const&) (this=0x7f97751fc060, info=..., scanInfo=...) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/collection/collectionscanner_scan.cpp:1092
#19 0x00007f97b0a7fbb0 in Digikam::CollectionScanner::scanFileNormal(QFileInfo const&, Digikam::ItemScanInfo const&, bool) (this=0x7f97751fc060, fi=..., scanInfo=..., checkSidecar=true) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/collection/collectionscanner_scan.cpp:1008
#20 0x00007f97b0a7e8da in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&, bool) (this=0x7f97751fc060, location=..., album=..., checkDate=false) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/collection/collectionscanner_scan.cpp:779
#21 0x00007f97b0a7ec3e in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&, bool) (this=0x7f97751fc060, location=..., album=..., checkDate=false) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/collection/collectionscanner_scan.cpp:860
#22 0x00007f97b0a7cf2b in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) (this=0x7f97751fc060, location=...) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/collection/collectionscanner_scan.cpp:464
#23 0x00007f97b0a7b28f in Digikam::CollectionScanner::completeScan() (this=0x7f97751fc060) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/collection/collectionscanner_scan.cpp:95
#24 0x00007f97b1495c5c in Digikam::ScanController::run() (this=0x7f97b1b82d20 <Digikam::(anonymous namespace)::Q_QGS_creator::innerFunction()::holder>) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/utils/scan/scancontroller.cpp:250
#25 0x00007f97adae9546 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#26 0x00007f97ad29f822 in start_thread () at /lib64/libc.so.6
#27 0x00007f97ad23f450 in clone3 () at /lib64/libc.so.6

Thread 3 (Thread 0x7f977ccf9640 (LWP 111165) "QDBusConnection"):
#1  0x00007f97ab319c28 in g_main_context_prepare () at /lib64/libglib-2.0.so.0
#2  0x00007f97ab36f113 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#3  0x00007f97ab3178a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#4  0x00007f97adcf7ffe in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007f97adca55f2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f97adae834a in QThread::exec() () at /lib64/libQt5Core.so.5
#7  0x00007f97af0c2b7b in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#8  0x00007f97adae9546 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#9  0x00007f97ad29f822 in start_thread () at /lib64/libc.so.6
#10 0x00007f97ad23f450 in clone3 () at /lib64/libc.so.6

Thread 2 (Thread 0x7f977e4ac640 (LWP 111164) "QXcbEventQueue"):
#1  0x00007f97a1310f42 in _xcb_conn_wait.part.0 () at /lib64/libxcb.so.1
#2  0x00007f97a13128fc in xcb_wait_for_event () at /lib64/libxcb.so.1
#3  0x00007f977e51b0c7 in QXcbEventQueue::run() () at /lib64/libQt5XcbQpa.so.5
#4  0x00007f97adae9546 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#5  0x00007f97ad29f822 in start_thread () at /lib64/libc.so.6
#6  0x00007f97ad23f450 in clone3 () at /lib64/libc.so.6

Thread 1 (Thread 0x7f978f4d7400 (LWP 111163) "digikam"):
#1  0x00007f97a1310f42 in _xcb_conn_wait.part.0 () at /lib64/libxcb.so.1
#2  0x00007f97a1311270 in _xcb_out_send () at /lib64/libxcb.so.1
#3  0x00007f97a13114c7 in _xcb_out_flush_to () at /lib64/libxcb.so.1
#4  0x00007f97a13116a5 in wait_for_reply () at /lib64/libxcb.so.1
#5  0x00007f97a1312515 in xcb_wait_for_reply () at /lib64/libxcb.so.1
#6  0x00007f977e4f59ae in QXcbConnection::sync() () at /lib64/libQt5XcbQpa.so.5
#7  0x00007f977e50fb8b in QXcbBackingStoreImage::preparePaint(QRegion const&) () at /lib64/libQt5XcbQpa.so.5
#8  0x00007f977e50fef4 in QXcbBackingStore::beginPaint(QRegion const&) () at /lib64/libQt5XcbQpa.so.5
#9  0x00007f97ae2f11f5 in QBackingStore::beginPaint(QRegion const&) () at /lib64/libQt5Gui.so.5
#10 0x00007f97ae9bf312 in QWidgetRepaintManager::paintAndFlush() () at /lib64/libQt5Widgets.so.5
#11 0x00007f97ae9f174d in QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#12 0x00007f97b09c23fd in KXmlGuiWindow::event(QEvent*) () at /lib64/libKF5XmlGui.so.5
#13 0x00007f97ae9ae443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#14 0x00007f97adca6be8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#15 0x00007f97adcaa156 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#16 0x00007f97adcf84e7 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#17 0x00007f97ab31a0af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#18 0x00007f97ab36f308 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#19 0x00007f97ab3178a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#20 0x00007f97adcf7f88 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#21 0x00007f97adca55f2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#22 0x00007f97b14986c4 in Digikam::ScanController::completeCollectionScanCore(bool, bool, bool) (this=0x7f97b1b82d20 <Digikam::(anonymous namespace)::Q_QGS_creator::innerFunction()::holder>, needTotalFiles=true, defer=false, fastScan=true) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/utils/scan/scancontroller_start.cpp:100
#23 0x00007f97b1498603 in Digikam::ScanController::completeCollectionScanInBackground(bool, bool) (this=0x7f97b1b82d20 <Digikam::(anonymous namespace)::Q_QGS_creator::innerFunction()::holder>, defer=false, fastScan=true) at /home/erikbeck/Build/digikam-7.8.0/core/libs/database/utils/scan/scancontroller_start.cpp:83
#24 0x00007f97b1652eb4 in Digikam::NewItemsFinder::slotStart() (this=0x3f29e00) at /home/erikbeck/Build/digikam-7.8.0/core/utilities/maintenance/newitemsfinder.cpp:112
#25 0x00007f97b164630a in Digikam::NewItemsFinder::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x3f29e00, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x2ab5a08) at /home/erikbeck/Build/digikam-7.8.0/build/core/utilities/maintenance/gui_maintenance_obj_autogen/EWIEGA46WW/moc_newitemsfinder.cpp:90
#26 0x00007f97adcd1339 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#27 0x00007f97ae9ae443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#28 0x00007f97adca6be8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#29 0x00007f97adcaa156 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#30 0x00007f97adcf84e7 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#31 0x00007f97ab31a0af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#32 0x00007f97ab36f308 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#33 0x00007f97ab3178a3 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#34 0x00007f97adcf7f88 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#35 0x00007f97adca55f2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#36 0x00007f97adcadb34 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#37 0x0000000000406bbd in main(int, char**) (argc=1, argv=0x7ffc6759e8e8) at /home/erikbeck/Build/digikam-7.8.0/core/app/main/main.cpp:418
[Inferior 1 (process 111163) detached]

Reported using DrKonqi
Comment 1 Maik Qualmann 2022-11-22 15:16:23 UTC
This annoying bug in the HEIF loader is already fixed in digiKam-7.9.0.

https://invent.kde.org/graphics/digikam/-/commit/082c4c54c9a57cd3750fcd2f11f8344b19dd4f02

Maik
Comment 2 caulier.gilles 2022-11-22 15:37:37 UTC
And 7.9.0 can be downloaded and tested with bundles available here :

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

Gilles Caulier
Comment 3 TahomaSoft 2022-11-22 18:48:33 UTC
(In reply to Maik Qualmann from comment #1)
> This annoying bug in the HEIF loader is already fixed in digiKam-7.9.0.
> 
> https://invent.kde.org/graphics/digikam/-/commit/
> 082c4c54c9a57cd3750fcd2f11f8344b19dd4f02
> 
> Maik

Thank you!
Comment 4 TahomaSoft 2022-11-22 18:48:53 UTC
(In reply to caulier.gilles from comment #2)
> And 7.9.0 can be downloaded and tested with bundles available here :
> 
> https://files.kde.org/digikam/
> 
> Gilles Caulier

Thank you!
Comment 5 TahomaSoft 2022-11-22 18:53:26 UTC
(In reply to TahomaSoft from comment #4)
> (In reply to caulier.gilles from comment #2)
> > And 7.9.0 can be downloaded and tested with bundles available here :
> > 
> > https://files.kde.org/digikam/
> > 
> > Gilles Caulier
> 
> Thank you!

Where would I find the source code? I usually compile from source (as I did here) rather than using a bundle. I only see 7.8 and 8.x on the git repo.
Comment 6 Maik Qualmann 2022-11-22 18:58:01 UTC
The qt5-maintenance branch is the upcoming digiKam-7.9.0 release.

Maik
Comment 7 TahomaSoft 2022-11-22 22:37:02 UTC
(In reply to Maik Qualmann from comment #6)
> The qt5-maintenance branch is the upcoming digiKam-7.9.0 release.
> 
> Maik

Thank you!  Cloning it now.