Bug 377732 - Filtered layers can result in crash when navigating through hidden layers
Summary: Filtered layers can result in crash when navigating through hidden layers
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Layer Stack (show other bugs)
Version: 3.1.2
Platform: Other Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-17 13:51 UTC by Bollebib
Modified: 2017-05-01 14:32 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bollebib 2017-03-17 13:51:59 UTC
When you give a layer a color,and then proceed to filter it,so all other layers are hidden, and then cycle through all hidden layer,krita will crash.


I can recreate this fairly reliably.
Comment 1 Bollebib 2017-03-17 13:52:25 UTC
cycle through them via pg up and pg down
Comment 2 Bollebib 2017-03-26 14:40:44 UTC
krita.exe caused an Access Violation at location 00007FFE1A533DE5 in module msvcrt.dll Reading from location 000000033B329000.

AddrPC           Params
00007FFE1A533DE5 000000001CE70400 000000000000000A 000000001CE15420  msvcrt.dll!memcpy
00000000689EE278 00000000689ECB20 00007FFDD2BC335E 0000000000000002  Qt5Core.dll!QSortFilterProxyModel::~QSortFilterProxyModel
00000000689F2C72 000000006F40E178 000000006F40E178 0000000060F1DEB0  Qt5Core.dll!QSortFilterProxyModel::setSortRole
00000000689F30BD 0000000000000000 000000001C9D60F0 0000000000000001  Qt5Core.dll!QSortFilterProxyModel::setSortRole
00000000689F3380 0000000000000000 000000001C9D60F0 0000000000000001  Qt5Core.dll!QSortFilterProxyModel::setSortRole
00000000689F34F8 0000000000000009 000000001C9D60F0 0000000068D58600  Qt5Core.dll!QSortFilterProxyModel::setSortRole
00000000689F34F8 000000001CE18000 00007FFDD2DC4072 0000000000000001  Qt5Core.dll!QSortFilterProxyModel::setSortRole
00000000689F3BD4 0000000000000000 0000000000000000 0000000000001775  Qt5Core.dll!QSortFilterProxyModel::invalidateFilter
00007FFDD2BC2EB4 00000000005FB0D0 00000000005FB0F0 0000000000000000  libkritaui.dll!setActiveNode  [C:/dev/krita/libs/ui/kis_node_filter_proxy_model.cpp @ 124]
00007FFD98274DF6 0000000017C9CD68 00000000005FB1C0 000000001CE18000  kritadefaultdockers.dll!setCurrentNode  [C:/dev/krita/plugins/dockers/defaultdockers/kis_layer_box.cpp @ 470]
00007FFD98278E03 000000001CE18000 000000001EC95D20 0000000000000000  kritadefaultdockers.dll!qt_static_metacall  [C:/dev/build/plugins/dockers/defaultdockers/moc_kis_layer_box.cpp @ 233]
0000000068A2EBCA 0000000017C9CC58 00000000005FB330 0000000017C9CC58  Qt5Core.dll!QMetaObject::activate
00007FFDD2DB6FFA 0000000000000002 00000000005FB300 0000000700000001  libkritaui.dll! ??   [C:/dev/build/libs/ui/moc_kis_node_manager.cpp @ 436]
00007FFDD2BB32F1 00007FFDC137CBF0 000000001CE18300 0000000000000006  libkritaui.dll!slotSomethingActivatedNodeImpl  [C:/dev/krita/libs/ui/kis_node_manager.cpp @ 571]
00007FFDD2BB34E2 00000000005FB520 0000000000000008 00000000005FB500  libkritaui.dll!slotNonUiActivatedNode  [C:/dev/krita/libs/ui/kis_node_manager.cpp @ 586]
00007FFDD2BB3EB8 0000000017C9CC58 000000001E050EC0 0000000000000000  libkritaui.dll!activatePreviousNode  [C:/dev/krita/libs/ui/kis_node_manager.cpp @ 875]
00007FFDD2DC4FA0 000000001E050EC0 0000000000000000 00000000005FBAD0  libkritaui.dll!qt_static_metacall  [C:/dev/build/libs/ui/moc_kis_node_manager.cpp @ 320]
0000000068A2EBCA 000000001C6255A0 000000001C6255A0 0000000000000000  Qt5Core.dll!QMetaObject::activate
00000000026341B6 0000000000000001 000000006889DEAB 0000000000000040  Qt5Widgets.dll!QAction::activate
0000000002634C8A 00000000005FFB90 0000000005E5E920 0000000000000000  Qt5Widgets.dll!QAction::event
000000000263A33C 0000000000000001 0000000000000001 0000000000000001  Qt5Widgets.dll!QApplicationPrivate::notify_helper
000000000263F6A0 00000000005FBA50 000000001C6255A0 0000000000000000  Qt5Widgets.dll!QApplication::notify
00007FFDD2D1C4D6 00000000005FBC60 0000000005EC9EA8 0000000006045F00  libkritaui.dll!notify  [C:/dev/krita/libs/ui/KisApplication.cpp @ 542]
0000000068A0E9F2 000000006EDF2F30 00007FFE1A4D9DAC 0000000000000000  Qt5Core.dll!QCoreApplication::notifyInternal2
000000006198C9D3 0000000000000000 0000000000000000 0000000000000001  Qt5Gui.dll!QShortcutMap::dispatchEvent
000000006198CAF1 0000000000000022 0000000001510001 00000C0300000000  Qt5Gui.dll!QShortcutMap::tryShortcut
00000000619506B7 000000001C268AF0 0000000000000000 0000000000000000  Qt5Gui.dll!QWindowSystemInterface::handleShortcutEvent
0000000061962516 00000000005FBF18 0000000000030000 0100000000000000  Qt5Gui.dll!QGuiApplicationPrivate::processKeyEvent
0000000061967615 0000000000000000 0000000000090BFA 0000000000000000  Qt5Gui.dll!QGuiApplicationPrivate::processWindowSystemEvent
000000006194CD4C 0000000000000401 0000000000000000 0000000000090BFA  Qt5Gui.dll!QWindowSystemInterface::sendWindowSystemEvents
0000000068A5577A 0000000080000012 00007FFE19EA3552 0000000000000000  Qt5Core.dll!QEventDispatcherWin32Private::sendTimerEvent
00007FFE19E91C24 0000000000B01FE0 0000000068A55450 0000000000090BFA  USER32.dll!UserCallWinProcCheckWow
00007FFE19E9156C 00000000005FC200 0000000005E36AB0 0000000000000001  USER32.dll!DispatchMessageWorker
0000000068A54EB3 0000000005E40F50 0000000000000024 00000000005FFB90  Qt5Core.dll!QEventDispatcherWin32::processEvents
000000000681AB05 0000000000000080 0000000000000014 000000001DFECE60  qwindows.dll!qt_plugin_instance
0000000068A0DCCA 00000000005FFC00 00000000005FFA00 0000000068A2E670  Qt5Core.dll!QEventLoop::exec
0000000068A14927 00000000005FFC00 00000000005FFA00 0000000068914560  Qt5Core.dll!QCoreApplication::exec
000000014001B5BC 0000000000000001 0000000005DCC680 0000000140472B30  krita.exe!main  [C:/dev/krita/krita/main.cc @ 269]
00000001400013E8 0000000000000000 0000000000000000 0000000000000000  krita.exe!__tmainCRTStartup  [C:/crossdev/src/mingw-w64-v4-git/mingw-w64-crt/crt/crtexe.c @ 332]
00000001400014EB 0000000000000000 0000000000000000 0000000000000000  krita.exe!WinMainCRTStartup  [C:/crossdev/src/mingw-w64-v4-git/mingw-w64-crt/crt/crtexe.c @ 184]
00007FFE19DD8364 0000000000000000 0000000000000000 0000000000000000  KERNEL32.DLL!BaseThreadInitThunk
00007FFE1C8970D1 0000000000000000 0000000000000000 0000000000000000  ntdll.dll!RtlUserThreadStart







dbg info
Comment 3 Dmitry Kazakov 2017-04-10 14:48:07 UTC
I cannot reproduce the problem. Neither on Windows nor on Linux. The filtered out nodes how up and hide as needed
Comment 4 Dmitry Kazakov 2017-04-12 12:24:09 UTC
With Bollebib's file I can now reproduce the problem
Comment 5 Dmitry Kazakov 2017-05-01 09:02:59 UTC
Ok, I managed to reproduce it again. I had to activate the timeline and also switch time at the same time as layer switch.
Comment 6 Dmitry Kazakov 2017-05-01 14:31:21 UTC
Git commit 561a2e83be5da9cf45062d55006721b9c586303c by Dmitry Kazakov.
Committed on 01/05/2017 at 14:30.
Pushed by dkazakov into branch 'master'.

Fix crash when switching color-filtered layers too quickly

Sometimes, during the removal process, the model emits currentChanged()
signal, which may cause a double-recursion, which causes a crash.

M  +26   -1    libs/ui/kis_node_filter_proxy_model.cpp
M  +2    -0    libs/ui/kis_node_filter_proxy_model.h

https://commits.kde.org/krita/561a2e83be5da9cf45062d55006721b9c586303c
Comment 7 Dmitry Kazakov 2017-05-01 14:32:18 UTC
Git commit 4e41d829a363aaac2a7b555ec321d83dfe157738 by Dmitry Kazakov.
Committed on 01/05/2017 at 14:31.
Pushed by dkazakov into branch 'krita/3.1'.

Fix crash when switching color-filtered layers too quickly

Sometimes, during the removal process, the model emits currentChanged()
signal, which may cause a double-recursion, which causes a crash.

M  +26   -1    libs/ui/kis_node_filter_proxy_model.cpp
M  +2    -0    libs/ui/kis_node_filter_proxy_model.h

https://commits.kde.org/krita/4e41d829a363aaac2a7b555ec321d83dfe157738