crash while joining two nodes (of different paths)
Summary:
Inkscape sometimes crashes when joining two different nodes of different paths. It occurs more often when tha paths have a path effect such as power stroke. And when you try to merge like three continuous paths one after another then inkscape will crash.
Steps to reproduce:
- open Inkscape
- create three strokes/paths
- add powerstroke effect to them
- join ending/starting node of first two strokes
- then, join it's ending node with last stokes's starting node
...
What should have happened?
It crashes
Version info
System info
Inkscape 1.4 (e7c3feb1, 2024-10-09) Compile (Run)
GLib version: 2.76.3
GTK version: 3.24.42 (3.24.42)
glibmm version: 2.66.6
gtkmm version: 3.24.9
libxml2 version: 2.11.4
libxslt version: 1.1.29
Cairo version: 1.18.0 (1.18.0)
Pango version: 1.50.14 (1.50.14)
HarfBuzz version: 8.0.1 (8.0.1)
OS version: macOS 15.0.1 (24A348) arm64
Log
0# Inkscape::Application::crash_handler(int) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 1# _sigtramp in /usr/lib/system/libsystem_platform.dylib 2# SPItem::i2dt_affine() const in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 3# KnotHolderEntity::update_knot() in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 4# BlurKnotHolderEntity::update_knot() in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 5# KnotHolder::update_knots() in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 6# Inkscape::UI::ShapeEditor::set_item(SPItem*) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 7# Inkscape::XML::CompositeNodeObserver::notifyAttributeChanged(Inkscape::XML::Node&, unsigned int, Inkscape::Util::ptr_shared, Inkscape::Util::ptr_shared) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 8# Inkscape::XML::SimpleNode::setAttributeImpl(char const*, char const*) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 9# sp_repr_undo_log(Inkscape::XML::Event*) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 10# Inkscape::DocumentUndo::undo(SPDocument*) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.4.0.0.dylib 11# (anonymous namespace)::SimpleAction_signal_activate_callback(_GSimpleAction*, _GVariant*, void*) in /Applications/Inkscape.app/Contents/Resources/lib/libgiomm-2.4.1.dylib 12# g_closure_invoke in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 13# signal_emit_unlocked_R in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 14# g_signal_emit_valist in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 15# g_signal_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 16# g_simple_action_activate in /Applications/Inkscape.app/Contents/Resources/lib/libgio-2.0.0.dylib 17# Gio::Action_Class::activate_vfunc_callback(_GAction*, _GVariant*) in /Applications/Inkscape.app/Contents/Resources/lib/libgiomm-2.4.1.dylib 18# Gio::ActionGroup_Class::activate_action_vfunc_callback(_GActionGroup*, char const*, _GVariant*) in /Applications/Inkscape.app/Contents/Resources/lib/libgiomm-2.4.1.dylib 19# gtk_application_accels_activate in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 20# gtk_window_activate_key in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 21# gtk_window_key_press_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 22# Gtk::Widget::on_key_press_event(_GdkEventKey*) in /Applications/Inkscape.app/Contents/Resources/lib/libgtkmm-3.0.1.dylib 23# Gtk::Widget_Class::key_press_event_callback(_GtkWidget*, _GdkEventKey*) in /Applications/Inkscape.app/Contents/Resources/lib/libgtkmm-3.0.1.dylib 24# _gtk_marshal_BOOLEAN__BOXEDv in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 25# _g_closure_invoke_va in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 26# g_signal_emit_valist in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 27# g_signal_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib 28# gtk_widget_event_internal in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 29# gtk_propagate_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 30# gtk_main_do_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib 31# _gdk_event_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgdk-3.0.dylib 32# gdk_event_dispatch in /Applications/Inkscape.app/Contents/Resources/lib/libgdk-3.0.dylib 33# g_main_context_dispatch in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib 34# g_main_context_iterate in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib 35# g_main_context_iteration in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib 36# g_application_run in /Applications/Inkscape.app/Contents/Resources/lib/libgio-2.0.0.dylib 37# main in /Applications/Inkscape.app/Contents/MacOS/inkscape
<!--
❤️ Thank you for filling in a new bug report, we appreciate the help! ❤️
Please be patient while we try to find the time to look into your issue.
Remember that Inkscape is developed by volunteers in their spare time, we'll try our best to respond to all reports.
-->
<!--
Please be careful when/after writing # for example in logs, code, or versions of linux
- use inline code span - single backticks (`) before and after it, like this - `#1618`
- use multi-line code block - triple backticks (```) to fence/enclose console logs
- attach long logs as a text file.
-->
Edited by Mohammad Aseem