GError when moving/editing with LPE
Summary:
Inkscape crashes whenever I drag this SVG
Steps to reproduce:
- open Inkscape
- drag this svg
- crash
What happened?
inkscape crashed with SIGTRAP
Backtrace
** (org.inkscape.Inkscape:355232): ERROR **: 15:21:32.941: sp_svg_write_polygon: polygon path contains non-straight line segments
Thread 1 "inkscape-stable" received signal SIGTRAP, Trace/breakpoint trap.
Downloading 108.69 K source file /usr/src/debug/glib2-2.82.5-1.fc41.x86_64/redhat-linux-build/../glib/gmessages.c
g_log_structured_array (log_level=<optimized out>, fields=0x7fffffffb8b0, n_fields=3) at ../glib/gmessages.c:426
426 G_BREAKPOINT ();
(gdb) bt
#0 g_log_structured_array (log_level=<optimized out>, fields=0x7fffffffb8b0, n_fields=3) at ../glib/gmessages.c:426
#1 0x00007ffff5500197 in g_log_default_handler
(log_domain=log_domain@entry=0x0, log_level=log_level@entry=6, message=message@entry=0x7ffff77c2080 "sp_svg_write_polygon: polygon path contains non-straight line segments", unused_data=unused_data@entry=0x0) at ../glib/gmessages.c:3412
#2 0x00007ffff54f6f69 in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=args@entry=0x7fffffffba10)
at ../glib/gmessages.c:1246
#3 0x00007ffff54f72e3 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1315
#4 0x00007ffff619ff9c in sp_svg_write_polygon (pathv=<optimized out>) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-polygon.cpp:61
#5 0x00007ffff61a010d in SPPolygon::write (this=0x8d9cc0, xml_doc=0x7fffe6fd6748, repr=0x7fffe6fef8e8, flags=2)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-polygon.cpp:81
#6 0x00007ffff6190db8 in SPObject::updateRepr (this=this@entry=0x8d9cc0, doc=0x7fffe6fd6748, repr=<optimized out>,
repr@entry=0x7fffe6fef8e8, flags=flags@entry=2) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-object.cpp:1395
#7 0x00007ffff6190e29 in SPObject::updateRepr (this=this@entry=0x8d9cc0, flags=flags@entry=2)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-object.cpp:1353
#8 0x00007ffff6156035 in SPGroup::write (this=0xb23100, xml_doc=0x7fffe6fd6748, repr=0x7fffe6fefa08, flags=2)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-item-group.cpp:244
#9 0x00007ffff6190db8 in SPObject::updateRepr (this=this@entry=0xb23100, doc=0x7fffe6fd6748, repr=<optimized out>,
repr@entry=0x7fffe6fefa08, flags=flags@entry=2) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-object.cpp:1395
#10 0x00007ffff6190e29 in SPObject::updateRepr (this=this@entry=0xb23100, flags=flags@entry=2)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-object.cpp:1353
#11 0x00007ffff6156035 in SPGroup::write (this=0xe63cc0, xml_doc=0x7fffe6fd6748, repr=0x7fffe6fefb28, flags=2)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-item-group.cpp:244
#12 0x00007ffff6190db8 in SPObject::updateRepr (this=this@entry=0xe63cc0, doc=0x7fffe6fd6748, repr=<optimized out>,
repr@entry=0x7fffe6fefb28, flags=flags@entry=2) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-object.cpp:1395
#13 0x00007ffff6190e29 in SPObject::updateRepr (this=this@entry=0xe63cc0, flags=flags@entry=2)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-object.cpp:1353
#14 0x00007ffff615ea85 in SPItem::doWriteTransform (this=this@entry=0xe63cc0, transform=..., adv=adv@entry=0x0, compensate=compensate@entry=true)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/object/sp-item.cpp:1750
#15 0x00007ffff67895b7 in Inkscape::ObjectSet::applyAffine
(this=this@entry=0x17ac610, affine=..., set_i2d=false, compensate=compensate@entry=true, adjust_transf_center=adjust_transf_center@entry=true)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/selection-chemistry.cpp:1836
#16 0x00007ffff67a633f in Inkscape::SelTrans::ungrab (this=0x20359c0) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/seltrans.cpp:451
#17 0x00007ffff6350a3e in operator() (__closure=__closure@entry=0x7fffffffc780, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/tools/select-tool.cpp:595
#18 0x00007ffff635210f in Inkscape::inspect_event<const Inkscape::CanvasEvent&, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::ButtonPressEvent&)>, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::MotionEvent&)>, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::ButtonReleaseEvent&)>, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::ScrollEvent&)>, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::KeyPressEvent&)>, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::KeyReleaseEvent&)>, Inkscape::UI::Tools::SelectTool::root_handler(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::CanvasEvent&)> >(const Inkscape::CanvasEvent &)
(event=...) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/widget/events/canvas-event.h:315
#19 0x00007ffff635245c in Inkscape::UI::Tools::SelectTool::root_handler (this=0x1790ea0, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/tools/select-tool.cpp:417
--Type <RET> for more, q to quit, c to continue without paging--c
#20 0x00007ffff6373ae9 in Inkscape::UI::Tools::ToolBase::tool_root_handler (this=this@entry=0x1790ea0, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/tools/tool-base.cpp:1268
#21 0x00007ffff6373b3d in Inkscape::UI::Tools::ToolBase::virtual_item_handler (this=this@entry=0x1790ea0, item=item@entry=0xe63cc0, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/tools/tool-base.cpp:1301
#22 0x00007ffff6373f06 in Inkscape::UI::Tools::ToolBase::start_item_handler (this=this@entry=0x1790ea0, item=0xe63cc0, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/tools/tool-base.cpp:1283
#23 0x00007ffff671d163 in _drawing_handler (event=..., drawing_item=0x159fc70, desktop=<optimized out>)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/desktop.cpp:1434
#24 0x00007ffff6721a60 in sigc::pointer_functor3<Inkscape::CanvasEvent const&, Inkscape::DrawingItem*, SPDesktop*, bool>::operator()
(this=<optimized out>, _A_a1=<optimized out>, _A_a2=<optimized out>, _A_a3=<optimized out>) at /usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h:185
#25 sigc::adaptor_functor<sigc::pointer_functor3<Inkscape::CanvasEvent const&, Inkscape::DrawingItem*, SPDesktop*, bool> >::operator()<Inkscape::CanvasEvent const&, Inkscape::DrawingItem* const&, SPDesktop*&> (this=<optimized out>, _A_arg1=<optimized out>, _A_arg2=<optimized out>, _A_arg3=<optimized out>)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:128
#26 sigc::bind_functor<-1, bool (*)(Inkscape::CanvasEvent const&, Inkscape::DrawingItem*, SPDesktop*), SPDesktop*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()<Inkscape::CanvasEvent const&, Inkscape::DrawingItem* const&>
(this=<optimized out>, _A_arg1=<optimized out>, _A_arg2=<optimized out>) at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1158
#27 sigc::internal::slot_call<sigc::bind_functor<-1, bool (*)(Inkscape::CanvasEvent const&, Inkscape::DrawingItem*, SPDesktop*), SPDesktop*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool, Inkscape::CanvasEvent const&, Inkscape::DrawingItem*>::call_it
(rep=<optimized out>, a_#0=<optimized out>, a_#1=<optimized out>) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:451
#28 0x00007ffff5f08b1a in sigc::internal::signal_emit2<bool, Inkscape::CanvasEvent const&, Inkscape::DrawingItem*, sigc::nil>::emit
(impl=0x14e7530, _A_a1=..., _A_a2=@0x1d46c98: 0x159fc70) at /usr/include/sigc++-2.0/sigc++/signal.h:1201
#29 0x00007ffff5f08677 in sigc::signal2<bool, Inkscape::CanvasEvent const&, Inkscape::DrawingItem*, sigc::nil>::emit
(this=<optimized out>, _A_a1=<optimized out>, _A_a2=<optimized out>) at /usr/include/sigc++-2.0/sigc++/signal.h:3119
#30 operator() (__closure=__closure@entry=0x7fffffffcb10, event=<optimized out>)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/display/control/canvas-item-drawing.cpp:188
#31 0x00007ffff5f087c8 in Inkscape::inspect_event<const Inkscape::CanvasEvent&, Inkscape::CanvasItemDrawing::handle_event(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::EnterEvent&)>, Inkscape::CanvasItemDrawing::handle_event(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::LeaveEvent&)>, Inkscape::CanvasItemDrawing::handle_event(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::MotionEvent&)>, Inkscape::CanvasItemDrawing::handle_event(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::ScrollEvent&)>, Inkscape::CanvasItemDrawing::handle_event(const Inkscape::CanvasEvent&)::<lambda(const Inkscape::CanvasEvent&)> >(const Inkscape::CanvasEvent &) (event=...) at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/widget/events/canvas-event.h:315
#32 0x00007ffff5f08867 in Inkscape::CanvasItemDrawing::handle_event (this=<optimized out>, event=<optimized out>)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/display/control/canvas-item-drawing.cpp:126
#33 0x00007ffff6599cf8 in Inkscape::UI::Widget::CanvasPrivate::emit_event (this=this@entry=0x1d4bf10, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/widget/canvas.cpp:1424
#34 0x00007ffff659a5f6 in Inkscape::UI::Widget::CanvasPrivate::process_event (this=this@entry=0x1d4bf10, event=...)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/widget/canvas.cpp:1203
#35 0x00007ffff659aee2 in Inkscape::UI::Widget::Canvas::on_button_release_event (this=<optimized out>, gdkevent=0x51e4480)
at /home/krir17/Programs/inkscape_code/inkscape-dev/stable/src/ui/widget/canvas.cpp:1004
#36 0x00007ffff493ef51 in Gtk::Widget_Class::button_release_event_callback (self=0x1d4be50, p0=0x51e4480) at ../untracked/gtk/gtkmm/widget.cc:4291
#41 0x00007ffff5c8f733 in <emit signal '???' on instance ???> (instance=instance@entry=0x1d4be50, signal_id=<optimized out>, detail=detail@entry=0)
at ../gobject/gsignal.c:3582
#37 0x00007ffff3c888d9 in _gtk_marshal_BOOLEAN__BOXEDv
(closure=0x4e6430, return_value=0x7fffffffcee0, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x4df780) at gtk/gtkmarshalers.c:130
#38 0x00007ffff5c8f55c in _g_closure_invoke_va
(closure=0x4e6430, return_value=0x7fffffffcee0, instance=0x1d4be50, args=0x7fffffffcfd0, n_params=1, param_types=0x4df780) at ../gobject/gclosure.c:896
#39 signal_emit_valist_unlocked
(instance=instance@entry=0x1d4be50, signal_id=signal_id@entry=90, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffcfd0)
at ../gobject/gsignal.c:3423
#40 0x00007ffff5c8f671 in g_signal_emit_valist (instance=0x1d4be50, signal_id=90, detail=0, var_args=var_args@entry=0x7fffffffcfd0)
at ../gobject/gsignal.c:3262
#42 0x00007ffff3f5fe3c in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x1d4be50, event=0x51e4480) at ../gtk/gtkwidget.c:7812
#43 0x00007ffff3df4328 in propagate_event_up (widget=0x1d4be50, event=<optimized out>, topmost=<optimized out>) at ../gtk/gtkmain.c:2588
#44 propagate_event (widget=<optimized out>, event=0x51e4480, captured=<optimized out>, topmost=0x0) at ../gtk/gtkmain.c:2691
#45 0x00007ffff3df50aa in gtk_main_do_event (event=<optimized out>) at ../gtk/gtkmain.c:1921
#46 gtk_main_do_event (event=<optimized out>) at ../gtk/gtkmain.c:1691
#47 0x00007ffff4492807 in _gdk_event_emit (event=0x51e4480) at ../gdk/gdkevents.c:73
#48 _gdk_event_emit (event=0x51e4480) at ../gdk/gdkevents.c:67
#49 0x00007ffff44cc2ae in gdk_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>)
at ../gdk/wayland/gdkeventsource.c:124
#50 0x00007ffff54f128c in g_main_dispatch (context=0x47cf60) at ../glib/gmain.c:3357
#51 g_main_context_dispatch_unlocked (context=0x47cf60) at ../glib/gmain.c:4208
#52 0x00007ffff55518b8 in g_main_context_iterate_unlocked.isra.0
(context=context@entry=0x47cf60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273
#53 0x00007ffff54f2783 in g_main_context_iteration (context=context@entry=0x47cf60, may_block=may_block@entry=1) at ../glib/gmain.c:4338
#54 0x00007ffff3ae0e0d in g_application_run (application=0x5f2cd0, argc=<optimized out>, argv=0x459400) at ../gio/gapplication.c:2715
#55 0x0000000000401e63 in main (argc=<optimized out>, argv=<optimized out>) at /usr/include/glibmm-2.4/glibmm/refptr.h:405
What should have happened?
inkscape should not have crashed
Sample attachments:
Reproduction Video
Version info
Inkscape 1.4 (e7c3feb100, 2024-10-09)
Compile (Run)
GLib version: 2.82.1
GTK version: 3.24.43 (3.24.43)
glibmm version: 2.66.7
gtkmm version: 3.24.9
libxml2 version: 2.13.6
libxslt version: 1.1.42
Cairo version: 1.18.2 (1.18.2)
Pango version: 1.54.0 (1.54.0)
HarfBuzz version: 10.0.1 (10.0.1)
OS version: NixOS 24.11 (Vicuna)
Edited by KrIr17