https://bugs.kde.org/show_bug.cgi?id=431199

            Bug ID: 431199
           Summary: Crash on Smart Patch tool on master (Krita 5.0)
           Product: krita
           Version: git master
          Platform: Mint (Ubuntu based)
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Tool/Smart Patch
          Assignee: krita-bugs-n...@kde.org
          Reporter: tamtamy.tym...@gmail.com
  Target Milestone: ---

Created attachment 134596
  --> https://bugs.kde.org/attachment.cgi?id=134596&action=edit
Test file

SUMMARY
Using Smart Patch Tool doesn't work on Krita 5.0; sometimes (on a opaque layer
when there is only one layer in the file) it erases instead of patching up, and
sometimes it crashes.

STEPS TO REPRODUCE
1. Open the test file in Krita.
2. Use the Smart Patch tool (it's possible you need either a big size or a
longer stroke to get the crash; but it happens fairly often, it shouldn't be
difficult to reproduce)

OBSERVED RESULT
Crash :(

EXPECTED RESULT
No crash! :)

CRASH LOG
Thread 40 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb0eed700 (LWP 2466)]
0x00007fffcc1cdb07 in
NearestNeighborField::ExpectationStep(KisSharedPtr<NearestNeighborField>,
KisSharedPtr<MaskedImage>, KisSharedPtr<MaskedImage>, bool) () at
/usr/include/c++/8/bits/stl_vector.h:930
930           operator[](size_type __n) _GLIBCXX_NOEXCEPT
(gdb) bt
#0  0x00007fffcc1cdb07 in
NearestNeighborField::ExpectationStep(KisSharedPtr<NearestNeighborField>,
KisSharedPtr<MaskedImage>, KisSharedPtr<MaskedImage>, bool) (nnf=...,
source=..., target=..., upscale=false)
    at /usr/include/c++/8/bits/stl_vector.h:930
#1  0x00007fffcc1cee58 in
NearestNeighborField::ExpectationMaximization(KisSharedPtr<NearestNeighborField>,
int, int, QList<KisSharedPtr<MaskedImage> >&) (nnf_TargetToSource=..., level=3,
radius=4, pyramid=...)
    at /usr/include/c++/8/bits/atomic_base.h:295
#2  0x00007fffcc1cfb0a in Inpaint::patch() (this=0x7fffb0eecaa0) at
/usr/include/c++/8/bits/atomic_base.h:295
#3  0x00007fffcc1d0595 in patchImage(KisSharedPtr<KisPaintDevice>,
KisSharedPtr<KisPaintDevice>, int, int, KisSharedPtr<KisSelection>)
(imageDev=..., maskDev=..., patchRadius=4, accuracy=<optimized out>,
selection=...)
    at
/home/tymon/kritadev/krita/plugins/tools/tool_smart_patch/kis_inpaint.cpp:985
#4  0x00007fffcc1ca918 in KisToolSmartPatch::InpaintCommand::paint()
(this=0x55555b6cc4d0) at /usr/include/c++/8/bits/atomic_base.h:295
#5  0x00007ffff5ae5ea5 in KisTransactionBasedCommand::redo()
(this=0x55555b6cc4d0) at
/home/tymon/kritadev/krita/libs/image/commands_new/kis_transaction_based_command.cpp:22
#6  0x00007ffff5bf6afa in
KisStrokeStrategyUndoCommandBased::doStrokeCallback(KisStrokeJobData*)
(this=0x55555e096130, data=0x55555b6cc530) at
/usr/include/c++/8/bits/atomic_base.h:295
#7  0x00007ffff5e52051 in non-virtual thunk to KisUpdateJobItem::run() () at
/home/tymon/kritadev/install/lib/x86_64-linux-gnu/libkritaimage.so.17
#8  0x00007ffff45ebf71 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff45f3c87 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff19a8182 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#11 0x00007ffff3ec2b1f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95


(gdb) thread apply all bt
### Here the only other thread that has some info:
Thread 1 (Thread 0x7fffeb13dc80 (LWP 2083)):
---Type <return> to continue, or q <return> to quit---
#0  0x00007ffff45e6dfc in QMutex::lock() () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#1  0x00007ffff5bfbab7 in QMutexLocker::QMutexLocker(QBasicMutex*)
(m=0x555563955e40, this=<synthetic pointer>) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:206
#2  0x00007ffff5bfbab7 in KisStrokesQueue::isEmpty() const
(this=0x555559cecd90) at
/home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp:550
#3  0x00007ffff5c0809d in KisUpdateScheduler::tryBarrierLock()
(this=0x5555609047e0) at
/home/tymon/kritadev/krita/libs/image/kis_update_scheduler.cpp:351
#4  0x00007ffff5c080fd in KisUpdateScheduler::isIdle() (this=0x5555609047e0) at
/home/tymon/kritadev/krita/libs/image/kis_update_scheduler.cpp:324
#5  0x00007ffff5c26323 in KisImage::isIdle(bool) (this=<optimized out>,
allowLocked=<optimized out>) at
/home/tymon/kritadev/krita/libs/image/kis_image.cc:726
#6  0x00007ffff6c5c92b in KisDelayedSaveDialog::Private::checkImageIdle()
(this=<optimized out>) at
/home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:167
#7  0x00007ffff6c5c92b in KisDelayedSaveDialog::blockIfImageIsBusy()
(this=0x7fffffffc380) at
/home/tymon/kritadev/krita/libs/ui/dialogs/kis_delayed_save_dialog.cpp:87
#8  0x00007ffff7056314 in (anonymous
namespace)::busyWaitWithFeedback(KisSharedPtr<KisImage>) (image=...) at
/home/tymon/kritadev/krita/libs/ui/KisPart.cpp:123
#9  0x00007ffff7057292 in std::_Function_handler<void (KisSharedPtr<KisImage>),
void (*)(KisSharedPtr<KisImage>)>::_M_invoke(std::_Any_data const&,
KisSharedPtr<KisImage>&&) (__functor=..., __args#0=...)
    at /usr/include/c++/8/bits/atomic_base.h:295
#10 0x00007ffff5b77178 in std::function<void
(KisSharedPtr<KisImage>)>::operator()(KisSharedPtr<KisImage>) const
(__args#0=..., this=<optimized out>) at
/usr/include/c++/8/bits/std_function.h:682
#11 0x00007ffff5b77178 in
KisBusyWaitBroker::notifyWaitOnImageStarted(KisImage*) (this=0x7ffff5f9c098
<_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>,
image=<optimized out>)
    at /home/tymon/kritadev/krita/libs/image/KisBusyWaitBroker.cpp:57
#12 0x00007ffff5c26c59 in KisImage::waitForDone() (this=0x555563992e40) at
/home/tymon/kritadev/krita/libs/image/kis_image.cc:1741
#13 0x00007fffcc1c82a2 in KisToolSmartPatch::endPrimaryAction(KoPointerEvent*)
(this=0x55555f1c7e80, event=<optimized out>) at
/home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:419
#14 0x00007ffff6bb9378 in
KisToolProxy::forwardToTool(KisToolProxy::ActionState, KisTool::ToolAction,
QEvent*, QPointF const&) (this=0x5555652a52d0, state=KisToolProxy::END,
action=KisTool::Primary, event=0x7fffffffd4b0, docPoint=...)
    at /home/tymon/kritadev/krita/libs/ui/canvas/kis_tool_proxy.cpp:191
#15 0x00007ffff6bb950b in KisToolProxy::forwardEvent(KisToolProxy::ActionState,
KisTool::ToolAction, QEvent*, QEvent*) (this=0x5555652a52d0,
state=KisToolProxy::END, action=KisTool::Primary, event=<optimized out>,
originalEvent=0x7fffffffd4b0) at
/home/tymon/kritadev/krita/libs/ui/canvas/kis_tool_proxy.cpp:121
#16 0x00007ffff6f8d828 in KisToolInvocationAction::end(QEvent*)
(this=0x555559b999c0, event=0x7fffffffd4b0) at
/usr/include/c++/8/bits/atomic_base.h:390
#17 0x00007ffff6f9c466 in
KisShortcutMatcher::tryEndRunningShortcut(Qt::MouseButton, QEvent*)
(this=this@entry=0x555558a91390, button=<optimized out>,
event=event@entry=0x7fffffffd4b0)
    at /home/tymon/kritadev/krita/libs/ui/input/kis_shortcut_matcher.cpp:697
#18 0x00007ffff6f9ce8c in KisShortcutMatcher::buttonReleased(Qt::MouseButton,
QEvent*) (this=0x555558a91390, button=<optimized out>, event=0x7fffffffd4b0) at
/home/tymon/kritadev/krita/libs/ui/input/kis_shortcut_matcher.cpp:288
#19 0x00007ffff6f7ccf6 in KisInputManager::eventFilterImpl(QEvent*) [clone
.localalias.272] (this=0x555559ba56e0, event=0x7fffffffd4b0) at
/usr/include/x86_64-linux-gnu/qt5/QtGui/qevent.h:132
#20 0x00007ffff479c1ab in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff515b491 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff5162d28 in QApplication::notify(QObject*, QEvent*) () at
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff7003877 in KisApplication::notify(QObject*, QEvent*)
(this=<optimized out>, receiver=0x5555639f9310, event=0x7fffffffd4b0) at
/home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:688
#24 0x00007ffff479c499 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff5162029 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff51b4304 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff51b6e8e in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff515b4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff5162ae0 in QApplication::notify(QObject*, QEvent*) () at
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff7003877 in KisApplication::notify(QObject*, QEvent*)
(this=<optimized out>, receiver=0x55555a879050, event=0x7fffffffd930) at
/home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:688
#31 0x00007ffff479c499 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007ffff4ba153b in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#33 0x00007ffff4ba3435 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#34 0x00007ffff4b7db6b in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#35 0x00007fffea84be5b in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#36 0x00007ffff479b16b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff47a32e2 in QCoreApplication::exec() () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x0000555555e27efb in main (argc=<optimized out>, argv=0x7fffffffdee8) at
/home/tymon/kritadev/krita/krita/main.cc:656
#39 0x00007ffff3dcbb6b in __libc_start_main (main=0x555555e26570 <main>,
argc=1, argv=0x7fffffffdee8, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffded8) at ../csu/libc-start.c:308
#40 0x0000555555e28f8a in _start () at
/home/tymon/kritadev/krita/krita/main.cc:461


SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.0-prealpha (git a1582db)
 Languages: en_US, en, en_US, en, en_US, en, pl_PL, pl, pl_PL, pl
 Hidpi: true

Qt

  Version (compiled): 5.11.1
  Version (loaded): 5.11.1

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 5.3.7-050307-generic
  Pretty Productname: Linux Mint 19.3
  Product Type: linuxmint
  Product Version: 19.3
  Desktop: X-Cinnamon

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to