Deletion or duplication on powerstroked paths crashes Inkscape

Bug #1633521 reported by Parcly Taxel on 2016-10-14
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
Undecided
Jabiertxof

Bug Description

[Trisquel 7.0, Inkscape trunk r15169]
[This bug is critical and must be fixed as soon as possible]

Open the attached file, which has a single path with a powerstroke LPE applied to it. The following actions crash Inkscape (GDB backtraces provided after each action):

1. Duplicating the path.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff538e0a0 in sigc::slot_base::disconnect() () from /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0
(gdb) bt
#0 0x00007ffff538e0a0 in sigc::slot_base::disconnect() () from /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0
#1 0x00007ffff7542d12 in Inkscape::URIReference::detach() () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#2 0x00007ffff758e569 in SPLPEItem::set(unsigned int, char const*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#3 0x00007ffff75ad8d8 in SPPath::set(unsigned int, char const*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#4 0x00007ffff75a69b4 in SPObject::repr_attr_changed(Inkscape::XML::Node*, char const*, char const*, char const*, bool, void*) ()
   from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#5 0x00007ffff7436905 in Inkscape::XML::CompositeNodeObserver::notifyAttributeChanged(Inkscape::XML::Node&, unsigned int, Inkscape::Util::ptr_shared<char>, Inkscape::Util::ptr_shared<char>) ()
   from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#6 0x00007ffff7448ddd in Inkscape::XML::SimpleNode::setAttribute(char const*, char const*, bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#7 0x00007ffff758d806 in SPLPEItem::replacePathEffects(std::vector<LivePathEffectObject const*, std::allocator<LivePathEffectObject const*> > const&, std::vector<LivePathEffectObject const*, std::allocator<LivePathEffectObject const*> > const&) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#8 0x00007ffff758e2fb in SPLPEItem::forkPathEffectsIfNecessary(unsigned int) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#9 0x00007ffff74f5c50 in sp_selection_duplicate(SPDesktop*, bool, bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#10 0x00007ffff6fbe102 in sp_action_perform(SPAction*, void*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#11 0x00007ffff750d11d in sp_shortcut_invoke(unsigned int, Inkscape::UI::View::View*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#12 0x00007ffff5b6759b in ?? () from /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#13 0x00007ffff4e1bc4c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#14 0x00007ffff31d23b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff31e3fd1 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff31eb6f9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff31ebce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff4f44974 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff4e1a1af in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff4e1b91a in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff4a1fc22 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#22 0x00007ffff643ae04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff643b048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff643b30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff4e1ae25 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0

2. Deleting the path (not just the path effect).

Program received signal SIGSEGV, Segmentation fault.
__GI___libc_free (mem=0x3b007475) at malloc.c:2929
2929 malloc.c: No such file or directory.
(gdb) bt
#0 __GI___libc_free (mem=0x3b007475) at malloc.c:2929
#1 0x00007ffff708271d in Inkscape::LivePathEffect::LPEObjectReference::unlink() () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#2 0x00007ffff758e569 in SPLPEItem::set(unsigned int, char const*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#3 0x00007ffff75ad8d8 in SPPath::set(unsigned int, char const*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#4 0x00007ffff75a69b4 in SPObject::repr_attr_changed(Inkscape::XML::Node*, char const*, char const*, char const*, bool, void*) ()
   from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#5 0x00007ffff7436905 in Inkscape::XML::CompositeNodeObserver::notifyAttributeChanged(Inkscape::XML::Node&, unsigned int, Inkscape::Util::ptr_shared<char>, Inkscape::Util::ptr_shared<char>) ()
   from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#6 0x00007ffff7448ddd in Inkscape::XML::SimpleNode::setAttribute(char const*, char const*, bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#7 0x00007ffff758c91d in SPLPEItem::removeAllPathEffects(bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#8 0x00007ffff75a8a3a in SPObject::deleteObject(bool, bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#9 0x00007ffff74edec6 in sp_selection_delete(SPDesktop*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#10 0x00007ffff6fbe102 in sp_action_perform(SPAction*, void*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#11 0x00007ffff750d11d in sp_shortcut_invoke(unsigned int, Inkscape::UI::View::View*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#12 0x00007ffff5b6759b in ?? () from /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#13 0x00007ffff4e1bc4c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#14 0x00007ffff31d23b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff31e3fd1 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff31eb6f9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff31ebce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff4f44974 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff4e1a1af in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff4e1b91a in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff4a1fc22 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#22 0x00007ffff643ae04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff643b048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff643b30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff4e1ae25 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00000000004093e0 in sp_main_gui(int, char const**) ()

3. Deleting just the path effect that is on the path.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff538def0 in sigc::internal::slot_rep::disconnect() () from /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0
(gdb) bt
#0 0x00007ffff538def0 in sigc::internal::slot_rep::disconnect() () from /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0
#1 0x00007ffff7542d12 in Inkscape::URIReference::detach() () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#2 0x00007ffff758e569 in SPLPEItem::set(unsigned int, char const*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#3 0x00007ffff75ad8d8 in SPPath::set(unsigned int, char const*) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#4 0x00007ffff75a69b4 in SPObject::repr_attr_changed(Inkscape::XML::Node*, char const*, char const*, char const*, bool, void*) ()
   from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#5 0x00007ffff7436905 in Inkscape::XML::CompositeNodeObserver::notifyAttributeChanged(Inkscape::XML::Node&, unsigned int, Inkscape::Util::ptr_shared<char>, Inkscape::Util::ptr_shared<char>) ()
   from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#6 0x00007ffff7448ddd in Inkscape::XML::SimpleNode::setAttribute(char const*, char const*, bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#7 0x00007ffff758ce58 in SPLPEItem::removeCurrentPathEffect(bool) () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#8 0x00007ffff7288540 in Inkscape::UI::Dialog::LivePathEffectEditor::onRemove() () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#9 0x00007ffff55df038 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#10 0x00007ffff31d23b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff31e3fd1 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff31eba29 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff31ebce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff4d517e8 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#15 0x00007ffff31d25e7 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff31eb088 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff31ebce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff4d506a1 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff4e1bd3e in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff31d25e7 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007ffff31eb088 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007ffff31ebce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007ffff4f44974 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007ffff4e1a08c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007ffff4e1b91a in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007ffff4a1fc22 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0

Jabiertxof (jabiertxof) on 2016-10-14
Changed in inkscape:
assignee: nobody → Jabiertxof (jabiertxof)
Shlomi Fish (shlomif-gmail) wrote :

Hi all!

Bisection shows that the problematic commit is:

revno: 14148
committer: tavmjong-free <email address hidden>
branch nick: inkscape
timestamp: Tue 2015-05-12 21:43:24 +0200
message:
  GUI for font-variant-xxx, parse 'font-variant-ligatures'. This is a work in progress.

Jabiertxof (jabiertxof) wrote :

Fix released on 15170

Changed in inkscape:
status: New → Confirmed
status: Confirmed → Fix Released
Jabiertxof (jabiertxof) wrote :

Its a trunk bug. 0.92.x not have it. Is a bug because the merge of measure line LPE

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments