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.

Reply via email to