[krita] [Bug 449122] Crash occurred while using Freehand Selection Tool

2022-02-18 Thread Dmitry Kazakov
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

2022-02-18 Thread Dmitry Kazakov
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

2022-02-18 Thread Dmitry Kazakov
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

2022-02-18 Thread Dmitry Kazakov
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

2022-02-14 Thread Halla Rempt
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

2022-02-14 Thread Halla Rempt
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

2022-02-14 Thread Halla Rempt
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

2022-02-14 Thread Halla Rempt
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

2022-02-14 Thread Halla Rempt
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

2022-02-14 Thread Halla Rempt
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

2022-01-25 Thread wolthera
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.