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

tomtomtomreportin...@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REPORTED                    |CONFIRMED
                 CC|                            |tomtomtomreportingin@gmail.
                   |                            |com
     Ever confirmed|0                           |1

--- Comment #1 from tomtomtomreportin...@gmail.com ---
I am not sure if this is the same issue as the safe assert, as a safe assert
doesn't happen in this case, but a user can consistently brute-force a colorize
mask crash through these steps:

1. Select Colorize Mask tool.
2. Draw a dot.
3. Update.
4. Repeatedly hold undo and hold redo back-and-forth until crash.

I think a big part of this instability is that the update operation exists as a
seperate item in the undo stack, even though the actual update output already
exists as another seperate item in the stack. The output item even lies before
the update operation in the stack. Is there a reason why the intensive update
operation is included in the undo stack when you'd really just want the output?

Generated backtrace:
Application: Krita (krita), signal: Aborted

[KCrash Handler]
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#5  0x00007fa1de5d6537 in __GI_abort () at abort.c:79
#6  0x00007fa1de9eebf1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fa1de9ee040 in qt_assert_x(char const*, char const*, char const*,
int) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fa1dfeeb558 in KisSharedPtr<KisNode>::operator->() (this=<optimized
out>, this=0x7ffe3aa6a6c0) at
/home/name/kritadev/fork/krita/libs/global/kis_shared_ptr.h:168
#9  KisColorizeMask::slotUpdateRegenerateFilling(bool) (this=0x56076c8fa9b0,
prefilterOnly=<optimized out>) at
/home/name/kritadev/fork/krita/libs/image/lazybrush/kis_colorize_mask.cpp:310
#10 0x00007fa1dec41580 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007fa1dec41580 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007fa1dfc81f35 in KisSignalCompressor::tryEmitSignalSafely()
(this=this@entry=0x56075a00f3f0) at
/home/name/kritadev/fork/krita/libs/global/kis_signal_compressor.cpp:195
#13 0x00007fa1dfc81fe5 in KisSignalCompressor::tryEmitOnTick(bool)
(this=this@entry=0x56075a00f3f0, isFromTimer=isFromTimer@entry=true) at
/home/name/kritadev/fork/krita/libs/global/kis_signal_compressor.cpp:172
#14 0x00007fa1dfc821aa in KisSignalCompressor::slotTimerExpired()
(this=0x56075a00f3f0) at
/home/name/kritadev/fork/krita/libs/global/kis_signal_compressor.cpp:207
#15 0x00007fa1dec41580 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007fa1dec4545a in QTimer::timeout(QTimer::QPrivateSignal) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007fa1dec36ecf in QObject::event(QEvent*) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007fa1df6cc15f in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fa1e15a7a69 in KisApplication::notify(QObject*, QEvent*)
(this=<optimized out>, receiver=0x5607586ca8b0, event=0x7ffe3aa6ac80) at
/home/name/kritadev/fork/krita/libs/ui/KisApplication.cpp:710
#20 0x00007fa1dec0af6a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007fa1dec61883 in QTimerInfoList::activateTimers() () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007fa1dec6213c in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007fa1dbf7de6b in g_main_context_dispatch () at
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007fa1dbf7e118 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fa1dbf7e1cf in g_main_context_iteration () at
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fa1dec624bf in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007fa1dec0992b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007fa1dec11ba0 in QCoreApplication::exec() () at
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x000056074d4e2b4e in main(int, char**) (argc=<optimized out>,
argv=0x7ffe3aa6b1e8) at /home/name/kritadev/fork/krita/krita/main.cc:663
[Inferior 1 (process 76349) detached]

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

Reply via email to