| Summary: | Krita 5.1.0 beta2 : crash after reading a recently opened PSD file | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | stephen <tgdev001> |
| Component: | File formats | Assignee: | Dmitry Kazakov <dimula73> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | amy, dimula73, jade.cooperama |
| Priority: | NOR | Keywords: | release_blocker |
| Version First Reported In: | 5.1.0-beta1 | ||
| Target Milestone: | --- | ||
| Platform: | Microsoft Windows | ||
| OS: | Microsoft Windows | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/commit/29b26f7e34cbc1caaed6dcd22369d3444b964aa3 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
stephen
2022-07-25 16:14:20 UTC
Confirmed on latest stable nightly (commit e91e5d4). This is the stacktrace on macOS: Thread 12 Crashed:: Thread (pooled) 0 libkritaresources.18.dylib 0x0000000107ce1d9e KisResourceStorage::addResource(QSharedPointer<KoResource>) + 14 1 libkritaresources.18.dylib 0x0000000107cd4c0e KisResourceLocator::addResource(QString const&, QSharedPointer<KoResource>, QString const&) + 814 2 libkritaresources.18.dylib 0x0000000107cea3dd KisAllResourcesModel::addResource(QSharedPointer<KoResource>, QString const&) + 205 3 libkritaresources.18.dylib 0x0000000107ced815 KisResourceModel::addResource(QSharedPointer<KoResource>, QString const&) + 2277 4 kritapsdimport.so 0x0000000124298ef2 PSDLoader::decode(QIODevice&) + 19538 5 kritapsdimport.so 0x000000012429de1e PSDLoader::buildImage(QIODevice&) + 14 6 kritapsdimport.so 0x0000000124293e15 psdImport::convert(KisDocument*, QIODevice*, KisPinnedSharedPtr<KisPropertiesConfiguration>) + 53 7 libkritaui.18.dylib 0x000000010674b520 KisImportExportManager::doImport(QString const&, QSharedPointer<KisImportExportFilter>) + 128 8 libkritaui.18.dylib 0x00000001067468fb KisImportExportManager::convert(KisImportExportManager::Direction, QString const&, QString const&, QString const&, bool, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool, bool) + 3035 9 libkritaui.18.dylib 0x0000000106745bed KisImportExportManager::importDocument(QString const&, QString const&) + 77 10 libkritaui.18.dylib 0x0000000106736213 KisDocument::openFile() + 1635 11 libkritaui.18.dylib 0x0000000106735ac3 KisDocument::openPathInternal(QString const&) + 483 12 libkritaui.18.dylib 0x000000010673544a KisDocument::openPath(QString const&, QFlags<KisDocument::OpenFlag>) + 1034 13 libkritaui.18.dylib 0x0000000106673733 KisFileIconCreator::createFileIcon(QString, QIcon&, double, QSize) + 947 14 libkritaui.18.dylib 0x000000010667583c 0x1062ab000 + 3975228 15 libkritaui.18.dylib 0x0000000106676956 0x1062ab000 + 3979606 16 libkritaui.18.dylib 0x00000001066766fc 0x1062ab000 + 3979004 17 org.qt-project.QtCore 0x0000000109190ee2 0x10916c000 + 151266 18 org.qt-project.QtCore 0x000000010918c2a4 0x10916c000 + 131748 19 libsystem_pthread.dylib 0x00007fff2088e8fc _pthread_start + 224 20 libsystem_pthread.dylib 0x00007fff2088a443 thread_start + 15 It does not crash on nightly master (commit a40c361). I will look into this bug. Git commit 369e67c32cf8c7760338315c88b5861f8d9dcfbc by Dmitry Kazakov. Committed on 26/07/2022 at 10:19. Pushed by dkazakov into branch 'master'. Fix a crash when thumbnailer loads a PSD with embedded resources There were two issues: 1) When the document doesn't have its own temporary storages, we shouldn't add resources to them. 2) We cannot add embedded resources to **any** storage, when the document is being loaded from the non-gui thread (which happens in the thumbnailer). Therefore we need a special class, KisEmbeddedResourceStorageProxy, which would put the embedded resources into KisLocalStrokeResources and dispatch to other resources that need them. M +15 -13 libs/image/kis_asl_layer_style_serializer.cpp M +1 -0 libs/resources/CMakeLists.txt A +58 -0 libs/resources/KisEmbeddedResourceStorageProxy.cpp [License: GPL(v2.0+)] A +56 -0 libs/resources/KisEmbeddedResourceStorageProxy.h [License: GPL(v2.0+)] M +6 -0 libs/resources/KisLocalStrokeResources.cpp M +2 -0 libs/resources/KisLocalStrokeResources.h M +4 -2 libs/ui/KisDocument.cpp M +1 -2 plugins/impex/libkra/kis_kra_loader.cpp M +11 -12 plugins/impex/psd/psd_loader.cpp https://invent.kde.org/graphics/krita/commit/369e67c32cf8c7760338315c88b5861f8d9dcfbc Git commit 29b26f7e34cbc1caaed6dcd22369d3444b964aa3 by Dmitry Kazakov. Committed on 26/07/2022 at 10:19. Pushed by dkazakov into branch 'krita/5.1'. Fix a crash when thumbnailer loads a PSD with embedded resources There were two issues: 1) When the document doesn't have its own temporary storages, we shouldn't add resources to them. 2) We cannot add embedded resources to **any** storage, when the document is being loaded from the non-gui thread (which happens in the thumbnailer). Therefore we need a special class, KisEmbeddedResourceStorageProxy, which would put the embedded resources into KisLocalStrokeResources and dispatch to other resources that need them. M +15 -13 libs/image/kis_asl_layer_style_serializer.cpp M +1 -0 libs/resources/CMakeLists.txt A +58 -0 libs/resources/KisEmbeddedResourceStorageProxy.cpp [License: GPL(v2.0+)] A +56 -0 libs/resources/KisEmbeddedResourceStorageProxy.h [License: GPL(v2.0+)] M +6 -0 libs/resources/KisLocalStrokeResources.cpp M +2 -0 libs/resources/KisLocalStrokeResources.h M +4 -2 libs/ui/KisDocument.cpp M +1 -2 plugins/impex/libkra/kis_kra_loader.cpp M +11 -12 plugins/impex/psd/psd_loader.cpp https://invent.kde.org/graphics/krita/commit/29b26f7e34cbc1caaed6dcd22369d3444b964aa3 *** Bug 460807 has been marked as a duplicate of this bug. *** |