https://bugs.kde.org/show_bug.cgi?id=435670
Bug ID: 435670 Summary: Adding two shapes from vector library results in an assert Product: krita Version: nightly build (please specify the git hash!) Platform: Mint (Ubuntu based) OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: Layers/Vector Assignee: krita-bugs-n...@kde.org Reporter: tamtamy.tym...@gmail.com Target Milestone: --- Created attachment 137540 --> https://bugs.kde.org/attachment.cgi?id=137540&action=edit Crash log for all threads SUMMARY If you add a shape from vector library, and then, without deselecting that shape, you add another one, you'll get a safe assert window, and then a crash/freeze/another assert. STEPS TO REPRODUCE 1. Build Krita with safe assert dialogs on. 2. Drag a shape from a vector library to the canvas (remember that Pepper & carrot shapes are white and will be invisible on white canvas). Do not unselect the shape. 3. Optional: switch to another vector library. 4. Drag another shape on the canvas. OBSERVED RESULT In case of "optional", I get a weird situation when I don't have my X11 hang up, but the safe assert window doesn't react to either Abort or Ignore. If I break it in gdb, I get the crash log as shown below. In case without the optional step, my whole X11 hangs up so I cannot tell what the backtrace is. EXPECTED RESULT No safe asserts. No crashes. No freezes. NOTE On Krita 4.4.3 you already get those safe asserts: SAFE ASSERT (krita): "srcShape->parent() == excludeRoot" in file /home/appimage/workspace/Krita_Release_Appimage_Build/krita/libs/flake/KoShapeManager.cpp, line 512 SAFE ASSERT (krita): "clonedShapes.size() == originalShapes.size()" in file /home/appimage/workspace/Krita_Release_Appimage_Build/krita/libs/flake/KoShapeManager.cpp, line 534 SOFTWARE/OS VERSIONS Krita: 5766bca3cc (built) Qt Version (compiled): 5.12.9 Version (loaded): 5.12.9 OS Information Build ABI: x86_64-little_endian-lp64 Build CPU: x86_64 CPU: x86_64 Kernel Type: linux Kernel Version: 5.4.0-67-generic Pretty Productname: Linux Mint 20.1 Product Type: linuxmint Product Version: 20.1 Desktop: X-Cinnamon ADDITIONAL INFORMATION Crash log after doing ctrl+C in gdb with the "optional" step: Thread 1 "krita" received signal SIGINT, Interrupt. syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: Nie ma takiego pliku ani katalogu. (gdb) bt #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007ffff442ac75 in QBasicMutex::lockInternal() () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff359175e in QMutexLocker::QMutexLocker(QBasicMutex*) (this=<error reading variable: Unhandled dwarf expression opcode 0x0>, m=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:206 #3 0x000055555c01d960 in () #4 0x00007ffff3590031 in KoShapeManager::remove(KoShape*) (this=<error reading variable: Asked for position 0 of stack, stack only has 0 elements on it.>, shape=<optimized out>) at /home/tymon/kritadev/krita/libs/flake/KoShapeManager.cpp:418 #5 0x0000000000000008 in () #6 0xcf0d8c3d3e964500 in () #7 0x000055555bb1a100 in () #8 0xcf0d8c3d3e964500 in () #9 0x000055556164f160 in () #10 0x00005555592b8660 in () #11 0x0000555560577068 in () #12 0x00007ffff6b73b6a in KisSharedPtr<KisNode>::deref(KisSharedPtr<KisNode> const*, KisNode*) (sp=<optimized out>, t=<optimized out>) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:191 #13 KisSharedPtr<KisNode>::deref() const (this=<error reading variable: Unhandled dwarf expression opcode 0x0>) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:213 #14 KisSharedPtr<KisNode>::~KisSharedPtr() (this=<optimized out>, __in_chrg=<optimized out>) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:97 #15 KisCanvas2::localShapeManager() const (this=<optimized out>) at /home/tymon/kritadev/krita/libs/ui/canvas/kis_canvas2.cpp:432 #16 0x0000000000000000 in () -- You are receiving this mail because: You are watching all bug changes.