| Summary: | Fatal crash on vector backslash | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | C <fuffikuffi> |
| Component: | Layers/Vector | Assignee: | Elena Sagalaeva <alenacpp> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | alenacpp, tamtamy.tymona |
| Priority: | NOR | ||
| Version First Reported In: | 5.3.2.1 | ||
| Target Milestone: | --- | ||
| Platform: | Mint (Ubuntu based) | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/-/commit/59021c70bae58a88dae8e87821aa36f58134a3f1 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | The bug report from Krita | ||
|
Description
C
2026-06-05 19:59:50 UTC
Can you please attach Help -> Show Krita log for bug reports? You could also try to run Krita with gdb: `gdb krita_executable`, for example for the appimage: `gdb krita-5.3.2.1-x86_64.AppImage`. Then `r` to start it, then `bt` to see the backtrace when Krita finally crashes. Created attachment 193198 [details]
The bug report from Krita
this is the bug report how you asked it for, sorry for the long wait, life was a wee bit busy :(
๐๐งน Thanks for your comment! Automatically switching the status to REPORTED so the team can perform further triage. In the future you may also do this yourself when providing needed information. I can reproduce this one. We continue to use a combined shape that was deleted. Sometimes it leads to an assert, and Krita can recover from it. Sometimes it's a crash.
Assert:
SAFE ASSERT (krita): "d->listeners.contains(listener)" in file C:/krita-dev/krita/libs/flake/KoShape.cpp, line 1163
Crash stack:
Exception thrown at 0x00007FFB133A97D3 (libkritaflake.dll) in krita.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
> libkritaflake.dll!QListData::begin() Line 118 C++
libkritaflake.dll!QList<KoShape::ShapeChangeListener *>::contains_impl(KoShape::ShapeChangeListener * const & t, QListData::ArrayCompatibleLayout) Line 1098 C++
libkritaflake.dll!QList<KoShape::ShapeChangeListener *>::contains(KoShape::ShapeChangeListener * const & t) Line 1081 C++
libkritaflake.dll!KoShape::removeShapeChangeListener(KoShape::ShapeChangeListener * listener) Line 1163 C++
krita_flaketools.dll!DefaultToolTextPropertiesInterface::slotSelectionChanged() Line 2465 C++
krita_flaketools.dll!DefaultToolTextPropertiesInterface::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 326 C++
Qt5Core.dll!00007ffaf514f11d() Unknown
libkritaui.dll!KisSelectedShapesProxy::selectionChanged() Line 157 C++
libkritaui.dll!KisSelectedShapesProxy::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 82 C++
Qt5Core.dll!00007ffaf514f11d() Unknown
libkritaflake.dll!KoShapeManager::selectionChanged() Line 195 C++
libkritaflake.dll!KoShapeManager::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 107 C++
Qt5Core.dll!00007ffaf514f11d() Unknown
libkritaflake.dll!KoSelection::selectionChanged() Line 150 C++
libkritaflake.dll!KoSelection::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 79 C++
Qt5Core.dll!00007ffaf514f11d() Unknown
libkritaglobal.dll!KisThreadSafeSignalCompressor::timeout() Line 184 C++
libkritaglobal.dll!KisThreadSafeSignalCompressor::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 98 C++
Qt5Core.dll!00007ffaf514f11d() Unknown
libkritaglobal.dll!KisSignalCompressor::timeout() Line 153 C++
libkritaglobal.dll!KisSignalCompressor::tryEmitSignalSafely() Line 200 C++
libkritaglobal.dll!KisSignalCompressor::tryEmitOnTick(bool isFromTimer) Line 176 C++
libkritaglobal.dll!KisSignalCompressor::slotTimerExpired() Line 212 C++
libkritaglobal.dll!KisSignalCompressor::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 94 C++
Qt5Core.dll!00007ffaf514f11d() Unknown
Qt5Core.dll!00007ffaf5153de3() Unknown
Qt5Core.dll!00007ffaf5144020() Unknown
Qt5Widgets.dll!00007ffafa01c382() Unknown
Qt5Widgets.dll!00007ffafa01d613() Unknown
libkritaui.dll!KisApplication::notify(QObject * receiver, QEvent * event) Line 920 C++
Qt5Core.dll!00007ffaf511bc65() Unknown
Qt5Core.dll!00007ffaf516eac4() Unknown
Qt5Core.dll!00007ffaf516e80d() Unknown
[External Code]
Qt5Core.dll!00007ffaf516f91f() Unknown
qwindows.dll!00007ffb0b2e7ba5() Unknown
Qt5Core.dll!00007ffaf5118ef5() Unknown
Qt5Core.dll!00007ffaf511c21d() Unknown
krita.dll!00007ffb1a44741f() Unknown
krita.exe!00007ff722c813d8() Unknown
krita.exe!00007ff722c81311() Unknown
krita.exe!00007ff722c81156() Unknown
[External Code]
Using "Merge points" instead of "Join with Segment" leads to the same crash stack. A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/2828 Git commit eadecc881937c0e1c50f771e850e3938b4f4734e by Dmitry Kazakov, on behalf of Elena Sagalaeva. Committed on 25/06/2026 at 07:34. Pushed by dkazakov into branch 'master'. Fix bug 521106. Remove combined shapes from a selected shapes list after deletion. Combined shapes sometimes remain in the selected shapes list and might be used, leading to a crash. I added code, which removes deleted combined shapes from the selected shapes list. ## Test Plan Follow the repro steps in 521106. Krita doesn't crash anymore. ## Formalities Checklist - [x] I confirmed this builds. - [x] I confirmed Krita ran and the relevant functions work. - [x] I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) - [x] I made sure my commits build individually and have good descriptions as per [KDE guidelines](https://community.kde.org/Policies/Commit_Policy). - [x] I made sure my code conforms to the standards set in the HACKING file. - [x] I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per [KDE Licensing Policy](https://community.kde.org/Policies/Licensing_Policy). - [ ] Does the patch add a user-visible feature? If yes, is there a documentation MR ready for it at [Krita Documentation Repository](https://invent.kde.org/documentation/docs-krita-org)? **_Reminder: the reviewer is responsible for merging the patch, this is to ensure at the least two people can build the patch. In case a patch breaks the build, both the author and the reviewer should be contacted to fix the build._** **_If this is not possible, the commits shall be reverted, and a notification with the reasoning and any relevant logs shall be sent to the mailing list, _****_kimageshop@kde.org_****_._** M +3 -2 plugins/tools/defaulttool/defaulttool/DefaultTool.cpp https://invent.kde.org/graphics/krita/-/commit/eadecc881937c0e1c50f771e850e3938b4f4734e Git commit 59021c70bae58a88dae8e87821aa36f58134a3f1 by Dmitry Kazakov, on behalf of Elena Sagalaeva. Committed on 25/06/2026 at 07:35. Pushed by dkazakov into branch 'krita/6.0'. Fix bug 521106. Remove combined shapes from a selected shapes list after deletion. Combined shapes sometimes remain in the selected shapes list and might be used, leading to a crash. I added code, which removes deleted combined shapes from the selected shapes list. ## Test Plan Follow the repro steps in 521106. Krita doesn't crash anymore. ## Formalities Checklist - [x] I confirmed this builds. - [x] I confirmed Krita ran and the relevant functions work. - [x] I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) - [x] I made sure my commits build individually and have good descriptions as per [KDE guidelines](https://community.kde.org/Policies/Commit_Policy). - [x] I made sure my code conforms to the standards set in the HACKING file. - [x] I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per [KDE Licensing Policy](https://community.kde.org/Policies/Licensing_Policy). - [ ] Does the patch add a user-visible feature? If yes, is there a documentation MR ready for it at [Krita Documentation Repository](https://invent.kde.org/documentation/docs-krita-org)? **_Reminder: the reviewer is responsible for merging the patch, this is to ensure at the least two people can build the patch. In case a patch breaks the build, both the author and the reviewer should be contacted to fix the build._** **_If this is not possible, the commits shall be reverted, and a notification with the reasoning and any relevant logs shall be sent to the mailing list, _****_kimageshop@kde.org_****_._** M +3 -2 plugins/tools/defaulttool/defaulttool/DefaultTool.cpp https://invent.kde.org/graphics/krita/-/commit/59021c70bae58a88dae8e87821aa36f58134a3f1 |