Crash on undo / redo unlink all clones with Objects dialog open
Summary:
Inkscape crashes when undoing unlinking of clones and then redoing, while Objects dialog is open. Might need multiple undo / redo steps for it to occur. This could have to do with the names of objects not being displayed correctly in the Objects dialog, as that showed <use:id2>
instead of just the id for some objects sometimes.
Crash message
0# Inkscape::Application::crash_handler(int) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 1# 0x00007D404E642520 in /lib/x86_64-linux-gnu/libc.so.6 2# std::basic_streambuf >::xsputn(char const*, long) in /lib/x86_64-linux-gnu/libstdc++.so.6 3# std::basic_ostream >& std::__ostream_insert >(std::basic_ostream >&, char const*, long) in /lib/x86_64-linux-gnu/libstdc++.so.6 4# Inkscape::UI::Syntax::Style::openingTag() const in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 5# Inkscape::UI::Syntax::XMLFormatter::openTag(char const*) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 6# (anonymous namespace)::ElementNodeObserver::elementAttrOrNameChangedUpdate(Inkscape::XML::Node*) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 7# Inkscape::XML::CompositeNodeObserver::notifyAttributeChanged(Inkscape::XML::Node&, unsigned int, Inkscape::Util::ptr_shared, Inkscape::Util::ptr_shared) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 8# Inkscape::XML::SimpleNode::setAttributeImpl(char const*, char const*) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 9# Inkscape::XML::replay_log_to_observer(Inkscape::XML::Event const*, Inkscape::XML::NodeObserver&) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 10# Inkscape::DocumentUndo::redo(SPDocument*) in /opt/inkscape_1.4.x/bin/../lib/inkscape/libinkscape_base.so.1.4.0.0 11# 0x00007D404EE2B3F4 in /lib/x86_64-linux-gnu/libgiomm-2.4.so.1 12# g_closure_invoke in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 13# 0x00007D404EC5FE11 in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 14# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 15# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 16# 0x00007D404C90B035 in /lib/x86_64-linux-gnu/libgio-2.0.so.0 17# 0x00007D404CB3C3C7 in /lib/x86_64-linux-gnu/libgtk-3.so.0 18# g_closure_invoke in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 19# 0x00007D404EC5FE11 in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 20# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 21# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 22# 0x00007D404CB3DAB0 in /lib/x86_64-linux-gnu/libgtk-3.so.0 23# Gtk::Button_Class::released_callback(_GtkButton*) in /lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 24# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 25# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 26# 0x00007D404CB3D884 in /lib/x86_64-linux-gnu/libgtk-3.so.0 27# 0x00007D404CDF0C15 in /lib/x86_64-linux-gnu/libgtk-3.so.0 28# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 29# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 30# 0x00007D404CC07FFC in /lib/x86_64-linux-gnu/libgtk-3.so.0 31# g_cclosure_marshal_VOID__BOXEDv in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 32# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 33# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 34# 0x00007D404CBFFACB in /lib/x86_64-linux-gnu/libgtk-3.so.0 35# 0x00007D404CC0783B in /lib/x86_64-linux-gnu/libgtk-3.so.0 36# 0x00007D404CC08443 in /lib/x86_64-linux-gnu/libgtk-3.so.0 37# gtk_event_controller_handle_event in /lib/x86_64-linux-gnu/libgtk-3.so.0 38# 0x00007D404CDA0075 in /lib/x86_64-linux-gnu/libgtk-3.so.0 39# Gtk::Widget::on_button_release_event(_GdkEventButton*) in /lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 40# Gtk::Widget_Class::button_release_event_callback(_GtkWidget*, _GdkEventButton*) in /lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 41# 0x00007D404CDE6EE8 in /lib/x86_64-linux-gnu/libgtk-3.so.0 42# g_signal_emit_valist in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 43# g_signal_emit in /lib/x86_64-linux-gnu/libgobject-2.0.so.0 44# 0x00007D404CDAE754 in /lib/x86_64-linux-gnu/libgtk-3.so.0 45# 0x00007D404CC516B0 in /lib/x86_64-linux-gnu/libgtk-3.so.0 46# gtk_main_do_event in /lib/x86_64-linux-gnu/libgtk-3.so.0 47# 0x00007D404D332743 in /lib/x86_64-linux-gnu/libgdk-3.so.0 48# 0x00007D404D369F56 in /lib/x86_64-linux-gnu/libgdk-3.so.0 49# g_main_context_dispatch in /lib/x86_64-linux-gnu/libglib-2.0.so.0 50# 0x00007D404EF712B8 in /lib/x86_64-linux-gnu/libglib-2.0.so.0 51# g_main_context_iteration in /lib/x86_64-linux-gnu/libglib-2.0.so.0 52# g_application_run in /lib/x86_64-linux-gnu/libgio-2.0.so.0 53# main in /opt/inkscape_1.4.x/bin/inkscape 54# __libc_start_call_main at ../sysdeps/nptl/libc_start_call_main.h:58 55# __libc_start_main at ../csu/libc-start.c:379 56# _start in /opt/inkscape_1.4.x/bin/inkscape
Steps to reproduce:
- open Inkscape
- create an object
- clone it
- clone the clone (not sure if necessary)
- select them all, do Shift + ?, Unlink all Clones (how is this different from Unlink clones recursively, btw.?)
- undo
- redo (multiple, alternating)
What happened?
Sometimes, a crash - with crash message, see above. Also wrong names for objects shown in Objects dialog. Was able to get that to reproduce twice, but then no more.
What should have happened?
No crash.
Version info
Inkscape 1.4-beta (62a5239d54, 2024-05-13)
Compile (Run)
GLib version: 2.72.4
GTK version: 3.24.33 (3.24.33)
glibmm version: 2.66.2
gtkmm version: 3.24.5
libxml2 version: 2.9.13
libxslt version: 1.1.34
Cairo version: 1.16.0 (1.16.0)
Pango version: 1.50.6 (1.50.6)
HarfBuzz version: 2.7.4 (2.7.4)
OS version: Linux Mint 21.3
Edited by Maren Hachmann