Bug 438853 - Preview checkbox in filters closes the windows
Summary: Preview checkbox in filters closes the windows
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Filters (show other bugs)
Version: nightly build (please specify the git hash!)
Platform: Other Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: Felipe Lema
URL:
Keywords: regression, release_blocker
Depends on:
Blocks:
 
Reported: 2021-06-18 10:07 UTC by mcoudert
Modified: 2021-07-22 13:12 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
valgrind log (440.22 KB, text/plain)
2021-06-20 15:38 UTC, Felipe Lema
Details

Note You need to log in before you can comment on or make changes to this bug.
Description mcoudert 2021-06-18 10:07:28 UTC
SUMMARY
in the filter windows, for exemple blur filter, when unchecking the "preview" checkbox, the windows is closed or krita crashes.

STEPS TO REPRODUCE
1. open an image
2. go to filter > Blur > Blur...
3. uncheck "preview" checkbox

OBSERVED RESULT
the window close without applying the filter or krita shutdown

EXPECTED RESULT
dipslay/hide preview

SOFTWARE/OS VERSIONS
Windows: 10 21H1
Krita
  Version: 5.0.0-prealpha (git a790876)

Qt
  Version (compiled): 5.12.9
  Version (loaded): 5.12.9

OS Information
  Build ABI: x86_64-little_endian-llp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: winnt
  Kernel Version: 10.0.19043
  Pretty Productname: Windows 10 (10.0)
  Product Type: windows
  Product Version: 10


OpenGL Info
 
  Vendor:  "Google Inc." 
  Renderer:  "ANGLE (NVIDIA GeForce GTX 1070 Direct3D11 vs_5_0 ps_5_0)" 
  Version:  "OpenGL ES 3.0 (ANGLE 2.1.0.57ea533f79a7)" 
  Shading language:  "OpenGL ES GLSL ES 3.00 (ANGLE 2.1.0.57ea533f79a7)" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:    QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 
     Version: 3.0
     Supports deprecated functions false 
     is OpenGL ES: true 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsAngleD3D11: true 
  isQtPreferAngle: true 

Hardware Information
 Memory: 31 Gb
 Cores: 16

ADDITIONAL INFORMATION
more infos here : https://krita-artists.org/t/krita5-filter-1-pixel-white-band-preview-checkbox-crash/25290
Comment 1 mcoudert 2021-06-18 10:08:16 UTC
Error occurred on Friday, June 18, 2021 at 10:59:21.

krita.exe caused an Access Violation at location 00007FFBD293A8C0 in module libkritaui.dll Reading from location 0000000000000048.

AddrPC           Params
00007FFBD293A8C0 00000000405A42A4 00000000167D2010 0000000000000018  libkritaui.dll!0x26a8c0 KisFilterSelectorWidget::isFilterGalleryVisible+0x0
00007FFBD2733D06 0000000000000018 000000003405D630 00000000012BC740  libkritaui.dll!0x63d06 KisDlgFilter::slotOnReject+0x36
00007FFBD22C90D8 000000003405D630 0000000000000000 000000003F681C80  Qt5Core.dll!0x2290d8 QMetaObject::activate+0x7b8
00007FFBD16DAA34 0000000000630000 00000000005FB0C9 0000000000000002  Qt5Widgets.dll!0x1caa34 QDialogPrivate::finalize+0x34
00007FFBD16DC7AE 0000000000000000 00000000005FB1E0 000000003405D630  Qt5Widgets.dll!0x1cc7ae QDialog::qt_static_metacall+0xbe
00007FFBD22C90D8 0000000034065EF0 00007FFBD15275F5 0000000000000000  Qt5Core.dll!0x2290d8 QMetaObject::activate+0x7b8
00007FFBD167A613 000000000004004D 00007FFBD1528358 00000000340653F0  Qt5Widgets.dll!0x16a613 QDialogButtonBox::button+0x1d3
00007FFBD167B929 00000000340653F0 0000000027D83C70 00000000005FB260  Qt5Widgets.dll!0x16b929 QDialogButtonBox::qt_static_metacall+0x149
00007FFBD22C90D8 00000000340653F0 00000000340653F0 0000000000000000  Qt5Core.dll!0x2290d8 QMetaObject::activate+0x7b8
00007FFBD15EE6B2 00000000340653F0 00007FFBD15EE3F6 0000000000000000  Qt5Widgets.dll!0xde6b2 QAbstractButton::toggled+0x212
00007FFBD15EFAE9 0000000002CD8940 00007FFBD29C93DF 00000000005FFB80  Qt5Widgets.dll!0xdfae9 QAbstractButton::setIconSize+0x679
00007FFBD15EFCB5 00000000005FB450 00000000167D9840 00000000340653F0  Qt5Widgets.dll!0xdfcb5 QAbstractButton::mouseReleaseEvent+0xd5
00007FFBD1556238 00000000005FFB80 0000000000000001 00000000340653F0  Qt5Widgets.dll!0x46238 QWidget::event+0x1d8
00007FFBD1517BDC 00000000167C6F10 000000003F610090 0000000C00000025  Qt5Widgets.dll!0x7bdc QApplicationPrivate::notify_helper+0x9c
00007FFBD151FC1A 0000000000000000 00007FFBD20C25BF 0000000000000000  Qt5Widgets.dll!0xfc1a QApplication::notify+0x13aa
00007FFBD2A473C6 0000000000000000 3FF0000000000000 C07EA00000000000  libkritaui.dll!0x3773c6 KisApplication::notify+0x16
00007FFBD229DDB8 0000000000000000 0000000000000000 3FF0000000000000  Qt5Core.dll!0x1fddb8 QCoreApplication::sendSpontaneousEvent+0x1a8
00007FFBD151E018 0000000033F75080 00000001D154B092 0000000000000000  Qt5Widgets.dll!0xe018 QApplicationPrivate::sendMouseEvent+0x208
00007FFBD156A95D 0000000002CD8940 00007FFBD229C5C1 0000000000000000  Qt5Widgets.dll!0x5a95d QDesktopWidget::qt_metacall+0x26fd
00007FFBD156D6DB 00000000005FFB80 000000000273E5F0 0000000000000001  Qt5Widgets.dll!0x5d6db QDesktopWidget::qt_metacall+0x547b
00007FFBD1517BDC 00000000028D6B00 00000000005FBD00 00000003028D6B38  Qt5Widgets.dll!0x7bdc QApplicationPrivate::notify_helper+0x9c
00007FFBD151EC23 0000000000000000 00007FFBD20C25BF 0000000000000000  Qt5Widgets.dll!0xec23 QApplication::notify+0x3b3
00007FFBD2A473C6 0000000000000000 00007FFBD1ACA754 00000000005FBF78  libkritaui.dll!0x3773c6 KisApplication::notify+0x16
00007FFBD229DDB8 00007FFC37471404 000000006FD0728C 0000000000000068  Qt5Core.dll!0x1fddb8 QCoreApplication::sendSpontaneousEvent+0x1a8
00007FFBD1AB6DC4 0000000000000000 00007FFBD22A3B53 00000000005FC1B8  Qt5Gui.dll!0x36dc4 QGuiApplicationPrivate::processMouseEvent+0x6e4
00007FFBD1AB8135 0000000000000401 000000000C5C0BB0 00000000000A0966  Qt5Gui.dll!0x38135 QGuiApplicationPrivate::processWindowSystemEvent+0x105
00007FFBD1A90EAC 0000000000000401 00000000000A0966 000000000034F000  Qt5Gui.dll!0x10eac QWindowSystemInterface::sendWindowSystemEvents+0x44c
00007FFBD22F85EA 0000000000000000 0000000000000001 0000000000000001  Qt5Core.dll!0x2585ea QEventDispatcherWin32Private::sendTimerEvent+0x60a
00007FFC377BE858 0000000000003DFF 00007FFBD22F8110 00000000000A0966  USER32.dll!0xe858 UserCallWinProcCheckWow+0x2f8
00007FFC377BE299 00007FFBD22F8110 00000000005FC620 0000000000000000  USER32.dll!0xe299 DispatchMessageWorker+0x249
00007FFBD22F7A8B 000000000C5C0BB0 0000000000000024 00000000026DBCB0  Qt5Core.dll!0x257a8b QEventDispatcherWin32::processEvents+0x5cb
000000006A8FF005 0000000000000080 0000000000000014 000000002A7D5E40  qwindows.dll!0x7f005 qt_plugin_instance+0x2a25
00007FFBD229BD9F 000000000F85DA80 000000000F8CE8B0 0000000028F258C0  Qt5Core.dll!0x1fbd9f QEventLoop::exec+0x13f
00007FFBD22A5017 00007FFBD2149940 00007FFBE1C818C0 0000000000000010  Qt5Core.dll!0x205017 QCoreApplication::exec+0x77
00007FFBD42850EB 0000000000000001 000000000273E530 0000000140007970  krita.dll!0x50eb krita_main+0x2f9b
00000001400013C7 0000000000000000 0000000000000000 0000000000000000  krita.exe!0x13c7 __tmainCRTStartup+0x247
00000001400014CB 0000000000000000 0000000000000000 0000000000000000  krita.exe!0x14cb WinMainCRTStartup+0x1b
00007FFC38067034 0000000000000000 0000000000000000 0000000000000000  KERNEL32.DLL!0x17034 BaseThreadInitThunk+0x14
00007FFC396E2651 0000000000000000 0000000000000000 0000000000000000  ntdll.dll!0x52651 RtlUserThreadStart+0x21
Comment 2 Ahab Greybeard 2021-06-18 13:47:53 UTC
I can confirm a crash every time with the Jun 17 5.0.0-prealpha (git 76b3db3) appimage on Debian 10.
This happens when the Preview checkbox is disabled. Tested with the Gaussian Blur, Unsharp Mask and the Levels filter.
The terminal output shows 'Segmentation fault'.

This does not happen with the 4.4.5 appimage hence regression.
Comment 3 Felipe Lema 2021-06-20 15:38:43 UTC
Created attachment 139548 [details]
valgrind log

I've run with valgrind and attached a log. I've pasted the interesting bit at the end

I'll take a look later today about the specifics to propose a bugfix, so I'm auto-assigning this to me

==00:00:23:44.089 2743== Invalid read of size 8
==00:00:23:44.089 2743==    at 0x5A55FAD: KisDlgFilter::enablePreviewToggled(bool) (kis_dlg_filter.cpp:235)
==00:00:23:44.089 2743==    by 0x987F908: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3898)
==00:00:23:44.089 2743==    by 0x8684191: QAbstractButton::toggled(bool) (moc_qabstractbutton.cpp:315)
==00:00:23:44.089 2743==    by 0x8684610: QAbstractButtonPrivate::emitToggled(bool) (qabstractbutton.cpp:481)
==00:00:23:44.089 2743==    by 0x8685C35: QAbstractButton::setChecked(bool) (qabstractbutton.cpp:682)
==00:00:23:44.089 2743==    by 0x86971E5: QCheckBox::nextCheckState() (qcheckbox.cpp:374)
==00:00:23:44.089 2743==    by 0x868573A: QAbstractButtonPrivate::click() (qabstractbutton.cpp:398)
==00:00:23:44.089 2743==    by 0x868599C: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (qabstractbutton.cpp:1044)
==00:00:23:44.089 2743==    by 0x85D8AE7: QWidget::event(QEvent*) (qwidget.cpp:9019)
==00:00:23:44.089 2743==    by 0x859833B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3632)
==00:00:23:44.089 2743==    by 0x859F6BF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3076)
==00:00:23:44.089 2743==    by 0x5EEDCC8: KisApplication::notify(QObject*, QEvent*) (KisApplication.cpp:711)
==00:00:23:44.089 2743==  Address 0x2a2dff50 is 48 bytes inside a block of size 56 free'd
==00:00:23:44.089 2743==    at 0x4C3323B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==00:00:23:44.089 2743==    by 0x5A56085: KisDlgFilter::enablePreviewToggled(bool) (kis_dlg_filter.cpp:231)
==00:00:23:44.089 2743==    by 0x987F908: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3898)
==00:00:23:44.089 2743==    by 0x8684191: QAbstractButton::toggled(bool) (moc_qabstractbutton.cpp:315)
==00:00:23:44.089 2743==    by 0x8684610: QAbstractButtonPrivate::emitToggled(bool) (qabstractbutton.cpp:481)
==00:00:23:44.089 2743==    by 0x8685C35: QAbstractButton::setChecked(bool) (qabstractbutton.cpp:682)
==00:00:23:44.089 2743==    by 0x86971E5: QCheckBox::nextCheckState() (qcheckbox.cpp:374)
==00:00:23:44.089 2743==    by 0x868573A: QAbstractButtonPrivate::click() (qabstractbutton.cpp:398)
==00:00:23:44.089 2743==    by 0x868599C: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (qabstractbutton.cpp:1044)
==00:00:23:44.089 2743==    by 0x85D8AE7: QWidget::event(QEvent*) (qwidget.cpp:9019)
==00:00:23:44.089 2743==    by 0x859833B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3632)
==00:00:23:44.089 2743==    by 0x859F6BF: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3076)
==00:00:23:44.089 2743==  Block was alloc'd at
==00:00:23:44.089 2743==    at 0x4C3217F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==00:00:23:44.089 2743==    by 0x5B722E5: KisFilterManager::showFilterDialog(QString const&, KisPinnedSharedPtr<KisFilterConfiguration>) (kis_filter_manager.cc:261)
==00:00:23:44.089 2743==    by 0x60174DB: KisFilterManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_kis_filter_manager.cpp:99)
==00:00:23:44.089 2743==    by 0x987F908: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3898)
==00:00:23:44.089 2743==    by 0x7FACFF4: KisSignalMapper::mapped(QString const&) (moc_KisSignalMapper.cpp:186)
==00:00:23:44.089 2743==    by 0x7FADF6B: KisSignalMapper::map(QObject*) (KisSignalMapper.cpp:227)
==00:00:23:44.089 2743==    by 0x987F908: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3898)
==00:00:23:44.089 2743==    by 0x8591DA1: QAction::triggered(bool) (moc_qaction.cpp:376)
==00:00:23:44.089 2743==    by 0x859440B: QAction::activate(QAction::ActionEvent) (qaction.cpp:1161)
==00:00:23:44.089 2743==    by 0x870FD5B: QMenuPrivate::activateCausedStack(QVector<QPointer<QWidget> > const&, QAction*, QAction::ActionEvent, bool) (qmenu.cpp:1384)
==00:00:23:44.089 2743==    by 0x87172CA: QMenuPrivate::activateAction(QAction*, QAction::ActionEvent, bool) (qmenu.cpp:1461)
==00:00:23:44.089 2743==    by 0x871827C: QMenu::mouseReleaseEvent(QMouseEvent*) (qmenu.cpp:2966)
==00:00:23:44.089 2743==
Comment 4 Tiar 2021-06-21 01:11:41 UTC
A bit better tip of the crash log, showing that it's about QAbstractButton:
git 7abe84b.

Thread 1 "krita" received signal SIGSEGV, Segmentation fault.
0x00007ffff54b60c4 in QAbstractButton::isChecked() const ()
   from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
(gdb) bt
#0  0x00007ffff54b60c4 in QAbstractButton::isChecked() const () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#1  0x00007ffff6cd6421 in KisDlgFilter::enablePreviewToggled(bool) (this=0x55556714a5e0, state=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h:120
#2  0x00007ffff49d4300 in QMetaObject::activate(QObject*, int, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff54b5866 in QAbstractButton::toggled(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007ffff54b5ca6 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007ffff54b72fd in QAbstractButton::setChecked(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007ffff54c6915 in QCheckBox::nextCheckState() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff54b6e10 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff54b7035 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff54032b6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
Comment 5 Felipe Lema 2021-06-21 01:40:46 UTC
cross-referencing merge request for this:

https://invent.kde.org/graphics/krita/-/merge_requests/923
Comment 6 Felipe Lema 2021-06-21 01:41:48 UTC
(In reply to Felipe Lema from comment #5)
> cross-referencing merge request for this:
> 
> https://invent.kde.org/graphics/krita/-/merge_requests/923

*merge request for fix
Comment 7 Dmitry Kazakov 2021-07-22 13:12:10 UTC
The merge request has been merged, so the bug should be fixed :)