Bug 417866

Summary: Crash when painting on a layer with the attached layer style active
Product: [Applications] krita Reporter: Halla Rempt <halla>
Component: layer stylesAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: dimula73, ghevan, griffinvalley, tamtamy.tymona
Priority: NOR    
Version First Reported In: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: asl file

Description Halla Rempt 2020-02-19 10:22:07 UTC
* Copy gold.asl into the als folder in the resources folder
* Create an image with two layers
* On the top layer, set one of the styles from this asl file
* Paint

When starting Krita, the following is seen:

krita.general: WARNING: ASL (emb. pattern): Unsupported image mode: 2!
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 6 transparencies.size() = 2
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 6 transparencies.size() = 2
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 3 transparencies.size() = 2
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 5 transparencies.size() = 2
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 7 transparencies.size() = 2
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 6 transparencies.size() = 2
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 11 transparencies.size() = 2
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: tryParseDescriptor: The points of the curve object contain 'Cnty' flag which is unsupported by Krita
krita.general:          type = "Boolean" key = "Cnty" path = "/Crv /CrPt"
krita.general: WARNING: tryParseDescriptor: The points of the curve object contain 'Cnty' flag which is unsupported by Krita
krita.general:          type = "Boolean" key = "Cnty" path = "/Crv /CrPt"
krita.general: WARNING: tryParseDescriptor: The points of the curve object contain 'Cnty' flag which is unsupported by Krita
krita.general:          type = "Boolean" key = "Cnty" path = "/Crv /CrPt"
krita.general: WARNING: tryParseDescriptor: The points of the curve object contain 'Cnty' flag which is unsupported by Krita
krita.general:          type = "Boolean" key = "Cnty" path = "/Crv /CrPt"
krita.general: WARNING: tryParseDescriptor: The points of the curve object contain 'Cnty' flag which is unsupported by Krita
krita.general:          type = "Boolean" key = "Cnty" path = "/Crv /CrPt"
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 5 transparencies.size() = 2
krita.general: WARNING: ASL style contains inexistent pattern reference!
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: convertAndSetBlendMode: Curve conversion is not implemented yet
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 5 transparencies.size() = 2
krita.general: WARNING: ASL gradient has inconsistent number of transparency stops. Dropping transparency... colors.size() = 5 transparencies.size() = 2
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"
krita.general: WARNING: Saved pattern doesn't have a UUID, generating...
krita.general: patternFileName = "/invalid.pat" pattern->name() = "invalid"

From the backtrace, it might be that any layer style crashes krita now, but I haven't checked yet.

Backtrace:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff28d4801 in __GI_abort () at abort.c:79
#2  0x00007ffff32accbb in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff32ac4b1 in qt_assert(char const*, char const*, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff5381aca in KisMementoManager::getMemento (this=<optimized out>) at /home/boud/dev/krita/libs/image/tiles3/kis_memento_manager.cc:238
#5  0x00007ffff5657a4f in KisTiledDataManager::getMemento (this=<optimized out>, this=<optimized out>)
    at /home/boud/dev/krita/libs/image/tiles3/kis_tiled_data_manager.h:148
#6  KisDataManager::getMemento (this=<optimized out>) at /home/boud/dev/krita/libs/image/kis_datamanager.h:86
#7  KisTransactionData::init (this=this@entry=0x7fff94064510, device=...) at /home/boud/dev/krita/libs/image/kis_transaction_data.cpp:121
#8  0x00007ffff565b74d in KisTransactionData::KisTransactionData (this=0x7fff94064510, name=..., device=..., 
    resetSelectionOutlineCache=<optimized out>, parent=<optimized out>) at /home/boud/dev/krita/libs/image/kis_transaction_data.cpp:76
#9  0x00007ffff54c9146 in KisTransaction::KisTransaction (timedID=-1, parent=0x0, device=..., this=0x7fff94001570)
    at /home/boud/dev/krita/libs/image/kis_transaction.h:37
#10 KisGaussianKernel::applyDilate (device=..., rect=..., radius=<optimized out>, channelFlags=..., progressUpdater=progressUpdater@entry=0x0, 
    createTransaction=createTransaction@entry=true) at /home/boud/dev/krita/libs/image/kis_gaussian_kernel.cpp:372
#11 0x00007ffff5714d9c in KisLsStrokeFilter::applyStroke (this=this@entry=0x555574cfee50, srcDevice=..., dst=dst@entry=0x555574cf4dc8, 
    blower=blower@entry=0x555574cf4db8, applyRect=..., config=config@entry=0x5555749101b0, env=<optimized out>)
    at /home/boud/dev/krita/libs/image/layerstyles/kis_ls_stroke_filter.cpp:122
#12 0x00007ffff5715e53 in KisLsStrokeFilter::processDirectly (this=0x555574cfee50, src=..., dst=0x555574cf4dc8, blower=0x555574cf4db8, applyRect=..., 
    style=..., env=0x55556c414420) at /home/boud/dev/krita/libs/image/layerstyles/kis_ls_stroke_filter.cpp:156
#13 0x00007ffff57019cd in KisLayerStyleFilterProjectionPlane::recalculate (this=<optimized out>, rect=..., filthyNode=...)
    at /home/boud/dev/krita/libs/image/layerstyles/kis_layer_style_filter_projection_plane.cpp:95
#14 0x00007ffff5704c5f in KisLayerStyleProjectionPlane::recalculate (this=<optimized out>, rect=..., filthyNode=...)
    at /home/boud/dev/krita/libs/image/layerstyles/kis_layer_style_projection_plane.cpp:223
#15 0x00007ffff55134d5 in KisAsyncMerger::startMerge (this=0x55556c61e428, walker=..., notifyClones=<optimized out>)
    at /home/boud/dev/krita/libs/image/kis_async_merger.cpp:272
#16 0x00007ffff5756f84 in non-virtual thunk to KisUpdateJobItem::run() () from /home/boud/dev/i-krita/lib/x86_64-linux-gnu/libkritaimage.so.19
#17 0x00007ffff32d4472 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007ffff32d0b52 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007fffec4b36db in start_thread (arg=0x7fff89ab7700) at pthread_create.c:463
#20 0x00007ffff29b588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Current sha1: 38c6f99567ed4d223b32d7166e53a3cd6c38217e
Comment 1 Halla Rempt 2020-02-19 10:25:31 UTC
Okay, it looks like it _is_ specific for this asl file. The file might be broken, but Krita shouldn't crash...
Comment 2 Halla Rempt 2020-02-19 13:06:57 UTC
Created attachment 126162 [details]
asl file
Comment 3 Tiar 2020-02-19 14:06:07 UTC
Both Krita 4.2.8 and the nightly appimage 29a46ef and the resource branch build crashes for me with the same "no implemented" message at the end (just before "core dumped"), and the code it crashes in wasn't touched from 2015 - it's here: https://phabricator.kde.org/source/krita/browse/master/libs/psd/asl/kis_asl_reader.cpp$202

Also my backtrace looks different, but it's consistent with the 4.2.8 and the nightly version, because it does write out the last message and then there is "core dumped". So I'm not sure how you Krita even got to the point you had it in...

Of course using "qFatal" randomly in the code in this kind of circumstances is a horrible idea so I'm gonna fix that, but I'm still confused how did you get that backtrace, so please tell me if your method of reproduce was the same as mine:
- put Gold.asl file in ~/.local/share/krita/asl/
- start Krita

My backtrace:
Thread 1 (Thread 0x7fffeb365e80 (LWP 15322)):
#0  0x00007ffff431b077 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff42fc535 in __GI_abort () at abort.c:79
#2  0x00007ffff46ea8d7 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff24bd62c in Private::readChildObject(QIODevice*, QDomElement*, QDomDocument*, bool) (device=0x7fffffffd250, parent=0x7fffffffcaa8, doc=0x7fffffffd050, skipKey=false) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlogging.h:91
#4  0x00007ffff24d44a0 in Private::readDescriptor(QIODevice*, QString const&, QDomElement*, QDomDocument*) (device=0x7fffffffd250, key=..., parent=0x7fffffffcbe8, doc=0x7fffffffd050)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:226
#5  0x00007ffff24d3a0f in Private::readChildObject(QIODevice*, QDomElement*, QDomDocument*, bool) (device=0x7fffffffd250, parent=0x7fffffffcbe8, doc=0x7fffffffd050, skipKey=false)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:156
#6  0x00007ffff24d44a0 in Private::readDescriptor(QIODevice*, QString const&, QDomElement*, QDomDocument*) (device=0x7fffffffd250, key=..., parent=0x7fffffffcd28, doc=0x7fffffffd050)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:226
#7  0x00007ffff24d3a0f in Private::readChildObject(QIODevice*, QDomElement*, QDomDocument*, bool) (device=0x7fffffffd250, parent=0x7fffffffcd28, doc=0x7fffffffd050, skipKey=false)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:156
#8  0x00007ffff24d44a0 in Private::readDescriptor(QIODevice*, QString const&, QDomElement*, QDomDocument*) (device=0x7fffffffd250, key=..., parent=0x7fffffffce68, doc=0x7fffffffd050)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:226
#9  0x00007ffff24d3a0f in Private::readChildObject(QIODevice*, QDomElement*, QDomDocument*, bool) (device=0x7fffffffd250, parent=0x7fffffffce68, doc=0x7fffffffd050, skipKey=false)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:156
#10 0x00007ffff24d44a0 in Private::readDescriptor(QIODevice*, QString const&, QDomElement*, QDomDocument*) (device=0x7fffffffd250, key=..., parent=0x7fffffffcf20, doc=0x7fffffffd050)
    at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:226
#11 0x00007ffff24d8aed in Private::readFileImpl(QIODevice*) (device=0x7fffffffd250) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:693
#12 0x00007ffff24da109 in KisAslReader::readFile(QIODevice*) (this=<optimized out>, device=0x7fffffffd250) at /home/tymon/kritadev/krita/libs/psd/asl/kis_asl_reader.cpp:589
#13 0x00007ffff5eb3371 in KisAslLayerStyleSerializer::readFromDevice(QIODevice*) (this=0x5555596debb0, device=0x7fffffffd250) at /home/tymon/kritadev/krita/libs/image/kis_asl_layer_style_serializer.cpp:1221
#14 0x00007ffff5eb3f9b in KisAslLayerStyleSerializer::readFromFile(QString const&) (this=0x5555596debb0, filename=...) at /home/tymon/kritadev/krita/libs/image/kis_asl_layer_style_serializer.cpp:1205
---Type <return> to continue, or q <return> to quit---
#15 0x00007ffff5ec8ad1 in AslIterator::hasNext() const (this=0x55555a9f6ed0) at /home/tymon/kritadev/krita/libs/image/KisAslStorage.cpp:87
#16 0x00007ffff5882eb6 in KisResourceCacheDb::addResources(QSharedPointer<KisResourceStorage>, QString) (storage=..., resourceType=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:312
#17 0x00007ffff5883c92 in KisResourceCacheDb::addStorage(QSharedPointer<KisResourceStorage>, bool) (storage=..., preinstalled=false) at /usr/include/c++/8/bits/atomic_base.h:295
#18 0x00007ffff5885333 in KisResourceCacheDb::synchronizeStorage(QSharedPointer<KisResourceStorage>) (storage=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:330
#19 0x00007ffff5892e4a in KisResourceLocator::synchronizeDb() (this=0x555559420690) at /usr/include/c++/8/bits/atomic_base.h:295
#20 0x00007ffff58950e1 in KisResourceLocator::initialize(QString const&) (this=0x555559420690, installationResourcesLocation=...) at /home/tymon/kritadev/krita/libs/resources/KisResourceLocator.cpp:132
#21 0x00007ffff7039e30 in KisApplication::registerResources() (this=0x7fffffffdd30) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstringbuilder.h:131
#22 0x00007ffff703c6eb in KisApplication::start(KisApplicationArguments const&) (this=0x7fffffffdd30, args=...) at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:465
#23 0x0000555555e4ece0 in main (argc=<optimized out>, argv=0x7fffffffde98) at /home/tymon/kritadev/krita/krita/main.cc:588
#24 0x00007ffff42fe09b in __libc_start_main (main=0x555555e4d410 <main>, argc=1, argv=0x7fffffffde98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde88) at ../csu/libc-start.c:308
#25 0x0000555555e4fb8a in _start () at /home/tymon/kritadev/krita/krita/main.cc:468
Comment 4 Tiar 2020-02-19 14:11:28 UTC
Ahh, you say your reproduction steps were different... Did you copy it to the resource folder after opening Krita or before?
Comment 5 Halla Rempt 2020-02-19 14:37:32 UTC
Okay, that one apparently just crashes Krita. This is the one to test with:

https://www.dropbox.com/s/crytlnqie2tn6se/gold.zip?dl=0
Comment 6 vanyossi 2020-02-20 14:13:48 UTC
With the last file provided I get the crash consistently using style 3,4. styles 5,7 very slow but eventually will finish (did not wait to see though).


 thread #37, name = 'Thread (pooled)', stop reason = signal SIGABRT
    frame #0: 0x00007fff75b112c6 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
->  0x7fff75b112c6 <+10>: jae    0x7fff75b112d0            ; <+20>
    0x7fff75b112c8 <+12>: movq   %rax, %rdi
    0x7fff75b112cb <+15>: jmp    0x7fff75b0b457            ; cerror_nocancel
    0x7fff75b112d0 <+20>: retq   
Target 0: (krita) stopped.
(lldb) bt 20
* thread #37, name = 'Thread (pooled)', stop reason = signal SIGABRT
  * frame #0: 0x00007fff75b112c6 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff75bccbf1 libsystem_pthread.dylib`pthread_kill + 284
    frame #2: 0x00007fff75a7b6a6 libsystem_c.dylib`abort + 127
    frame #3: 0x0000000105e25bc9 QtCore`___lldb_unnamed_symbol169$$QtCore + 9
    frame #4: 0x0000000105e27314 QtCore`QMessageLogger::fatal(char const*, ...) const + 202
    frame #5: 0x0000000105e21c8c QtCore`qt_assert(char const*, char const*, int) + 71
    frame #6: 0x0000000102ff8a2c libkritaimage.19.dylib`KisMementoManager::getMemento() (.cold.2) + 28
    frame #7: 0x0000000102c89b2d libkritaimage.19.dylib`KisMementoManager::getMemento(this=<unavailable>) at kis_memento_manager.cc:238:5 [opt]
    frame #8: 0x0000000102ef0ce9 libkritaimage.19.dylib`KisTiledDataManager::getMemento(this=0x00000001690ef690) at kis_tiled_data_manager.h:148:50 [opt]
    frame #9: 0x0000000102eeebd9 libkritaimage.19.dylib`KisTransactionData::init(KisSharedPtr<KisPaintDevice>) [inlined] KisDataManager::getMemento(this=<unavailable>) at kis_datamanager.h:86:32 [opt]
    frame #10: 0x0000000102eeebd1 libkritaimage.19.dylib`KisTransactionData::init(this=0x0000000123d3b380, device=<unavailable>) at kis_transaction_data.cpp:121 [opt]
    frame #11: 0x0000000102eee8a2 libkritaimage.19.dylib`KisTransactionData::KisTransactionData(this=0x0000000123d3b380, name=<unavailable>, device=KisPaintDeviceSP @ 0x000070000689d920, resetSelectionOutlineCache=true, parent=<unavailable>) at kis_transaction_data.cpp:76:5 [opt]
    frame #12: 0x0000000102d13645 libkritaimage.19.dylib`KisTransaction::KisTransaction(this=0x0000000123d3aed0, device=KisPaintDeviceSP @ 0x000070000689d9e8, parent=0x0000000000000000, timedID=-1) at kis_transaction.h:37:33 [opt]
    frame #13: 0x0000000102d9343d libkritaimage.19.dylib`KisGaussianKernel::applyDilate(KisSharedPtr<KisPaintDevice>, QRect const&, double, QBitArray const&, KoUpdater*, bool) [inlined] KisTransaction::KisTransaction(this=<unavailable>, parent=<unavailable>, timedID=-1) at kis_transaction.h:36:89 [opt]
    frame #14: 0x0000000102d9342e libkritaimage.19.dylib`KisGaussianKernel::applyDilate(device=KisPaintDeviceSP @ 0x000070000689d9c0, rect=0x000070000689da50, radius=1.5, channelFlags=<unavailable>, progressUpdater=0x0000000000000000, createTransaction=<unavailable>) at kis_gaussian_kernel.cpp:372 [opt]
    frame #15: 0x0000000102f5cc57 libkritaimage.19.dylib`KisLsStrokeFilter::applyStroke(this=<unavailable>, srcDevice=KisPaintDeviceSP @ 0x000070000689db50, dst=0x000000015d9a5368, blower=<unavailable>, applyRect=0x000070000689dd98, config=0x0000000128b9a3b0, env=0x0000000123450f90) const at kis_ls_stroke_filter.cpp:122:13 [opt]
    frame #16: 0x0000000102f5d737 libkritaimage.19.dylib`KisLsStrokeFilter::processDirectly(this=<unavailable>, src=KisPaintDeviceSP @ 0x000070000689dbd0, dst=0x000000015d9a5368, blower=0x000000015d9a5358, applyRect=0x000070000689dd98, style=<unavailable>, env=0x0000000123450f90) const at kis_ls_stroke_filter.cpp:156:5 [opt]
    frame #17: 0x0000000102f4c109 libkritaimage.19.dylib`KisLayerStyleFilterProjectionPlane::recalculate(this=<unavailable>, rect=0x000070000689dd98, filthyNode=<unavailable>) at kis_layer_style_filter_projection_plane.cpp:95:18 [opt]
    frame #18: 0x0000000102f50a93 libkritaimage.19.dylib`KisLayerStyleProjectionPlane::recalculate(this=<unavailable>, rect=0x000070000689dd98, filthyNode=KisNodeSP @ 0x000070000689dd30) at kis_layer_style_projection_plane.cpp:223:20 [opt]
    frame #19: 0x0000000102dca946 libkritaimage.19.dylib`KisAsyncMerger::startMerge(this=0x000000011ed2eaf8, walker=0x000000011ed3f140, notifyClones=<unavailable>) at kis_async_merger.cpp:272:49 [opt]
Comment 7 wolthera 2020-04-24 12:48:58 UTC
going to set this to confirmed...
Comment 8 Dmitry Kazakov 2020-08-20 21:35:36 UTC
The bug should now be fixed by these two commits:

895303282f4d58751c1f2dd2d84599b62b331fac
a37cbcec401cab859c240037e3f377e12dbbd757