Bug 408843 - Krita Freezes when pressing DELETE during polygonal selection
Summary: Krita Freezes when pressing DELETE during polygonal selection
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Selection (show other bugs)
Version: 4.2.1
Platform: Mint (Debian based) Linux
: NOR crash
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-17 18:35 UTC by Zaldor
Modified: 2019-07-08 14:59 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
krita config files - various (11.95 KB, text/plain)
2019-06-18 12:30 UTC, Ahab Greybeard
Details
various kritarc files (19.19 KB, application/zip)
2019-06-18 12:33 UTC, Ahab Greybeard
Details
kritarc minimum parameters to prevent freezing bug (234 bytes, application/zip)
2019-06-18 18:04 UTC, Ahab Greybeard
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zaldor 2019-06-17 18:35:27 UTC
SUMMARY

Krita Freezes when pressing DELETE during poligonal selection (selection not closed) and no file recovery is left. 
STEPS TO REPRODUCE
1. start makign a poligonal selection
2. press DELETE KEY
3. Watch Krita Die

OBSERVED RESULT
 Freezes in desperate need for kill

EXPECTED RESULT

Removing last poligonal selection vertex (step back)

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Ahab Greybeard 2019-06-17 21:24:25 UTC
With the 4.2.1 appimage on Debian 9, this does not happen.

Also, The Delete key acts to Clear the current layer (see the Edit -> Clear menu item).

Also, as far as I can tell, you can't undo the last segment of a poygonal selection while you're creating the selection.

Why do you believe the Delete key should step back in the polygonal selection process?
Comment 2 Zaldor 2019-06-17 22:11:56 UTC
I am sorry it doesn't happen on appimage on Debian 9,
also, the delete key may act as clear current layer only when there is not a selection going on or the selection is complete, other than that, what is the purpose of the DEL key in the specific instance? Freezing the app is not a really nice feature, it may well delete the last "polygon point".

Also undoing the last vertex in a polygonal selection should be a function the user is allowed to.

Also I think the delete key should step back as it is not only "common sense" and semantically appropriate but I would Also say it an "industry standard" operation... 

but this is only my opinion.

please let me know if I can be of any other assistance.
Comment 3 Ahab Greybeard 2019-06-18 04:01:55 UTC
I don't get a freeze when using the Delete key in this situation when running the 4.2.1 appimage on Linux Mint 18.3

I've just looked in the manual ( https://docs.krita.org/en/ ) and found out that Shift+Z will undo the last segment of a polygonal selection (and other polygonal constructions).

Does using the Delete key act to Clear the layer in other situations i.e when not constructing a polygonal selection?

Can you try the latest 4.3.0 pre-alpha appimage from https://binary-factory.kde.org/job/Krita_Nightly_Appimage_Build/ to see if you still have the freeze in this situation
Comment 4 Tiar 2019-06-18 09:13:40 UTC
I do get freeze on all of them: 4.2.1 appimage, 4.3.0 appimage, built recent git master d0c5d7697f. I need to kill Krita in all of the cases, hence for me the importance here should be "crash" even though I need to kill it myself.

I *didn't* get a freeze on 4.1.7 appimage (neither on 4.1.1.). Delete would just clear the layer and the selection would automatically close itself.

Setting to confirmed. My Qt is 5.12.3, I am on Linux Mint (Ubuntu based) 19.1. My shortcuts are default, because I recently cleared configuration a few times.

And while in general there is no point in clicking Delete while making a polygonal selection, since the shortcut for cancelling the last point is different, I do believe that Krita shouldn't crash or freeze no matter what the user do (and if it's really "industry standard", we can be sure that other people will try to do that as well).
Comment 5 Ahab Greybeard 2019-06-18 10:19:04 UTC
@Tymond re. Comment 4:

Can you try the 4.1.7 appimage to see if still doesn't freeze?

I don't get a freeze with any appimage on Debian 9.
Comment 6 Zaldor 2019-06-18 11:08:32 UTC
Pressing DEL Key while performing polygonal selection in krita-4.1.7-x86_64.appimage does make it unresponsive for 1 sec but after that the selection is automatically closed and no crash occurs.
Comment 7 Ahab Greybeard 2019-06-18 11:51:28 UTC
I did tests on Debian 9, Linux Mint 18.3 and Windows 10. I did not see any freezes with 4.1.7, 4.2.1 and the latest 4.3.0 pre-alpha. However, this was with my 'usual' configuration files.

After deleting the configuration files to give a 'fresh start', I get the freeze on all OSs with 4.2.1 and the latest 4.3.0 pre-alpha. But not with 4.1.7.
Something in my usual kritarc file seems to be preventing the freeze?

In the freeze, krita does not use any CPU or any extra RAM.
Comment 8 Tiar 2019-06-18 11:54:21 UTC
Ahab: if you still have those "good" configuration files (I assume you have?), can you please attach both yours and the empty/default one? It should help determining what the problem is.
Comment 9 Ahab Greybeard 2019-06-18 12:30:38 UTC
Created attachment 120974 [details]
krita config files - various

No problem: Here they are.
Comment 10 Ahab Greybeard 2019-06-18 12:33:06 UTC
Created attachment 120975 [details]
various kritarc files

That went wrong - here's a .zip file with all of them in it
Comment 11 Ahab Greybeard 2019-06-18 18:04:47 UTC
Created attachment 120982 [details]
kritarc minimum parameters to prevent freezing bug

By a process of structured binary pruning and a bit of guesswork, I've made a small kritarc file that will prevent this freeze from happening if it is used instead of no kritarc file on start-up.

I've no idea why it works but it does for me on Debian 9 with krita 4.2.1.
Comment 12 Tiar 2019-06-19 11:02:13 UTC
Freezing happens when using Delete on vector selection, which is default now and wasn't default before. Thanks Ahab for thorough testing :)
Comment 13 Halla Rempt 2019-06-20 13:18:13 UTC
Thread dump:

hread 13 (Thread 0x7fd705568700 (LWP 4748)):
#0  0x00007fd75c1a7ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7fd705567ba0, expected=0, futex_word=0x561549a22040) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fd705567c60, mutex=0x561549a21ff0, cond=0x561549a22018) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x561549a22018, mutex=0x561549a21ff0, abstime=0x7fd705567c60) at pthread_cond_wait.c:667
#3  0x00007fd76300cd36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd76300d096 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd76300a740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd75c1a16db in start_thread (arg=0x7fd705568700) at pthread_create.c:463
#8  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 12 (Thread 0x7fd7089bf700 (LWP 4747)):
#0  0x00007fd75c1a7ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7fd7089beba0, expected=0, futex_word=0x56154ebd17d0) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fd7089bec60, mutex=0x56154ebd1780, cond=0x56154ebd17a8) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x56154ebd17a8, mutex=0x56154ebd1780, abstime=0x7fd7089bec60) at pthread_cond_wait.c:667
#3  0x00007fd76300cd36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd76300d096 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd76300a740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd75c1a16db in start_thread (arg=0x7fd7089bf700) at pthread_create.c:463
#8  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fd6fffff700 (LWP 4746)):
#0  0x00007fd75c1a7ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7fd6ffffeba0, expected=0, futex_word=0x56154cd28900) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fd6ffffec60, mutex=0x56154cd288b0, cond=0x56154cd288d8) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x56154cd288d8, mutex=0x56154cd288b0, abstime=0x7fd6ffffec60) at pthread_cond_wait.c:667
#3  0x00007fd76300cd36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd76300d096 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd76300a740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd75c1a16db in start_thread (arg=0x7fd6fffff700) at pthread_create.c:463
#8  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fd705d69700 (LWP 4745)):
#0  0x00007fd75c1a7ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7fd705d68ba0, expected=0, futex_word=0x561549d95ea0) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fd705d68c60, mutex=0x561549d95e50, cond=0x561549d95e78) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x561549d95e78, mutex=0x561549d95e50, abstime=0x7fd705d68c60) at pthread_cond_wait.c:667
#3  0x00007fd76300cd36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd76300d096 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd76300a740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd75c1a16db in start_thread (arg=0x7fd705d69700) at pthread_create.c:463
#8  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fd6feffd700 (LWP 4744)):
#0  0x00007fd75c1a7ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, reltime=0x7fd6feffcba0, expected=0, futex_word=0x56154a0d15b0) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fd6feffcc60, mutex=0x56154a0d1560, cond=0x56154a0d1588) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x56154a0d1588, mutex=0x56154a0d1560, abstime=0x7fd6feffcc60) at pthread_cond_wait.c:667
#3  0x00007fd76300cd36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd76300d096 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd76300a740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd75c1a16db in start_thread (arg=0x7fd6feffd700) at pthread_create.c:463
#8  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fd70790d700 (LWP 4743)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fd763008354 in QSemaphore::acquire(int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fd76320eb10 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fd766a073ed in KisGuiContextCommand::sigExecuteCommand (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at /home/boud/dev/b-krita/libs/ui/kritaui_autogen/EWIEGA46WW/moc_kis_gui_context_command.cpp:136
#4  0x00007fd765200821 in KisStrokeStrategyUndoCommandBased::doStrokeCallback (this=0x561543441db0, data=<optimized out>) at /home/boud/dev/krita/libs/image/kis_stroke_strategy_undo_command_based.cpp:118
#5  0x00007fd76542b090 in non-virtual thunk to KisUpdateJobItem::run() () from /home/boud/dev/i-krita/lib/x86_64-linux-gnu/libkritaimage.so.19
#6  0x00007fd76300a3e2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fd75c1a16db in start_thread (arg=0x7fd70790d700) at pthread_create.c:463
#9  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fd71dbd4700 (LWP 4699)):
#0  0x00007fd7626e0bf9 in __GI___poll (fds=0x7fd710003fe0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd75a8a54c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd75a8a55dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd76323bdaf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd7631dd03a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd7630044ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd7484ae115 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fd75c1a16db in start_thread (arg=0x7fd71dbd4700) at pthread_create.c:463
#9  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fd71d3d3700 (LWP 4698)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fd763008630 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fd7630084a2 in QSemaphore::tryAcquire(int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fd765077fb3 in KisTileDataSwapper::waitForWork (this=<optimized out>) at /home/boud/dev/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007fd76507820a in KisTileDataSwapper::run (this=0x7fd76572de00 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder+64>) at /home/boud/dev/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd75c1a16db in start_thread (arg=0x7fd71d3d3700) at pthread_create.c:463
#7  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fd71fc55700 (LWP 4696)):
#0  0x00007fd7626e0bf9 in __GI___poll (fds=0x7fd718004670, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd75a8a54c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd75a8a55dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd76323bdaf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd7631dd03a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd7630044ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd75c1a16db in start_thread (arg=0x7fd71fc55700) at pthread_create.c:463
#8  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fd74b843700 (LWP 4695)):
#0  0x00007fd75c1a79f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56153f42e538) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x56153f42e4e8, cond=0x56153f42e510) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x56153f42e510, mutex=0x56153f42e4e8) at pthread_cond_wait.c:655
#3  0x00007fd73db83dcb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fd73db83af7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fd75c1a16db in start_thread (arg=0x7fd74b843700) at pthread_create.c:463
#6  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fd73c9fe700 (LWP 4694)):
#0  0x00007fd7626e0bf9 in __GI___poll (fds=0x7fd73c9fdc68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd759643747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fd75964536a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fd74e3f8578 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd75c1a16db in start_thread (arg=0x7fd73c9fe700) at pthread_create.c:463
#6  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fd7405ac700 (LWP 4688)):
#0  0x00007fd7626e0bf9 in __GI___poll (fds=0x7fd73801d480, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fd75a8a54c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd75a8a55dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd76323bdaf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd7631dd03a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd7630044ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd75c3cf015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007fd763005c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fd75c1a16db in start_thread (arg=0x7fd7405ac700) at pthread_create.c:463
#9  0x00007fd7626ed88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fd767c35000 (LWP 4686)):
#0  0x00007fd75c1a79f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x561549e44a64) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x561549e44a10, cond=0x561549e44a38) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x561549e44a38, mutex=0x561549e44a10) at pthread_cond_wait.c:655
#3  0x00007fd76300cdbb in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd763008ac7 in QThreadPoolPrivate::waitForDone(QDeadlineTimer const&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd763008f09 in QThreadPoolPrivate::waitForDone(int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd7652151df in KisUpdateScheduler::barrierLock (this=0x5615433f0a40) at /home/boud/dev/krita/libs/image/kis_update_scheduler.cpp:375
#7  0x00007fd7652362e8 in KisImage::barrierLock (this=0x561549e449a0, readOnly=readOnly@entry=false) at /home/boud/dev/krita/libs/image/kis_image.cc:598
#8  0x00007fd76677675c in KisToolUtils::clearImage (image=..., node=..., selection=...) at /home/boud/dev/krita/libs/ui/tool/kis_tool_utils.cpp:140
#9  0x00007fd76674ce5a in KisTool::deleteSelection (this=0x561549f51f40) at /home/boud/dev/krita/libs/ui/tool/kis_tool.cc:522
#10 0x00007fd7666a7e65 in KisSelectionManager::clear (this=0x5615481bdd70) at /home/boud/dev/krita/libs/ui/kis_selection_manager.cc:508
#11 0x00007fd766a138a5 in KisSelectionManager::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/boud/dev/b-krita/libs/ui/kritaui_autogen/EWIEGA46WW/moc_kis_selection_manager.cpp:249
#12 0x00007fd76320e875 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007fd763fd3f12 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fd763fd652c in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fd763fd6e81 in QAction::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fd763fda65c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fd763fe1b90 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fd7668f8ab7 in KisApplication::notify (this=<optimized out>, receiver=0x561548321f40, event=0x7ffdcecff200) at /home/boud/dev/krita/libs/ui/KisApplication.cpp:653
#19 0x00007fd7631ded18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007fd7637d2f42 in QShortcutMap::dispatchEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#21 0x00007fd7637d300a in QShortcutMap::tryShortcut(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#22 0x00007fd763785d53 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#23 0x00007fd7637a45d7 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#24 0x00007fd7637a9345 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#25 0x00007fd763781b4b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#26 0x00007fd74e3f959a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#27 0x00007fd75a8a5317 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fd75a8a5550 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007fd75a8a55dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fd76323bdaf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007fd7631dd03a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007fd7631e6170 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x000056153d61f751 in main (argc=<optimized out>, argv=0x7ffdcecff978) at /home/boud/dev/krita/krita/main.cc:546
(gdb)
Comment 14 Dmitry Kazakov 2019-06-24 17:03:05 UTC
Git commit a38cef83b6c07598390b09d83a83404e61837a00 by Dmitry Kazakov.
Committed on 24/06/2019 at 17:02.
Pushed by dkazakov into branch 'master'.

Port clear selection to strokes framework

Otherwise, there is a deadlock

M  +22   -18   libs/ui/tool/kis_tool_utils.cpp

https://invent.kde.org/kde/krita/commit/a38cef83b6c07598390b09d83a83404e61837a00
Comment 15 Halla Rempt 2019-07-08 14:59:29 UTC
Git commit 89970a0ae0ff4e1375f102b39a0146673fdd9322 by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 08/07/2019 at 14:59.
Pushed by rempt into branch 'krita/4.2'.

Port clear selection to strokes framework

Otherwise, there is a deadlock

M  +22   -18   libs/ui/tool/kis_tool_utils.cpp

https://invent.kde.org/kde/krita/commit/89970a0ae0ff4e1375f102b39a0146673fdd9322