[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 --- Comment #11 from Dmitry Kazakov --- Just for your information: I have fixed on the part of the bug that is related to the select-all action. The accessibility issue is still **not fixed**. -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 --- Comment #10 from Dmitry Kazakov --- Git commit 45ebcf40a1f8632649cb8e427ee793241273dd16 by Dmitry Kazakov. Committed on 18/02/2022 at 08:16. Pushed by dkazakov into branch 'master'. Fix a race condition in Select All action It might happen that the selection has ben removed while the select-all action is still waiting in the strokes queue. Therefore the action should check for the presence of the global selection in the context of the worker thread, not the GUI one. M +7-5libs/ui/actions/kis_selection_action_factories.cpp https://invent.kde.org/graphics/krita/commit/45ebcf40a1f8632649cb8e427ee793241273dd16 -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 Dmitry Kazakov changed: What|Removed |Added CC||[email protected] --- Comment #9 from Dmitry Kazakov --- *** Bug 448774 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 Dmitry Kazakov changed: What|Removed |Added CC||[email protected] --- Comment #8 from Dmitry Kazakov --- Hi, Wolthera! > Basically, what seems to be going on is that KisSelection can somehow end up > without a pixelSelection pointer You are right. There is a race condition between the GUI thread and the worker threads. The check for `if (!image->globalSelection())` happens in the GUI thread and skips the creation of a job that initializes selection. But by the time the select-all stroke gets into the execution queue, the previous jobs have already removed the selection, hence the crash. -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 --- Comment #7 from Halla Rempt --- Note: 16:05:04 < windragon> yes, there is a Qt bug report with similar things, though not exactly the same: https://bugreports.qt.io/browse/QTBUG-83387 16:05:54 < windragon> tl;dr it *might* be that some code is calling disconnect() to disconnect *all* signals from some objects and breaks the cleanup code that Qt uses internally 16:06:11 < windragon> but I have no way to verify that -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 Halla Rempt changed: What|Removed |Added CC||[email protected] --- Comment #6 from Halla Rempt --- https://bugreports.qt.io/browse/QTBUG-83387 might be relevant. -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 --- Comment #5 from Halla Rempt --- There are three crashes wityh 5.0.2, one is the accessibility crash that we've seem half a dozen times now: 4, 5.0.2: 7FF8FF41D820 3BEED810 005FB749 Qt5Widgets.dll!0x2d820 QWidget::windowHandle+0x0 7FF8FF5F6DBD 279D9650 6A8F2E7F 005FB5F0 Qt5Widgets.dll!0x206dbd QAccessibleWidget::window+0x2d 6A8FC427 0959C1E0 005FB690 005FBEF0 qwindows.dll!0x7c427 6A8F1D02 005FB6C8 005FB740 qwindows.dll!0x71d02 7FF90F2F5E57 0040 7FF9 0070 UIAutomationCore.dll!0x45e57 1, 5.0.2: AddrPC Params 7FF820AAE593 30DC7930 7FF820AB92C4 02971E40 Qt5Widgets.dll!0x2e593 QWidget::window+0x23 7FF820A8E653 0001 02971E40 24BA5BB0 Qt5Widgets.dll!0xe653 QApplicationPrivate::sendSyntheticEnterLeave+0xc3 7FF820AC5DDA 02971E40 Qt5Widgets.dll!0x45dda QWidgetPrivate::setVisible+0x29a 7FF820AC516C 00130034 005FBC80 15122430 Qt5Widgets.dll!0x4516c QWidget::qt_static_metacall+0x44c 7FF82184A05A 24C30AF0 7FF821F50D5F Qt5Core.dll!0x22a05a QObject::event+0xda 7FF820AC63BC 24BA5BB0 02971E40 24C31CF0 Qt5Widgets.dll!0x463bc QWidget::event+0x3dc 7FF820C33344 005FFB80 005FFB80 Qt5Widgets.dll!0x1b3344 QToolButton::event+0x24 AddrPC Params 7FF888AF5F90 7FF888DCB880 119EBC90 libkritaimage.dll!0x1f5f90 KisSelection::pixelSelection+0x0 7FF8869925FF 119EBBD0 119EBBD0 223A7FA0 libkritaui.dll!0x3225ff KisSelectAllActionFactory::run(KisViewManager*)::SelectAll::paint+0x2f 7FF888983A6C 4C93A8F0 7FF888A51B45 5E03FE70 libkritaimage.dll!0x83a6c KisTransactionBasedCommand::redo+0x2c 7FF888A3EB96 53A9A3F0 19DE6D40 5E03FE70 libkritaimage.dll!0x13eb96 KisStrokeStrategyUndoCommandBased::doStrokeCallback+0x76 7FF888C49E70 0010 67C93680 59C271E0 libkritaimage.dll!0x349e70 KisUpdateJobItem::run+0x90 7FF886068A90 53A9A3F0 59C27100 Qt5Core.dll!0x28a90 QThreadPool::tryStart+0x520 7FF886061AAF Qt5Core.dll!0x21aaf QThread::qt_metacall+0x69f 7FF8B4337974 KERNEL32.DLL!0x17974 BaseThreadInitThunk+0x14 7FF8B6FFA2F1 ntdll.dll!0x5a2f1 RtlUserThreadStart+0x21 -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 Halla Rempt changed: What|Removed |Added CC||[email protected] --- Comment #4 from Halla Rempt --- *** Bug 449723 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 --- Comment #3 from Halla Rempt --- *** Bug 449249 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 Halla Rempt changed: What|Removed |Added CC||[email protected] --- Comment #2 from Halla Rempt --- *** Bug 449223 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are watching all bug changes.
[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool
https://bugs.kde.org/show_bug.cgi?id=449122 wolthera changed: What|Removed |Added CC||[email protected] Keywords||triaged --- Comment #1 from wolthera --- Hi, thanks for your report. This is the relevant section of the crash log: --- 7FF888AF5F90 7FF888DCB880 119EBC90 libkritaimage.dll!0x1f5f90 KisSelection::pixelSelection+0x0 7FF8869925FF 119EBBD0 119EBBD0 223A7FA0 libkritaui.dll!0x3225ff KisSelectAllActionFactory::run(KisViewManager*)::SelectAll::paint+0x2f 7FF888983A6C 4C93A8F0 7FF888A51B45 5E03FE70 libkritaimage.dll!0x83a6c KisTransactionBasedCommand::redo+0x2c 7FF888A3EB96 53A9A3F0 19DE6D40 5E03FE70 libkritaimage.dll!0x13eb96 KisStrokeStrategyUndoCommandBased::doStrokeCallback+0x76 7FF888C49E70 0010 67C93680 59C271E0 libkritaimage.dll!0x349e70 KisUpdateJobItem::run+0x90 7FF886068A90 53A9A3F0 59C27100 Qt5Core.dll!0x28a90 QThreadPool::tryStart+0x520 7FF886061AAF Qt5Core.dll!0x21aaf QThread::qt_metacall+0x69f 7FF8B4337974 KERNEL32.DLL!0x17974 BaseThreadInitThunk+0x14 7FF8B6FFA2F1 ntdll.dll!0x5a2f1 RtlUserThreadStart+0x21 --- Basically, what seems to be going on is that KisSelection can somehow end up without a pixelSelection pointer, and crashes when it's accessed in KisSelectAllActionFactory::run at line 157. My instinct is to say we should first check if that pointer exists, but I am also wondering why that pointer is able to be missing to begin with. Maybe we should always ensure it exists by initializing, for example. I'll need to ask around. -- You are receiving this mail because: You are watching all bug changes.
