| Summary: | Crash when painting on a layer with the attached layer style active | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Halla Rempt <halla> |
| Component: | layer styles | Assignee: | 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 | ||
Okay, it looks like it _is_ specific for this asl file. The file might be broken, but Krita shouldn't crash... Created attachment 126162 [details]
asl file
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 Ahh, you say your reproduction steps were different... Did you copy it to the resource folder after opening Krita or before? Okay, that one apparently just crashes Krita. This is the one to test with: https://www.dropbox.com/s/crytlnqie2tn6se/gold.zip?dl=0 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]
going to set this to confirmed... The bug should now be fixed by these two commits: 895303282f4d58751c1f2dd2d84599b62b331fac a37cbcec401cab859c240037e3f377e12dbbd757 |
* 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