Crash when trying to undo Corner LPE tool
Summary:
When undoing certain actions involving e.g. Corners Live Path Effect, it will first not do anything, then crash on the second undo try.
Steps to reproduce:
- Create a new document in Inkscape
- Draw a square by hand with four clicks with the pen tool
- Use the Node Tool and select the square (if not selected anymore)
- Click on "Add Corners LPE" (Live Path Effect) in the toolbar
- Now double-click any edge to create a new node
- Use the LPE handle to edit the curve radius of the newly created node (to what doesn't seem to matter)
- Try to undo. Observe that nothing is undone.
- Try to undo again. Inkscape crashes.
Additional observations: It seems the LPE needs to be visible before adding the new node. If the button is clicked after creating the new node, it will still not do anything on the first undo try, but undo properly on the second try (along with exiting Corner LPE mode), and delete the node on the third. However, when undoing right after clicking the Corner LPE button, it undoes enabling the corner LPE mode. This leads me to believe that the root problem is that undoing the corner LPE change is delayed by one undo record, and the crash is caused by the LPE handle change and the node creation being undone with the same action (possibly in reverse order).
Crashlog
0# Inkscape::Application::crash_handler(int) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 1# 0x0000747578058E20 in /usr/lib/libc.so.6 2# 0x00007475780AC194 in /usr/lib/libc.so.6 3# gsignal in /usr/lib/libc.so.6 4# abort in /usr/lib/libc.so.6 5# 0x00007475780403DC in /usr/lib/libc.so.6 6# 0x0000747578050FC7 in /usr/lib/libc.so.6 7# PathVectorNodeSatellites::recalculateForNewPathVector(Geom::PathVector, NodeSatellite) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 8# Inkscape::LivePathEffect::LPEFilletChamfer::doBeforeEffect(SPLPEItem const*) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 9# Inkscape::LivePathEffect::Effect::doBeforeEffect_impl(SPLPEItem const*) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 10# SPLPEItem::performOnePathEffect(SPCurve*, SPShape*, Inkscape::LivePathEffect::Effect*, bool) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 11# SPLPEItem::performPathEffect(SPCurve*, SPShape*, bool) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 12# SPShape::update_patheffect(bool) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 13# SPGroup::update_patheffect(bool) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 14# SPGroup::update_patheffect(bool) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 15# sp_lpe_item_update_patheffect(SPLPEItem*, bool, bool, bool) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 16# SPDocument::update_lpobjs() in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 17# Inkscape::DocumentUndo::undo(SPDocument*) in /usr/bin/../lib/inkscape/libinkscape_base.so.1.3.2.0 18# 0x0000747578760107 in /usr/lib/libgiomm-2.4.so.1 19# g_closure_invoke in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 20# 0x0000747577772C1B in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 21# 0x00007475777637A2 in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 22# g_signal_emit_valist in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 23# g_signal_emit in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 24# 0x0000747577870126 in /usr/bin/../lib/inkscape/../libgio-2.0.so.0 25# gtk_window_activate_key in /usr/bin/../lib/inkscape/../libgtk-3.so.0 26# 0x0000747576566696 in /usr/bin/../lib/inkscape/../libgtk-3.so.0 27# Gtk::Widget::on_key_press_event(_GdkEventKey*) in /usr/bin/../lib/inkscape/../libgtkmm-3.0.so.1 28# Gtk::Widget_Class::key_press_event_callback(_GtkWidget*, _GdkEventKey*) in /usr/bin/../lib/inkscape/../libgtkmm-3.0.so.1 29# 0x0000747576287829 in /usr/bin/../lib/inkscape/../libgtk-3.so.0 30# 0x00007475777638D3 in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 31# g_signal_emit_valist in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 32# g_signal_emit in /usr/bin/../lib/inkscape/../libgobject-2.0.so.0 33# 0x0000747576554CD5 in /usr/bin/../lib/inkscape/../libgtk-3.so.0 34# 0x00007475763EED2A in /usr/bin/../lib/inkscape/../libgtk-3.so.0 35# gtk_main_do_event in /usr/bin/../lib/inkscape/../libgtk-3.so.0 36# 0x0000747576E7EB77 in /usr/bin/../lib/inkscape/../libgdk-3.so.0 37# 0x0000747576EB7218 in /usr/bin/../lib/inkscape/../libgdk-3.so.0 38# 0x000074757A11C199 in /usr/lib/libglib-2.0.so.0 39# 0x000074757A17B3BF in /usr/lib/libglib-2.0.so.0 40# g_main_context_iteration in /usr/lib/libglib-2.0.so.0 41# g_application_run in /usr/bin/../lib/inkscape/../libgio-2.0.so.0 42# main in /usr/bin/inkscape 43# 0x0000747578041D4A in /usr/lib/libc.so.6 44# __libc_start_main in /usr/lib/libc.so.6 45# _start in /usr/bin/inkscape
Version info
Inkscape 1.3.2 (091e20ef0f, 2023-11-25, custom)
Installed from Official Manjaro Repositories, not Flatpak.
System info
Inkscape 1.3.2 (091e20ef0f, 2023-11-25, custom)GLib version: 2.80.0
GTK version: 3.24.41
glibmm version: 2.66.6
gtkmm version: 3.24.8
libxml2 version: 2.12.5
libxslt version: 1.1.39
Cairo version: 1.18.0
Pango version: 1.52.2
HarfBuzz version: 8.4.0
OS version: Manjaro Linux