Bug 484796 - Program Crash When Overwriting Gradient Resources in Krita
Summary: Program Crash When Overwriting Gradient Resources in Krita
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Resource Management (show other bugs)
Version: 5.2.2
Platform: Microsoft Windows Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-31 06:04 UTC by SharpIce
Modified: 2024-10-22 12:46 UTC (History)
3 users (show)

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


Attachments
log (54.50 KB, application/x-tar)
2024-03-31 06:04 UTC, SharpIce
Details

Note You need to log in before you can comment on or make changes to this bug.
Description SharpIce 2024-03-31 06:04:14 UTC
Created attachment 167972 [details]
log

# Summary
I encountered a program crash after overwriting gradient resources.

# Steps To Reproduce
1. Open Krita.
2. Create a new project.
3. Open the layer style of any layer, then navigate to the gradient overlay options and create a new gradient resource with the same name as an existing one.
4 .When prompted to overwrite the gradient resource, click "Yes," then apply the layer style.
5. Program crashes.

# OS Version
Windows: Windows 10 Professional Workstation Edition [64-bit] (Kernel: 10.0.19045.0)

# Additional Infoormation
Dump file: https://drive.google.com/file/d/1nR2smSiyFbQvo9KEzQOY-8rlv6X2iYRk
Comment 1 Hannes Domani 2024-05-19 11:30:52 UTC
Probably not needed, but this is the `bt` of the dump file:
> (gdb) bt -full -frame-arguments all
> #0  0x00007ffe2c60b502 in ?? ()
> No symbol table info available.
> #1  0x00007ffdb45a5aaa in qt_message_fatal () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\global/qlogging.cpp:1908
> No locals.
> #2  0x00007ffdb45a6a74 in QMessageLogger::fatal () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\global/qlogging.cpp:893
> No locals.
> #3  0x00007ffdd5182f66 in kis_assert_common (assertion=<optimized out>, file=0x7ffdb60da09e <typeinfo for KisTranslateLayerNamesVisitor+2214> "C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/image/kis_asl_layer_style_serializer.cpp", line=<optimized out>, abort=true, isIgnorable=false) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/global/kis_assert.cpp:90
>         shortMessage = "ASSERT (krita): \"embeddedResources.last().data()\" in file C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/image/kis_asl_layer_style_serializer.cpp, line 756"
>         longMessage = "Krita has encountered an internal error:\n\nASSERT (krita): \"embeddedResources.last().data()\" in file C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/image/kis_asl_layer_style_serializer"...
>         disableAssertMsg = true
>         forceCrashOnSafeAsserts = false
>         shouldIgnoreAsserts = true
>         button = <optimized out>
> #4  0x00007ffdd51830c1 in kis_assert_exception (assertion=0x7ffdb4a76450 <QArrayData::shared_null> "ÿÿÿÿ", file=0x1b31c520000 "", line=474553664) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/global/kis_assert.cpp:111
> No locals.
> #5  0x00007ffdb5f9886c in KisAslLayerStyleSerializer::fetchEmbeddedResources (style=0x1b34f3fcb80) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/image/kis_asl_layer_style_serializer.cpp:756
>         embeddedResources = QVector<QSharedPointer<KoResource>> (size = 1) = {[0] = {value = 0x0, d = 0x0}}
> #6  0x00007ffdb5fcb5ea in KisPSDLayerStyle::embeddedResources (this=0x1b31c520000, globalResourcesInterface=<optimized out>) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/image/kis_psd_layer_style.cpp:396
> No locals.
> #7  0x00007ffdd6d3f11e in KoResource::requiredResources (this=0x1b34f3fcb80, globalResourcesInterface={value = 0x1b3255fc8b0, d = 0x1b3255fc910}) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/resources/KoResource.cpp:242
> No locals.
> #8  0x00007ffdb5fcfba7 in KisRequiredResourcesOperators::createLocalResourcesSnapshot<KisPSDLayerStyle> (object=0x1b34f3fcb80, globalResourcesInterface={value = 0x1b3255fc8b0, d = 0x1b3255fc910}) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/resources/KisRequiredResourcesOperators.h:61
>         effectiveResourcesInterface = {value = 0x1b3255fc8b0, d = 0x1b3255fc910}
>         loadedResources = QList<KoResourceLoadResult> (size = 1792099538)<error reading variable: Cannot access memory at address 0x7ffa011707c3>
>         resources = QList<QSharedPointer<KoResource>> (size = -1329580173)
> #9  0x00007ffdb5fce158 in KisRequiredResourcesOperators::cloneWithResourcesSnapshot<QSharedPointer<KisPSDLayerStyle>, KisPSDLayerStyle> (object=object@entry=0x1b3494f2590, globalResourcesInterface={value = 0x1b3255fc8b0, d = 0x1b3255fc910}) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/resources/KisRequiredResourcesOperators.h:91
>         clonedStorage = {value = 0x1b34f3fcb80, d = 0x1b34f3fca40}
>         cloned = <optimized out>
> #10 0x00007ffdb5fca909 in KisPSDLayerStyle::cloneWithResourcesSnapshot (this=0x1b3494f2590, globalResourcesInterface=<optimized out>, canvasResourcesInterface={value = 0x1b326776dc0, d = 0x1b326777180}) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/image/kis_psd_layer_style.cpp:335
>         style = <optimized out>
> #11 0x00007ffdb543f6ae in updateLayerStyles (layer=<optimized out>, dlg=<optimized out>, canvasResourcesInterface={value = 0x1b326776dc0, d = 0x1b326777180}) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/kis_layer_manager.cc:996
> No locals.
> #12 0x00007ffdb5442cca in std::__1::__invoke[abi:v15000]<void (*&)(KisSharedPtr<KisLayer>, KisDlgLayerStyle*, QSharedPointer<KoCanvasResourcesInterface>), KisSharedPtr<KisLayer>&, KisDlgLayerStyle*&, QSharedPointer<KoCanvasResourcesInterface>&>(void (*&)(KisSharedPtr<KisLayer>, KisDlgLayerStyle*, QSharedPointer<KoCanvasResourcesInterface>), KisSharedPtr<KisLayer>&, KisDlgLayerStyle*&, QSharedPointer<KoCanvasResourcesInterface>&) (__f=<optimized out>, __args=<error reading variable: Cannot access memory at address 0x1>, __args=<error reading variable: Cannot access memory at address 0x1>, __args=<error reading variable: Cannot access memory at address 0x1>) at C:/MingW-LLVM/include/c++/v1/__functional/invoke.h:394
> No locals.
> #13 0x00007ffdb47a0cbb in doActivate<false> () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qobject.cpp:3931
> No locals.
> #14 0x00007ffdb47a0cbb in doActivate<false> () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qobject.cpp:3931
> No locals.
> #15 0x00007ffdd1dcbbde in QDialogPrivate::finalize () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\dialogs/qdialog.cpp:175
> No locals.
> #16 QDialog::done () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\dialogs/qdialog.cpp:638
> No locals.
> #17 0x00007ffdd31bef90 in KoDialog::slotButtonClicked (this=0x44becf6c90, button=<optimized out>) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/widgets/KoDialog.cpp:819
>         d = 0x1b34f596dc0
> #18 0x00007ffdb47a0b8b in QtPrivate::QSlotObjectBase::call () at ../../include/QtCore/../../../../s/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
> No locals.
> #19 doActivate<false> () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qobject.cpp:3919
> No locals.
> #20 0x00007ffdd1cbb941 in QAbstractButton::clicked () at .moc\release/moc_qabstractbutton.cpp:308
> No locals.
> #21 QAbstractButtonPrivate::emitClicked () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qabstractbutton.cpp:416
> No locals.
> #22 0x00007ffdd1cbb7d0 in QAbstractButtonPrivate::click () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qabstractbutton.cpp:409
> No locals.
> #23 0x00007ffdd1cbc8bc in QAbstractButton::mouseReleaseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qabstractbutton.cpp:1045
> No locals.
> #24 0x00007ffdd1c16479 in QWidget::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidget.cpp:8670
> No locals.
> #25 0x00007ffdd1d5ff10 in QPushButton::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qpushbutton.cpp:718
> No locals.
> #26 0x00007ffdd1bdc5a3 in QApplicationPrivate::notify_helper () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3637
> No locals.
> #27 0x00007ffdd1bdf20a in QApplication::notify () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3081
> No locals.
> #28 0x00007ffdb57a7388 in KisApplication::notify (this=0x44becff6a0, receiver=0x1b32bd93950, event=0x44becf30b8) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/KisApplication.cpp:763
>         guard = {m_info = 0x1b31e109120}
>         result = true
>         info = @0x1b31e109120: {eventRecursionCount = 6, postponedSynchronizationEvents = {c = {<std::__1::__deque_base<KisSynchronizedConnectionEvent, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {__map_ = {__first_ = 0x0, __begin_ = 0x0, __end_ = 0x0, __end_cap_ = {<std::__1::__compressed_pair_elem<KisSynchronizedConnectionEvent**, 0, false>> = {__value_ = 0x0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent*>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent*>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, __start_ = 0, __size_ = {<std::__1::__compressed_pair_elem<unsigned long long, 0, false>> = {__value_ = 0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <No data fields>}}}
>         e = <optimized out>
> #29 0x00007ffdb476dfb2 in QCoreApplication::notifyInternal2 () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1064
> No locals.
> #30 0x00007ffdd1bdce6f in QApplicationPrivate::sendMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:2619
> No locals.
> #31 0x00007ffdd1c33091 in QWidgetWindow::handleMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidgetwindow.cpp:683
> No locals.
> #32 0x00007ffdd1c31cbc in QWidgetWindow::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidgetwindow.cpp:300
> No locals.
> #33 0x00007ffdd1bdc5a3 in QApplicationPrivate::notify_helper () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3637
> No locals.
> #34 0x00007ffdd1bdd823 in QApplication::notify () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:2976
> No locals.
> #35 0x00007ffdb57a7388 in KisApplication::notify (this=0x44becff6a0, receiver=0x1b34ff15f70, event=0x44becf35a8) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/KisApplication.cpp:763
>         guard = {m_info = 0x1b31e109120}
>         result = true
>         info = @0x1b31e109120: {eventRecursionCount = 6, postponedSynchronizationEvents = {c = {<std::__1::__deque_base<KisSynchronizedConnectionEvent, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {__map_ = {__first_ = 0x0, __begin_ = 0x0, __end_ = 0x0, __end_cap_ = {<std::__1::__compressed_pair_elem<KisSynchronizedConnectionEvent**, 0, false>> = {__value_ = 0x0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent*>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent*>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, __start_ = 0, __size_ = {<std::__1::__compressed_pair_elem<unsigned long long, 0, false>> = {__value_ = 0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <No data fields>}}}
>         e = <optimized out>
> #36 0x00007ffdb476dfb2 in QCoreApplication::notifyInternal2 () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1064
> No locals.
> #37 0x00007ffdb4b45fd7 in QGuiApplicationPrivate::processMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\gui\kernel/qguiapplication.cpp:2285
> No locals.
> #38 0x00007ffdb4b2d1ea in QWindowSystemInterface::sendWindowSystemEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\gui\kernel/qwindowsysteminterface.cpp:1179
> No locals.
> #39 0x00007ffdb47c20fc in QEventDispatcherWin32::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventdispatcher_win.cpp:512
> No locals.
> #40 0x00007ffdb1ed8a35 in QWindowsGuiEventDispatcher::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\platformsupport\eventdispatchers/qwindowsguieventdispatcher.cpp:73
> No locals.
> #41 0x00007ffdb476b236 in QEventLoop::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventloop.cpp:139
> No locals.
> #42 QEventLoop::exec () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventloop.cpp:232
> No locals.
> #43 0x00007ffdd1dcbac4 in QDialog::exec () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\dialogs/qdialog.cpp:601
> No locals.
> #44 0x00007ffdb544000f in KisLayerManager::layerStyle (this=<optimized out>) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/kis_layer_manager.cc:1035
>         image = {d = 0x1b34ccb19d0, weakReference = 0x1b32673e590}
>         layer = {d = 0x1b34bded580}
>         canvasResourcesInterface = {value = 0x1b326776dc0, d = 0x1b326777180}
>         oldStyle = {value = 0x1b3494f2750, d = 0x1b3494f24d0}
>         newStyle = {value = 0x1b3494f2590, d = 0x1b3494f27d0}
>         dlg = {<KoDialog> = {<QDialog> = {<QWidget> = {<QObject> = {_vptr$QObject = 0x7ffdb58e6308 <vtable for KisDlgLayerStyle+16>, d_ptr = <incomplete type>}, <QPaintDevice> = {_vptr$QPaintDevice = 0x7ffdb58e6500 <vtable for KisDlgLayerStyle+520>, painters = 0, reserved = 0x0}, data = 0x1b34f0fe890}, }, d_ptr = 0x1b34f596dc0}, m_layerStyle = {value = 0x1b3494f2590, d = 0x1b3494f27d0}, m_initialLayerStyle = {value = 0x1b3494f2f30, d = 0x1b3494f2af0}, wdgLayerStyles = {<Ui_WdgStylesDialog> = {horizontalLayout = 0x1b34f54db00, verticalLayout_2 = 0x1b34f54d650, chkMasterFxSwitch = 0x1b32bd930d0, lstStyleSelector = 0x1b32bd83cd0, stylesStack = 0x1b32bd8ffd0, verticalLayout = 0x1b34f54e640, btnNewStyle = 0x1b32bd90f90, btnLoadStyle = 0x1b32bd91050, btnSaveStyle = 0x1b32bd91490, chkPreview = 0x1b32bd91410, lblPreview = 0x1b32bd91610, verticalSpacer = 0x1b34f54e9a0}, <No data fields>}, m_bevelAndEmboss = 0x1b34c6dbb90, m_blendingOptions = 0x1b34c6db550, m_colorOverlay = 0x1b34f484bc0, m_contour = 0x1b34fd1c9b0, m_dropShadow = 0x1b34c57f770, m_gradientOverlay = 0x1b34fe22c60, m_innerGlow = 0x1b34f2b4a40, m_innerShadow = 0x1b34c581060, m_outerGlow = 0x1b34f2b3a70, m_patternOverlay = 0x1b34c28bd40, m_satin = 0x1b34f3aa980, m_stroke = 0x1b34f518d20, m_stylesSelector = 0x1b34c6c18c0, m_texture = 0x1b34c28b740, m_configChangedCompressor = 0x1b34f535be0, m_isSwitchingPredefinedStyle = false, m_sanityLayerStyleDirty = false}
>         updateCall = {<std::__1::__function::__maybe_derive_from_unary_function<void ()>> = {<No data fields>}, <std::__1::__function::__maybe_derive_from_binary_function<void ()>> = {<No data fields>}, __f_ = {__buf_ = {__lx = " ÍTO³\001\000\000Ю\001µý\177\000\000\200͵´ý\177\000\000@lϾD\000\000"}, __f_ = 0x1b34fdfd850}}
>         proxy = {<QObject> = {_vptr$QObject = 0x7ffdd5245878 <vtable for SignalToFunctionProxy+16>, d_ptr = <incomplete type>}, m_function = {<std::__1::__function::__maybe_derive_from_unary_function<void ()>> = {<No data fields>}, <std::__1::__function::__maybe_derive_from_binary_function<void ()>> = {<No data fields>}, __f_ = {__buf_ = {__lx = "$\000\000\000\000\000\000\000\200¿6O³\001\000\000 \026@O³\001\000\000üM¾Ñý\177\000"}, __f_ = 0x1b34fe03ad0}}}
> #45 0x00007ffdb47a0cbb in doActivate<false> () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qobject.cpp:3931
> No locals.
> #46 0x00007ffdd1bd3aa4 in QAction::activate () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qaction.cpp:1161
> No locals.
> #47 0x00007ffdd1d4cdaa in QMenuPrivate::activateCausedStack () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qmenu.cpp:1384
> No locals.
> #48 0x00007ffdd1d4a56f in QMenuPrivate::activateAction () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qmenu.cpp:1461
> No locals.
> #49 0x00007ffdd1c16479 in QWidget::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidget.cpp:8670
> No locals.
> #50 0x00007ffdd1d51825 in QMenu::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qmenu.cpp:3087
> No locals.
> #51 0x00007ffdd1bdc5a3 in QApplicationPrivate::notify_helper () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3637
> No locals.
> #52 0x00007ffdd1bdf20a in QApplication::notify () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3081
> No locals.
> #53 0x00007ffdb57a7388 in KisApplication::notify (this=0x44becff6a0, receiver=0x44becfb148, event=0x44becf76d8) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/KisApplication.cpp:763
>         guard = {m_info = 0x1b31e109120}
>         result = true
>         info = @0x1b31e109120: {eventRecursionCount = 6, postponedSynchronizationEvents = {c = {<std::__1::__deque_base<KisSynchronizedConnectionEvent, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {__map_ = {__first_ = 0x0, __begin_ = 0x0, __end_ = 0x0, __end_cap_ = {<std::__1::__compressed_pair_elem<KisSynchronizedConnectionEvent**, 0, false>> = {__value_ = 0x0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent*>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent*>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, __start_ = 0, __size_ = {<std::__1::__compressed_pair_elem<unsigned long long, 0, false>> = {__value_ = 0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <No data fields>}}}
>         e = <optimized out>
> #54 0x00007ffdb476dfb2 in QCoreApplication::notifyInternal2 () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1064
> No locals.
> #55 0x00007ffdd1bdce6f in QApplicationPrivate::sendMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:2619
> No locals.
> #56 0x00007ffdd1c33726 in QWidgetWindow::handleMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidgetwindow.cpp:580
> No locals.
> #57 0x00007ffdd1c31cbc in QWidgetWindow::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidgetwindow.cpp:300
> No locals.
> #58 0x00007ffdd1bdc5a3 in QApplicationPrivate::notify_helper () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3637
> No locals.
> #59 0x00007ffdd1bdd823 in QApplication::notify () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:2976
> No locals.
> #60 0x00007ffdb57a7388 in KisApplication::notify (this=0x44becff6a0, receiver=0x1b34f15f630, event=0x44becf7bc8) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/KisApplication.cpp:763
>         guard = {m_info = 0x1b31e109120}
>         result = true
>         info = @0x1b31e109120: {eventRecursionCount = 6, postponedSynchronizationEvents = {c = {<std::__1::__deque_base<KisSynchronizedConnectionEvent, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {__map_ = {__first_ = 0x0, __begin_ = 0x0, __end_ = 0x0, __end_cap_ = {<std::__1::__compressed_pair_elem<KisSynchronizedConnectionEvent**, 0, false>> = {__value_ = 0x0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent*>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent*>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, __start_ = 0, __size_ = {<std::__1::__compressed_pair_elem<unsigned long long, 0, false>> = {__value_ = 0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <No data fields>}}}
>         e = <optimized out>
> #61 0x00007ffdb476dfb2 in QCoreApplication::notifyInternal2 () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1064
> No locals.
> #62 0x00007ffdb4b45fd7 in QGuiApplicationPrivate::processMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\gui\kernel/qguiapplication.cpp:2285
> No locals.
> #63 0x00007ffdb4b2d1ea in QWindowSystemInterface::sendWindowSystemEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\gui\kernel/qwindowsysteminterface.cpp:1179
> No locals.
> #64 0x00007ffdb47c20fc in QEventDispatcherWin32::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventdispatcher_win.cpp:512
> No locals.
> #65 0x00007ffdb1ed8a35 in QWindowsGuiEventDispatcher::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\platformsupport\eventdispatchers/qwindowsguieventdispatcher.cpp:73
> No locals.
> #66 0x00007ffdb476b236 in QEventLoop::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventloop.cpp:139
> No locals.
> #67 QEventLoop::exec () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventloop.cpp:232
> No locals.
> #68 0x00007ffdd1d4f9d8 in QMenuPrivate::exec(QPoint const&, QAction*, std::__1::function<QPoint (QSize const&)>) () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qmenu.cpp:2698
> No locals.
> #69 0x00007ffdd1d4f8c0 in QMenu::exec () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qmenu.cpp:2685
> No locals.
> #70 0x00007ffdace0b19c in LayerBox::slotContextMenuRequested (this=0x1b327aa0640, pos=@0x44becfbc6c: {xp = 1706, yp = 409}, index=@0x44becfb310: {r = 0, c = 0, i = 1869642486960, m = 0x1b349421860}) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/plugins/dockers/layerdocker/LayerBox.cpp:800
>         menu = {<QWidget> = {<QObject> = {_vptr$QObject = 0x7ffdd1f99d28 <vtable for QMenu+16>, d_ptr = <incomplete type>}, <QPaintDevice> = {_vptr$QPaintDevice = 0x7ffdd1f99ed8 <vtable for QMenu+448>, painters = 0, reserved = 0x0}, data = 0x1b34f531640}, }
>         nodes = QList<KisSharedPtr<KisNode>> (size = 1) = {[0] = {d = 0x1b34bded580}}
>         activeNode = {d = 0x1b34bded580}
> #71 0x00007ffdb47a0cbb in doActivate<false> () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qobject.cpp:3931
> No locals.
> #72 0x00007ffdace2481c in NodeView::contextMenuRequested (this=0x7ffdb4a76450 <QArrayData::shared_null>, _t1=<optimized out>, _t2=<optimized out>) at plugins/dockers/layerdocker/kritalayerdocker_static_autogen/EWIEGA46WW/moc_NodeView.cpp:230
>         _a = {0x0, 0x44becfbc6c, 0x44becfb310}
> #73 0x00007ffdace19541 in NodeView::contextMenuEvent (this=0x1b32c0180f0, e=<optimized out>) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/plugins/dockers/layerdocker/NodeView.cpp:297
>         i = {r = 0, c = 0, i = 1869642486960, m = 0x1b349421860}
> #74 0x00007ffdd1c16800 in QWidget::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidget.cpp:8848
> No locals.
> #75 0x00007ffdd1cb55b8 in QFrame::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\widgets/qframe.cpp:550
> No locals.
> #76 0x00007ffdd1e3958c in QAbstractItemView::viewportEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\itemviews/qabstractitemview.cpp:1747
> No locals.
> #77 0x00007ffdd1ea3d16 in QTreeView::viewportEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\itemviews/qtreeview.cpp:1314
> No locals.
> #78 0x00007ffdace1935c in NodeView::viewportEvent (this=0x1b32c0180f0, e=0x44becfbc48) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/plugins/dockers/layerdocker/NodeView.cpp:267
> No locals.
> #79 0x00007ffdb476e298 in QCoreApplicationPrivate::sendThroughObjectEventFilters () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1190
> No locals.
> #80 0x00007ffdd1bdc58f in QApplicationPrivate::notify_helper () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3631
> No locals.
> #81 0x00007ffdd1bde7d1 in QApplication::notify () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3243
> No locals.
> #82 0x00007ffdb57a7388 in KisApplication::notify (this=0x44becff6a0, receiver=0x1b349209c00, event=0x44becfbc48) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/KisApplication.cpp:763
>         guard = {m_info = 0x1b31e109120}
>         result = true
>         info = @0x1b31e109120: {eventRecursionCount = 6, postponedSynchronizationEvents = {c = {<std::__1::__deque_base<KisSynchronizedConnectionEvent, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {__map_ = {__first_ = 0x0, __begin_ = 0x0, __end_ = 0x0, __end_cap_ = {<std::__1::__compressed_pair_elem<KisSynchronizedConnectionEvent**, 0, false>> = {__value_ = 0x0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent*>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent*>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, __start_ = 0, __size_ = {<std::__1::__compressed_pair_elem<unsigned long long, 0, false>> = {__value_ = 0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <No data fields>}}}
>         e = <optimized out>
> #83 0x00007ffdb476dfb2 in QCoreApplication::notifyInternal2 () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1064
> No locals.
> #84 0x00007ffdd1c33591 in QWidgetWindow::handleMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidgetwindow.cpp:691
> No locals.
> #85 0x00007ffdd1c31cbc in QWidgetWindow::event () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qwidgetwindow.cpp:300
> No locals.
> #86 0x00007ffdd1bdc5a3 in QApplicationPrivate::notify_helper () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:3637
> No locals.
> #87 0x00007ffdd1bdd823 in QApplication::notify () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\widgets\kernel/qapplication.cpp:2976
> No locals.
> #88 0x00007ffdb57a7388 in KisApplication::notify (this=0x44becff6a0, receiver=0x1b326918bf0, event=0x44becfc138) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/libs/ui/KisApplication.cpp:763
>         guard = {m_info = 0x1b31e109120}
>         result = true
>         info = @0x1b31e109120: {eventRecursionCount = 6, postponedSynchronizationEvents = {c = {<std::__1::__deque_base<KisSynchronizedConnectionEvent, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {__map_ = {__first_ = 0x0, __begin_ = 0x0, __end_ = 0x0, __end_cap_ = {<std::__1::__compressed_pair_elem<KisSynchronizedConnectionEvent**, 0, false>> = {__value_ = 0x0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent*>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent*>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent*> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, __start_ = 0, __size_ = {<std::__1::__compressed_pair_elem<unsigned long long, 0, false>> = {__value_ = 0}, <std::__1::__compressed_pair_elem<std::__1::allocator<KisSynchronizedConnectionEvent>, 1, true>> = {<std::__1::allocator<KisSynchronizedConnectionEvent>> = {<std::__1::__non_trivial_if<true, std::__1::allocator<KisSynchronizedConnectionEvent> >> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}}, <No data fields>}}}
>         e = <optimized out>
> #89 0x00007ffdb476dfb2 in QCoreApplication::notifyInternal2 () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1064
> No locals.
> #90 0x00007ffdb4b45fd7 in QGuiApplicationPrivate::processMouseEvent () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\gui\kernel/qguiapplication.cpp:2285
> No locals.
> #91 0x00007ffdb4b2d1ea in QWindowSystemInterface::sendWindowSystemEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\gui\kernel/qwindowsysteminterface.cpp:1179
> No locals.
> #92 0x00007ffdb47c20fc in QEventDispatcherWin32::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventdispatcher_win.cpp:512
> No locals.
> #93 0x00007ffdb1ed8a35 in QWindowsGuiEventDispatcher::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\platformsupport\eventdispatchers/qwindowsguieventdispatcher.cpp:73
> No locals.
> #94 0x00007ffdb476b236 in QEventLoop::processEvents () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventloop.cpp:139
> No locals.
> #95 QEventLoop::exec () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qeventloop.cpp:232
> No locals.
> #96 0x00007ffdb476e54d in QCoreApplication::exec () at C:\Packaging\KritaDepsBuild\ext_qt\s\qtbase\src\corelib\kernel/qcoreapplication.cpp:1375
> No locals.
> #97 0x00007ffdd52855d9 in krita_main (argc=<optimized out>, argv=0x1b31dfc66c0) at C:/Packaging/workspace/Krita_Release_Windows64_Build/krita/krita/main.cc:766
>         key = "Krita5C__Users_SharpIce"
>         configPath = {d_ptr = <incomplete type>}
>         kritarc = {<QObject> = {_vptr$QObject = 0x7ffdb4981088 <vtable for QSettings+16>, d_ptr = <incomplete type>}, }
>         root = "C:/Users/SharpIce/Desktop/krita-x64-5.2.2/bin/../"
>         language = ""
>         app = {<QtSingleApplication> = {<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr$QObject = 0x7ffdb58d9d38 <vtable for KisApplication+16>, d_ptr = <incomplete type>}, }, }, }, firstPeer = -1, instances = 0x1b31e7e8dc0, pidPeer = 0x1b31e726140, actWin = 0x0, appId = "Krita5C__Users_SharpIce", block = false}, d = {d = 0x1b31e84ee90}}
>         appdir = {d_ptr = <incomplete type>}
>         path = "C:\\Program Files\\Python311\\Scripts\\;C:\\Program Files\\Python311\\;C:\\Program Files (x86)\\VMware\\VMware Workstation\\bin\\;C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.9.9-hotspot\\bin;C:\\Windows\\system32;C:\\"...
>         args = {d = {d = 0x1b31c5485e0}}
>         cfg = {m_cfg = {<KConfigBase> = {_vptr$KConfigBase = 0x7ffde8dcadd0 <vtable for KConfigGroup+16>}, d = <incomplete type>}, m_readOnly = false}
>         osVersion = {m_os = QOperatingSystemVersion::Windows, m_major = 10, m_minor = 0, m_micro = 19045}
>         enableOpenGLDebug = <optimized out>
>         openGLDebugSynchronous = <optimized out>
>         logUsage = true
>         rightToLeft = <optimized out>
>         forceWinTab = <optimized out>
>         supportedWindowsVersion = <optimized out>
>         useWinInkAPI = <optimized out>
>         state = <optimized out>
>         runningInKDE = <optimized out>
> #98 0x00007ff71dfd13d6 in __tmainCRTStartup () at ../crt/crtexe.c:329
>         lock_free = <optimized out>
>         fiberid = <optimized out>
>         nested = <optimized out>
>         StartupInfo = {cb = 104, lpReserved = 0x1b31c5677f0 "", lpDesktop = 0x1b31dfc6280 "Winsta0\\Default", lpTitle = 0x1b31e0803c0 "C:\\Users\\SharpIce\\Desktop\\krita-x64-5.2.2\\bin\\krita.exe", dwX = 0, dwY = 0, dwXSize = 0, dwYSize = 0, dwXCountChars = 0, dwYCountChars = 0, dwFillAttribute = 0, dwFlags = 1025, wShowWindow = 1, cbReserved2 = 0, lpReserved2 = 0x0, hStdInput = 0x0, hStdOutput = 0x10001, hStdError = 0x0}
>         lpszCommandLine = <optimized out>
>         inDoubleQuote = <optimized out>
> #99 0x00007ff71dfd1156 in WinMainCRTStartup () at ../crt/crtexe.c:176
>         ret = 255
Comment 2 Halla Rempt 2024-07-27 09:26:05 UTC
I cannot reproduce the issue, but the asserts were introduced by someone who no longer works on Krita, and are still present. This is the relevant commit:

https://invent.kde.org/graphics/krita/-/commit/885e62a63383e5117a158b3c6601c910ce21b2e6

I currently have no idea of the asserts are actually relevant, though I have my doubts, they basically check nothing.
Comment 3 Robert Moerland 2024-09-22 17:27:52 UTC
I am not sure if it's related, but I have found a way to consistently crash Krita when re-importing and overwriting existing gradients:
1. Import an SVG gradient
2. Change a color in the definition of the gradient (for example with a text editor)
3. Re-import the gradient
-> Krita crashes:

Output on terminal:
QLayout: Attempting to add QLayout "" to DlgResourceManager "", which already has a layout
A resource with the same filename but a different MD5 already exists in the storage "gradients" "D:/SandboxFiles/crash_test.svg" ""
Proceeding with overwriting the existing resource...
ASSERT (krita): "!originalImageCache.contains(key)" in file D:/git/krita-dev/krita-src/libs/resources/KisResourceThumbnailCache.cpp, line 91

It seems like the required update of the thumbnail fails an assert statement?

Krita version 5.2.3 on Windows 10
Comment 4 Dmitry Kazakov 2024-10-22 12:38:00 UTC
Git commit 3b2e6575fd7827d0b65ec2aa5d08b67f195501c3 by Dmitry Kazakov.
Committed on 22/10/2024 at 12:37.
Pushed by dkazakov into branch 'krita/5.2'.

Fix crash when re-importing the same resource, but changed

We have to remove the old resource from the thumbnail cache as well.

M  +5    -0    libs/resources/KisResourceLocator.cpp

https://invent.kde.org/graphics/krita/-/commit/3b2e6575fd7827d0b65ec2aa5d08b67f195501c3
Comment 5 Dmitry Kazakov 2024-10-22 12:46:26 UTC
Git commit b18e25c5b9ec1cd46042ce183603a313d2649c9d by Dmitry Kazakov.
Committed on 22/10/2024 at 12:37.
Pushed by dkazakov into branch 'master'.

Fix crash when re-importing the same resource, but changed

We have to remove the old resource from the thumbnail cache as well.

M  +5    -0    libs/resources/KisResourceLocator.cpp

https://invent.kde.org/graphics/krita/-/commit/b18e25c5b9ec1cd46042ce183603a313d2649c9d