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

            Bug ID: 434647
           Summary: Assert in tool invocations
           Product: krita
           Version: git master
          Platform: Mint (Ubuntu based)
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: General
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 136868
  --> https://bugs.kde.org/attachment.cgi?id=136868&action=edit
Crash log for all threads

SUMMARY
I got an assert but while I could move the dialog window, I couldn't click on
"Abort"? I don't know... but I used ctrl+C eventually.

This might be related to
https://invent.kde.org/graphics/krita/-/merge_requests/693 ?

STEPS TO REPRODUCE
I was just painting, doing usual stuff: paint, sample a color, undo...
No known specific steps to reproduce.

OBSERVED RESULT
Assert

EXPECTED RESULT
No assert! :D

SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.0-prealpha (git e87d7f580a)
 Languages: pl_PL, pl, pl_PL, pl
 Hidpi: true

Qt

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


ADDITIONAL INFORMATION
>From the Krita log file I got the safe assert message:
20 Mar 2021 02:27:59 +0100: SAFE ASSERT (krita): "it == end" in file
/home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp, line 152
---
^C
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  0x00007ffff3e382e9 in syscall ()
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff4562c25 in QBasicMutex::lockInternal() ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007ffff5bae277 in QMutexLocker::QMutexLocker(QBasicMutex*)
(m=0x5555602cea20, this=<synthetic pointer>)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:206
#3  0x00007ffff5bae277 in KisStrokesQueue::isEmpty() const
(this=0x55555faed3e0) at
/home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp:608
#4  0x00007ffff5bba73d in KisUpdateScheduler::tryBarrierLock()
(this=0x55555eb2f150) at
/home/tymon/kritadev/krita/libs/image/kis_update_scheduler.cpp:363
#5  0x00007ffff5bba79d in KisUpdateScheduler::isIdle() (this=0x55555eb2f150)
    at /home/tymon/kritadev/krita/libs/image/kis_update_scheduler.cpp:336
#6  0x00007ffff5bd89c3 in KisImage::isIdle(bool)
(this=this@entry=0x5555712512c0, allowLocked=allowLocked@entry=false)
    at /home/tymon/kritadev/krita/libs/image/kis_image.cc:740
#7  0x00007ffff5d57d66 in KisIdleWatcher::isIdle() const (this=0x55555f845b10)
    at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:167
#8  0x00007ffff5d583b9 in KisIdleWatcher::slotIdleCheckTick()
(this=0x55555f845b10) at
/home/tymon/kritadev/krita/libs/image/kis_idle_watcher.cpp:109
#9  0x00007ffff47416db in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff474d407 in QTimer::timeout(QTimer::QPrivateSignal) ()
---Type <return> to continue, or q <return> to quit---
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff4741f4b in QObject::event(QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007ffff50d74a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff50deae0 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff6ff7f17 in KisApplication::notify(QObject*, QEvent*)
(this=<optimized out>, receiver=0x55555f845c20, event=0x7fffffffbc70)
    at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:711
#15 0x00007ffff4718499 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff4769558 in QTimerInfoList::activateTimers() ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff4769dec in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007ffff062bd5e in g_main_context_dispatch ()
    at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff062bff8 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff062c08c in g_main_context_iteration ()
    at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff476a143 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007fffea761e51 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
---Type <return> to continue, or q <return> to quit---
#23 0x00007ffff471716b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff52c222d in QDialog::exec() ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff52f598d in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff563b669 in kis_assert_common(char const*, char const*, int,
bool, bool) (assertion=0x7ffff5e2715d "it == end", file=0x7ffff5e26f88
"/home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp", line=152,
throwException=false, isIgnorable=true)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:116
#27 0x00007ffff563b8fd in kis_safe_assert_recoverable(char const*, char const*,
int) (assertion=assertion@entry=0x7ffff5e2715d "it == end",
file=file@entry=0x7ffff5e26f88
"/home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp",
line=line@entry=152) at
/home/tymon/kritadev/krita/libs/global/kis_assert.cpp:107
#28 0x00007ffff5bb0702 in KisStrokesQueue::Private::startLod0ToNStroke(int,
bool) (this=0x5555602ce9f0, levelOfDetail=1, forgettable=false)
    at /home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp:152
#29 0x00007ffff5bb1db2 in KisStrokesQueue::startStroke(KisStrokeStrategy*)
(this=0x55555faed3e0, strokeStrategy=0x55557410b540)
    at /home/tymon/kritadev/krita/libs/image/kis_strokes_queue.cpp:295
#30 0x00007ffff5bbadb9 in KisUpdateScheduler::startStroke(KisStrokeStrategy*)
(this=0x55555eb2f150, strokeStrategy=<optimized out>)
    at /home/tymon/kritadev/krita/libs/image/kis_update_scheduler.cpp:209
---Type <return> to continue, or q <return> to quit---
#31 0x00007ffff5be6442 in KisImage::startStroke(KisStrokeStrategy*)
(this=0x5555712512c0, strokeStrategy=0x55557410b540)
    at /home/tymon/kritadev/krita/libs/image/kis_image.cc:1779
#32 0x00007ffff6e4ce06 in KisToolFreehandHelper::initPaintImpl(double,
KisPaintInformation const&, KoCanvasResourceProvider*,
KisWeakSharedPtr<KisImage>, KisSharedPtr<KisNode>, KisStrokesFacade*,
KisSharedPtr<KisNode>, KisSharedPtr<KisDefaultBoundsBase>)
(this=0x555571fc7630, startAngle=-2.154350757598877, pi=...,
resourceManager=<optimized out>, image=..., currentNode=...,
strokesFacade=0x5555712512d0, overrideNode=..., bounds=...)
    at /home/tymon/kritadev/krita/libs/ui/tool/kis_tool_freehand_helper.cpp:298
#33 0x00007ffff6e4dcd1 in KisToolFreehandHelper::initPaint(KoPointerEvent*,
QPointF const&, KisWeakSharedPtr<KisImage>, KisSharedPtr<KisNode>,
KisStrokesFacade*, KisSharedPtr<KisNode>, KisSharedPtr<KisDefaultBoundsBase>)
(this=0x555571fc7630, event=<optimized out>, pixelCoords=..., image=...,
currentNode=..., strokesFacade=0x5555712512d0, overrideNode=..., bounds=...)
    at /usr/include/c++/8/bits/atomic_base.h:512
#34 0x00007ffff6e458bb in KisToolFreehand::initStroke(KoPointerEvent*)
(this=0x555571384460, event=0x7fffffffc9a0)
    at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:419
#35 0x00007ffff6e46dce in KisToolFreehand::beginPrimaryAction(KoPointerEvent*)
(this=0x555571384460, event=0x7fffffffc9a0)
    at /home/tymon/kritadev/krita/libs/ui/tool/kis_tool_freehand.cc:215
#36 0x00007ffff6ba6483 in
KisToolProxy::forwardToTool(KisToolProxy::ActionState,---Type <return> to
continue, or q <return> to quit---
 KisTool::ToolAction, QEvent*, QPointF const&) (this=0x555566d28e30,
state=KisToolProxy::BEGIN, action=KisTool::Primary, event=0x7fffffffd4a0,
docPoint=...)
    at /home/tymon/kritadev/krita/libs/ui/canvas/kis_tool_proxy.cpp:172
#37 0x00007ffff6ba65eb in KisToolProxy::forwardEvent(KisToolProxy::ActionState,
KisTool::ToolAction, QEvent*, QEvent*) (this=0x555566d28e30,
state=KisToolProxy::BEGIN, action=KisTool::Primary, event=<optimized out>,
originalEvent=0x7fffffffd4a0) at
/home/tymon/kritadev/krita/libs/ui/canvas/kis_tool_proxy.cpp:121
#38 0x00007ffff6f7d331 in KisToolInvocationAction::begin(int, QEvent*)
(this=<optimized out>, shortcut=<optimized out>, event=0x7fffffffd4a0)
    at /usr/include/c++/8/bits/atomic_base.h:390
#39 0x00007ffff6f8dafa in
KisShortcutMatcher::tryRunReadyShortcut(Qt::MouseButton, QEvent*)
(this=0x55555a286780, button=Qt::LeftButton, event=0x7fffffffd4a0)
    at /home/tymon/kritadev/krita/libs/ui/input/kis_shortcut_matcher.cpp:636
#40 0x00007ffff6f8dd34 in KisShortcutMatcher::buttonPressed(Qt::MouseButton,
QEvent*) (this=0x55555a286780, button=Qt::LeftButton, event=0x7fffffffd4a0)
    at /home/tymon/kritadev/krita/libs/ui/input/kis_shortcut_matcher.cpp:259
#41 0x00007ffff6f6ce04 in KisInputManager::eventFilterImpl(QEvent*) [clone
.localalias.272] (this=0x55555a28c8f8, event=0x7fffffffd4a0)
    at /home/tymon/kritadev/krita/libs/ui/input/kis_input_manager.cpp:540
#42 0x00007ffff47181ab in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007ffff50d7491 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#44 0x00007ffff50df0d8 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007ffff6ff7f17 in KisApplication::notify(QObject*, QEvent*)
(this=<optimized out>, receiver=0x5555708663f0, event=0x7fffffffd4a0)
    at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:711
#46 0x00007ffff4718499 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007ffff5132820 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007ffff5132d9d in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff50d74a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff50deae0 in QApplication::notify(QObject*, QEvent*) ()
    at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007ffff6ff7f17 in KisApplication::notify(QObject*, QEvent*)
(this=<optimized out>, receiver=0x55555fc98340, event=0x7fffffffd8f0)
    at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:711
#52 0x00007ffff4718499 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#53 0x00007ffff4b1e025 in
QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::TabletEvent*)
()
    at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#54 0x00007ffff4b1f3e5 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
()
---Type <return> to continue, or q <return> to quit---
    at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#55 0x00007ffff4af9b6b in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#56 0x00007fffea761e5b in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#57 0x00007ffff471716b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00007ffff471f2e2 in QCoreApplication::exec() ()
    at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x0000555555e2a21b in main (argc=<optimized out>, argv=0x7fffffffde48)
    at /home/tymon/kritadev/krita/krita/main.cc:663
#60 0x00007ffff3d47b6b in __libc_start_main (main=
    0x555555e28890 <main>, argc=1, argv=0x7fffffffde48, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde38)
    at ../csu/libc-start.c:308
#61 0x0000555555e2b2da in _start ()
    at /home/tymon/kritadev/krita/krita/main.cc:468
(gdb) thread apply all bt

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

Reply via email to