SUMMARY *** NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols. See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports *** STEPS TO REPRODUCE 1a) Have a project open that has Vector Layers - Mine was a group of 2 layers (For this project I was using a 2000px by 2000px canvas at 100ppi) 2a) New > Make a new project to Import the vectors onto a new canvas (For this project I used 1200px by 1500px canvas at 100ppi) 3. Take a Vector Layers from Project 1 - And Copy the Layer 4. On Project 2 - Hit Paste Layer 5. On Project 2 - Try to Move the imported Vector Layer, or use as normal it in the current project Current Result: 100% Repro - Krita will Crash OBSERVED RESULT Krita will crash EXPECTED RESULT Krita would not crash. Users can import vectors and use them in the new project. SOFTWARE/OS VERSIONS Windows: 10 Krita ver 5.1.0 ADDITIONAL INFORMATION Similar Issue: Marked as Fixed https://bugs.kde.org/show_bug.cgi?id=456450 I was not able to copy the stack trace - currently trying to record the crash to view against the repro steps.
I can reproduce this by simply creating a Vector Layer and trying to copy/paste it in the same image, in both 5.1.0 and recent 5.2.x. Detailed backtrace from my 5.2.x build, looks like pasting expects an xyresolution and crashes because there isn't one: libkritaimage.dll!KisImage::xRes+0x0 libkritaui.dll!KisMimeData::initializeExternalNode+0xa4 [C:/mysrcdir/libs/ui/kis_mimedata.cpp @ 216] 214: KisShapeLayer *shapeLayer2 = new KisShapeLayer(*shapeLayer, shapeController); 215: > 216: if (!qFuzzyCompare(dstImage->xRes(), srcImage->xRes()) || 217: !qFuzzyCompare(dstImage->yRes(), srcImage->yRes())) { 218: libkritaui.dll!KisMimeData::tryLoadInternalNodes+0x806 [C:/mysrcdir/libs/ui/kis_mimedata.cpp @ 284] 282: KisLayerUtils::addCopyOfNameTag(node); 283: } > 284: initializeExternalNode(&node, sourceImage, image, shapeController); 285: clones << node; 286: } libkritaui.dll!KisMimeData::loadNodesFast+0x45 [C:/mysrcdir/libs/ui/kis_mimedata.cpp @ 409] 407: { 408: QList<KisNodeSP> nodes = > 409: KisMimeData::tryLoadInternalNodes(data, 410: image, 411: shapeController, libkritaui.dll!KisMimeData::insertMimeLayers+0x63 [C:/mysrcdir/libs/ui/kis_mimedata.cpp @ 451] 449: QPointF offset) 450: { > 451: QList<KisNodeSP> nodes = loadNodesFast(data, image, shapeController, copyNode /* IN-OUT */); 452: 453: if (changeOffset) { libkritaui.dll!KisNodeManager::pasteLayersFromClipboard+0x1ed [C:/mysrcdir/libs/ui/kis_node_manager.cpp @ 1492] 1490: KisNodeDummy *aboveThisDummy = parentDummy ? parentDummy->lastChild() : 0; 1491: > 1492: KisMimeData::insertMimeLayers(data, 1493: image, 1494: shapeController, libkritaui.dll!KisPasteActionFactory::run+0x151c [C:/mysrcdir/libs/ui/actions/KisPasteActionFactories.cpp @ 239] 237: } 238: }(); > 239: view->nodeManager()->pasteLayersFromClipboard(pasteAtCursorPosition, 240: offsetTopLeft); 241: return; libkritaui.dll!KisSelectionManager::paste+0x76 [C:/mysrcdir/libs/ui/kis_selection_manager.cc @ 359] 357: { 358: KisPasteActionFactory factory; > 359: factory.run(false, m_view); 360: } 361:
Since Dmitry is on a break, let me take this.
Git commit 44c4f74a273b1f6c0b99f56a0f96342fd81b2c47 by Sharaf Zaman. Committed on 22/08/2022 at 10:35. Pushed by szaman into branch 'master'. Fix nullptr crash: srcImage may not exist when deep-copying layers M +3 -2 libs/ui/kis_mimedata.cpp https://invent.kde.org/graphics/krita/commit/44c4f74a273b1f6c0b99f56a0f96342fd81b2c47
*** Bug 458172 has been marked as a duplicate of this bug. ***
*** Bug 458276 has been marked as a duplicate of this bug. ***
Git commit 39a56110b50dc1246e76e891ac575ba8e9c613b5 by L. E. Segovia, on behalf of Sharaf Zaman. Committed on 25/08/2022 at 14:29. Pushed by lsegovia into branch 'krita/5.1'. Fix nullptr crash: srcImage may not exist when deep-copying layers (cherry picked from commit 44c4f74a273b1f6c0b99f56a0f96342fd81b2c47) M +3 -2 libs/ui/kis_mimedata.cpp https://invent.kde.org/graphics/krita/commit/39a56110b50dc1246e76e891ac575ba8e9c613b5
*** Bug 458301 has been marked as a duplicate of this bug. ***
*** Bug 458502 has been marked as a duplicate of this bug. ***
*** Bug 458691 has been marked as a duplicate of this bug. ***
*** Bug 458706 has been marked as a duplicate of this bug. ***
Created attachment 151821 [details] New crash information added by DrKonqi krita (5.1.0) using Qt 5.15.5 Using default config : I opened 2 files : a svg file and any kra file, go into svg tab and do Ctrl+C on the vector layer then go into other tab then finally do Ctrl+V. Krita crashes. I joined backtrace with it. -- Backtrace (Reduced): #4 0x00007f2eb9cd4564 in KisImage::xRes() const () from /usr/lib/libkritaimage.so.18 #5 0x00007f2eba3e7126 in KisMimeData::initializeExternalNode(KisSharedPtr<KisNode>*, KisSharedPtr<KisImage>, KisSharedPtr<KisImage>, KisShapeController*) () from /usr/lib/libkritaui.so.18 #6 0x00007f2eba3e751d in KisMimeData::tryLoadInternalNodes(QMimeData const*, KisSharedPtr<KisImage>, KisShapeController*, bool&) () from /usr/lib/libkritaui.so.18 #7 0x00007f2eba3ed7cb in KisMimeData::loadNodesFast(QMimeData const*, KisSharedPtr<KisImage>, KisShapeController*, bool&) () from /usr/lib/libkritaui.so.18 #8 0x00007f2eba3ee30c in KisMimeData::insertMimeLayers(QMimeData const*, KisSharedPtr<KisImage>, KisShapeController*, KisNodeDummy*, KisNodeDummy*, bool, KisNodeInsertionAdapter*, bool, QPointF) () from /usr/lib/libkritaui.so.18
I'm afraid I have to reopen this bug, pasting a vector layer still crashes 100% for me on master (4ec1dd783197f4eda48a3867666483920f210e68). Doesn't matter if same document, other document or even inkscape, Krita will crash. Application: Krita (krita), signal: Aborted [KCrash Handler] #4 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140021918066816) at ./nptl/pthread_kill.c:44 #5 __pthread_kill_internal (signo=6, threadid=140021918066816) at ./nptl/pthread_kill.c:78 #6 __GI___pthread_kill (threadid=140021918066816, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #7 0x00007f5969f1e476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #8 0x00007f5969f047f3 in __GI_abort () at ./stdlib/abort.c:79 #9 0x00007f596a3e2bff in () at /opt/qt515-kde/lib/libQt5Core.so.5 #10 0x00007f596a3e1ff0 in qt_assert_x(char const*, char const*, char const*, int) () at /opt/qt515-kde/lib/libQt5Core.so.5 #11 0x00007f596c35baa5 in KisImageViewConverter::KisImageViewConverter(KisWeakSharedPtr<KisImage>) (this=this@entry=0x562ae8735990, image=...) at (...)/libs/ui/kis_image_view_converter.cpp:15 #12 0x00007f596c59eba8 in KisShapeLayerCanvasBase::KisShapeLayerCanvasBase(KisShapeLayer*, KisWeakSharedPtr<KisImage>) (this=0x562ada403520, parent=0x562adcd21f70, image=...) at (...)/libs/ui/flake/kis_shape_layer_canvas.cpp:40 #13 0x00007f596c5a1b34 in KisShapeLayerCanvas::KisShapeLayerCanvas(KisShapeLayer*, KisWeakSharedPtr<KisImage>) (this=0x562ada403520, parent=0x562adcd21f70, image=...) at (...)/libs/ui/flake/kis_shape_layer_canvas.cpp:163 #14 0x00007f596c5946d2 in KisShapeLayer::initShapeLayerImpl(KoShapeControllerBase*, KisSharedPtr<KisPaintDevice>, KisShapeLayerCanvasBase*) (this=0x562adcd21f70, controller=0x562ad2cf2658, newProjectionDevice=..., overrideCanvas=<optimized out>) at (...)/libs/ui/flake/kis_shape_layer.cc:281 #15 0x00007f596c594c1e in KisShapeLayer::KisShapeLayer(KisShapeLayer const&, KoShapeControllerBase*, KisShapeLayerCanvasBase*) (this=0x562adcd21f70, _rhs=..., controller=0x562ad2cf2658, canvas=0x0) at (...)/libs/ui/flake/kis_shape_layer.cc:146 #16 0x00007f596c4785e7 in KisShapeLayer::clone() const (this=0x562adc5f5ad0) at (...)/libs/ui/flake/kis_shape_layer.h:72 #17 0x00007f596c64f1ba in (anonymous namespace)::safeCopyNode (detachClones=<optimized out>, node=...) at (...)/libs/ui/kis_mimedata.cpp:50 #18 KisMimeData::tryLoadInternalNodes(QMimeData const*, KisSharedPtr<KisImage>, KisShapeController*, bool&) (data=<optimized out>, image=..., shapeController=0x562ad2cf2640, copyNode=@0x7ffe8b50d4cc: false) at (...)/libs/ui/kis_mimedata.cpp:281 #19 0x00007f596c6519cf in KisMimeData::loadNodesFast(QMimeData const*, KisSharedPtr<KisImage>, KisShapeController*, bool&) (data=0x562ad4dab5a0, image=..., shapeController=<optimized out>, copyNode=@0x7ffe8b50d4cc: false) at (...)/libs/ui/kis_mimedata.cpp:412 #20 0x00007f596c653326 in KisMimeData::insertMimeLayers(QMimeData const*, KisSharedPtr<KisImage>, KisShapeController*, KisNodeDummy*, KisNodeDummy*, bool, KisNodeInsertionAdapter*, bool, QPointF) (data=data@entry=0x562ad4dab5a0, image=..., shapeController=shapeController@entry=0x562ad2cf2640, parentDummy=<optimized out>, parentDummy@entry=0x562ad521b300, aboveThisDummy=<optimized out>, aboveThisDummy@entry=0x0, copyNode=<optimized out>, copyNode@entry=false, nodeInsertionAdapter=0x562ad0c46c00, changeOffset=false, offset=...) at (...)/libs/ui/kis_mimedata.cpp:451 #21 0x00007f596c662a0c in KisNodeManager::pasteLayersFromClipboard(bool, QPointF) (this=<optimized out>, changeOffset=<optimized out>, offset=...) at (...)/libs/ui/kis_node_manager.cpp:1492 #22 0x00007f596a6443b8 in () at /opt/qt515-kde/lib/libQt5Core.so.5 #23 0x00007f596b146c76 in QAction::triggered(bool) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #24 0x00007f596b14998c in QAction::activate(QAction::ActionEvent) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #25 0x00007f596b2d58d2 in () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #26 0x00007f596b2dd4a9 in () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #27 0x00007f596b1908be in QWidget::event(QEvent*) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #28 0x00007f596b14d7a3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #29 0x00007f596b1553e4 in QApplication::notify(QObject*, QEvent*) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #30 0x00007f596c9cf775 in KisApplication::notify(QObject*, QEvent*) (this=0x7ffe8b50e690, receiver=0x562ae0979bf0, event=0x7ffe8b50ddd0) at (...)/libs/ui/KisApplication.cpp:757 #31 0x00007f596a60c78a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /opt/qt515-kde/lib/libQt5Core.so.5 #32 0x00007f596b153ec7 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #33 0x00007f596b1aac53 in () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #34 0x00007f596b1ad3e5 in () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #35 0x00007f596b14d7a3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /opt/qt515-kde/lib/libQt5Widgets.so.5 #36 0x00007f596c9cf775 in KisApplication::notify(QObject*, QEvent*) (this=0x7ffe8b50e690, receiver=0x7f595c00d1b0, event=0x7ffe8b50e130) at (...)/libs/ui/KisApplication.cpp:757 #37 0x00007f596a60c78a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /opt/qt515-kde/lib/libQt5Core.so.5 #38 0x00007f596aa32ac7 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /opt/qt515-kde/lib/libQt5Gui.so.5 #39 0x00007f596aa06acc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/qt515-kde/lib/libQt5Gui.so.5 #40 0x00007f5964402fde in () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #41 0x00007f5967a65d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #42 0x00007f5967aba6f8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #43 0x00007f5967a633c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #44 0x00007f596a665ca8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/qt515-kde/lib/libQt5Core.so.5 #45 0x00007f596a60b0ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/qt515-kde/lib/libQt5Core.so.5 #46 0x00007f596a613644 in QCoreApplication::exec() () at /opt/qt515-kde/lib/libQt5Core.so.5 #47 0x0000562acd7307c1 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at (...)/krita/main.cc:727 [Inferior 1 (process 23366) detached]
(In reply to Lynx3d from comment #12) > I'm afraid I have to reopen this bug, pasting a vector layer still crashes > 100% for me on master (4ec1dd783197f4eda48a3867666483920f210e68). > Doesn't matter if same document, other document or even inkscape, Krita will > crash. Can you paste the backtrace you get when trying to paste from inkscape? I believe they should differ from this one.
I can confirm this bug happens to me too. 5.1.0
sh_zam, it is shorter, but the part after KisShapeLayer::clone() looks identical at first sight: Application: Krita (krita), signal: Aborted [KCrash Handler] #4 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140095856425088) at ./nptl/pthread_kill.c:44 #5 __pthread_kill_internal (signo=6, threadid=140095856425088) at ./nptl/pthread_kill.c:78 #6 __GI___pthread_kill (threadid=140095856425088, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #7 0x00007f6aa103b476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #8 0x00007f6aa10217f3 in __GI_abort () at ./stdlib/abort.c:79 #9 0x00007f6aa14ffbff in () at /opt/qt515-kde/lib/libQt5Core.so.5 #10 0x00007f6aa14feff0 in qt_assert_x(char const*, char const*, char const*, int) () at /opt/qt515-kde/lib/libQt5Core.so.5 #11 0x00007f6aa3478aa5 in KisImageViewConverter::KisImageViewConverter(KisWeakSharedPtr<KisImage>) (this=this@entry=0x563fa011df30, image=...) at (...)/libs/ui/kis_image_view_converter.cpp:15 #12 0x00007f6aa36bbba8 in KisShapeLayerCanvasBase::KisShapeLayerCanvasBase(KisShapeLayer*, KisWeakSharedPtr<KisImage>) (this=0x563fb9f54140, parent=0x563faddfad20, image=...) at (...)/libs/ui/flake/kis_shape_layer_canvas.cpp:40 #13 0x00007f6aa36beb34 in KisShapeLayerCanvas::KisShapeLayerCanvas(KisShapeLayer*, KisWeakSharedPtr<KisImage>) (this=0x563fb9f54140, parent=0x563faddfad20, image=...) at (...)/libs/ui/flake/kis_shape_layer_canvas.cpp:163 #14 0x00007f6aa36b16d2 in KisShapeLayer::initShapeLayerImpl(KoShapeControllerBase*, KisSharedPtr<KisPaintDevice>, KisShapeLayerCanvasBase*) (this=0x563faddfad20, controller=0x563fa43b71e8, newProjectionDevice=..., overrideCanvas=<optimized out>) at (...)/libs/ui/flake/kis_shape_layer.cc:281 #15 0x00007f6aa36b1c1e in KisShapeLayer::KisShapeLayer(KisShapeLayer const&, KoShapeControllerBase*, KisShapeLayerCanvasBase*) (this=0x563faddfad20, _rhs=..., controller=0x563fa43b71e8, canvas=0x0) at (...)/libs/ui/flake/kis_shape_layer.cc:146 #16 0x00007f6aa35955e7 in KisShapeLayer::clone() const (this=0x563fa4130cb0) at (...)/libs/ui/kritaui_autogen/QUY67KCZCL/../../../libs/ui/flake/kis_shape_layer.h:72 #17 0x00007f6aa3769e48 in (anonymous namespace)::safeCopyNode(KisNodeSP, bool) (node=..., detachClones=true) at (...)/libs/ui/kis_mimedata.cpp:50 #18 0x00007f6aa376f3f1 in createDocument(QList<KisSharedPtr<KisNode> >, KisSharedPtr<KisImage>) (nodes=..., srcImage=...) at (...)/libs/ui/kis_mimedata.cpp:125 #19 0x00007f6aa3770f0e in KisMimeData::retrieveData(QString const&, QVariant::Type) const (this=<optimized out>, mimetype=<optimized out>, preferredType=QVariant::Image) at (...)/libs/ui/kis_mimedata.cpp:171 #20 0x00007f6aa1750110 in () at /opt/qt515-kde/lib/libQt5Core.so.5 #21 0x00007f6aa1750fdd in QMimeData::imageData() const () at /opt/qt515-kde/lib/libQt5Core.so.5 #22 0x00007f6aa1b6e410 in QInternalMimeData::renderDataHelper(QString const&, QMimeData const*) () at /opt/qt515-kde/lib/libQt5Gui.so.5 #23 0x00007f6a9b500fd8 in () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #24 0x00007f6a9b4f4643 in () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #25 0x00007f6a9b4f4d62 in () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #26 0x00007f6a9b4f7cf1 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #27 0x00007f6a9b4f91a6 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #28 0x00007f6a9b51ffd7 in () at /opt/qt515-kde/plugins/platforms/../../lib/libQt5XcbQpa.so.5 #29 0x00007f6a9eb82d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #30 0x00007f6a9ebd76f8 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #31 0x00007f6a9eb803c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #32 0x00007f6aa1782ca8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/qt515-kde/lib/libQt5Core.so.5 #33 0x00007f6aa17280ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/qt515-kde/lib/libQt5Core.so.5 #34 0x00007f6aa1730644 in QCoreApplication::exec() () at /opt/qt515-kde/lib/libQt5Core.so.5 #35 0x0000563f9ec897c1 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at (...)/krita/main.cc:727 [Inferior 1 (process 4261) detached]
Git commit 8a1e5920e696163dc128669cbb645401941f6dc9 by Dmitry Kazakov. Committed on 16/09/2022 at 14:56. Pushed by dkazakov into branch 'master'. Fix an assert when copy/paste a filter layer M +12 -7 libs/image/kis_selection_based_layer.cpp https://invent.kde.org/graphics/krita/commit/8a1e5920e696163dc128669cbb645401941f6dc9
Git commit 31ed09f8a54f34b7f8c496c537dfbbb224c26dd1 by Dmitry Kazakov. Committed on 16/09/2022 at 14:56. Pushed by dkazakov into branch 'master'. Fix a crash when copy/paste a shape layer M +3 -1 libs/ui/flake/kis_shape_layer_canvas.cpp https://invent.kde.org/graphics/krita/commit/31ed09f8a54f34b7f8c496c537dfbbb224c26dd1
Git commit ed757644f27d4f1507b5e8c294b48529545a85cf by Dmitry Kazakov. Committed on 16/09/2022 at 14:57. Pushed by dkazakov into branch 'krita/5.1'. Fix an assert when copy/paste a filter layer (cherry picked from commit 8a1e5920e696163dc128669cbb645401941f6dc9) M +12 -7 libs/image/kis_selection_based_layer.cpp https://invent.kde.org/graphics/krita/commit/ed757644f27d4f1507b5e8c294b48529545a85cf
Git commit 4126e6dde47dc39cbfd60f359d08988052cd8c97 by Dmitry Kazakov. Committed on 16/09/2022 at 14:57. Pushed by dkazakov into branch 'krita/5.1'. Fix a crash when copy/paste a shape layer (cherry picked from commit 31ed09f8a54f34b7f8c496c537dfbbb224c26dd1) M +3 -1 libs/ui/flake/kis_shape_layer_canvas.cpp https://invent.kde.org/graphics/krita/commit/4126e6dde47dc39cbfd60f359d08988052cd8c97
I confirm this problem doesn't happen in 5.1.1.
*** Bug 469850 has been marked as a duplicate of this bug. ***