Bug 416241 - Crashes when blur is unconstrained and x value is reduced to 1 while y is more than 8
Summary: Crashes when blur is unconstrained and x value is reduced to 1 while y is mor...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Filters (show other bugs)
Version: 4.2.8
Platform: Microsoft Windows Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: vanyossi
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-14 11:03 UTC by Shrish Kumar
Modified: 2020-01-28 09:50 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
a Krita file with only the necessary layers for reproduction of erro (788.60 KB, application/x-krita)
2020-01-14 11:03 UTC, Shrish Kumar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shrish Kumar 2020-01-14 11:03:31 UTC
Created attachment 125114 [details]
a Krita file with only the necessary layers for reproduction of erro

SUMMARY


STEPS TO REPRODUCE
1. Open the krita file
2. Go to blur filter menu, unconstrain and set horizontal to 1 and vertical to 10
3. Enable preview or click apply

OBSERVED RESULT
Program Crashes

EXPECTED RESULT
A blur along the vertical axis only

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

ADDITIONAL INFORMATION
(https://imgur.com/Ru4lkQ3) is a video capture that shows the crash. The blurring doesn't crash a blank image, but other different ones take somewhat varying degree of values to crash.
Comment 1 Halla Rempt 2020-01-14 11:40:35 UTC
Hi!

Thanks for the report. I can confirm the issue:

#0  0x00007ffff5456e39 in KisConvolutionWorkerSpatial<RepeatIteratorFactory>::loadPixelToCache(double**, unsigned char const*, int) (index=2, data=0x55556083c428 "7\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377\067\200\333\377"..., cache=0x7fff70926300, this=0x7fff70972300)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:143
#1  0x00007ffff5456e39 in KisConvolutionWorkerSpatial<RepeatIteratorFactory>::moveKernelRight(KisSharedPtr<KisRepeatVLineIteratorPixelBase<KisVLineIterator2> >&, double**) (this=this@entry=0x7fff70972300, kitSrc=..., pixelPtrCache=0x7fff70926300) at /home/boud/dev/krita/libs/image/kis_convolution_worker_spatial.h:331
#2  0x00007ffff545a5d0 in KisConvolutionWorkerSpatial<RepeatIteratorFactory>::execute(KisSharedPtr<KisConvolutionKernel>, KisSharedPtr<KisPaintDevice>, QPoint, QPoint, QSize, QRect const&) (this=0x7fff70972300, kernel=..., src=..., srcPos=..., dstPos=..., areaSize=..., dataRect=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsize.h:131
#3  0x00007ffff545381e in KisConvolutionPainter::applyMatrix(KisSharedPtr<KisConvolutionKernel>, KisSharedPtr<KisPaintDevice>, QPoint, QPoint, QSize, KisConvolutionBorderOp) (this=<optimized out>, kernel=..., src=..., srcPos=..., dstPos=..., areaSize=..., borderOp=BORDER_REPEAT) at /usr/include/c++/8/bits/atomic_base.h:295
#4  0x00007fffc39646d4 in KisBlurFilter::processImpl(KisSharedPtr<KisPaintDevice>, QRect const&, KisPinnedSharedPtr<KisFilterConfiguration>, KoUpdater*) const (this=<optimized out>, device=..., rect=..., _config=..., progressUpdater=0x7fff70918970) at /usr/include/c++/8/bits/atomic_base.h:295
#5  0x00007ffff6ac6a35 in KisFilterStrokeStrategy::doStrokeCallback(KisStrokeJobData*) (this=
    0x555562a94b00, data=<optimized out>) at /usr/include/c++/8/bits/atomic_base.h:295
#6  0x00007ffff56da75c in non-virtual thunk to KisUpdateJobItem::run() ()
    at /home/boud/dev/i-krita/lib/x86_64-linux-gnu/libkritaimage.so.19
#7  0x00007ffff322e472 in QThreadPoolThread::run() (this=0x5555620019a0) at thread/qthreadpool.cpp:99
#8  0x00007ffff322ab52 in QThreadPrivate::start(void*) (arg=0x5555620019a0) at thread/qthread_unix.cpp:360
#9  0x00007fffec4306db in start_thread (arg=0x7fff877fe700) at pthread_create.c:463
Comment 2 vanyossi 2020-01-16 07:23:52 UTC
Merge request associated to this bug https://invent.kde.org/kde/krita/merge_requests/220
Comment 3 Halla Rempt 2020-01-16 09:01:48 UTC
Git commit a07ef143f67bf5813e4c51d764207bd27f2f1930 by Boudewijn Rempt, on behalf of Ivan Yossi.
Committed on 16/01/2020 at 09:01.
Pushed by rempt into branch 'master'.

Fix blur Filter inconsistencies

Aspect ratio was sent incorrectly to MaskGenerator causing
crashes and inconsisten behaviour.

Also fixes Strength spinbox

M  +3    -5    plugins/filters/blur/kis_blur_filter.cpp
M  +6    -0    plugins/filters/blur/wdgblur.ui

https://invent.kde.org/kde/krita/commit/a07ef143f67bf5813e4c51d764207bd27f2f1930
Comment 4 Halla Rempt 2020-01-28 09:50:29 UTC
Git commit 5153b94529c1bcf1c460592c8f182371b1f1ca2a by Boudewijn Rempt, on behalf of Ivan Yossi.
Committed on 28/01/2020 at 09:10.
Pushed by rempt into branch 'krita/4.2'.

Fix blur Filter inconsistencies

Aspect ratio was sent incorrectly to MaskGenerator causing
crashes and inconsisten behaviour.

Also fixes Strength spinbox
(cherry picked from commit a07ef143f67bf5813e4c51d764207bd27f2f1930)

M  +3    -5    plugins/filters/blur/kis_blur_filter.cpp
M  +6    -0    plugins/filters/blur/wdgblur.ui

https://invent.kde.org/kde/krita/commit/5153b94529c1bcf1c460592c8f182371b1f1ca2a