Skip to content

Undo crash after applying roughen LPE to clone

Summary:

Inkscape crashes when undoing after applying a roughen LPE to a clone.

Steps to reproduce:

  1. Create an ellipse
  2. Clone it
  3. Add a roughen LPE to the clone
  4. Undo
  5. Undo

What happened?

Crash on step 5 due to an assertion failure, with backtrace

 6# g_assertion_message_expr
 7# Inkscape::XML::SimpleNode::removeChild(Inkscape::XML::Node*)
 8# 0x00007F1A73830919
 9# Inkscape::XML::EventAdd::_undoOne(Inkscape::XML::NodeObserver&) const
10# Inkscape::XML::undo_log_to_observer(Inkscape::XML::Event const*, Inkscape::XML::NodeObserver&)
11# sp_repr_undo_log(Inkscape::XML::Event*)
12# Inkscape::DocumentUndo::undo(SPDocument*)
13# undo(SPDocument*)

This isn't very revealing; whatever went wrong probably happened earlier.

Version info

Custom build based on inkscape@294db481 (with extra commits, but these shouldn't make a difference), on Arch Linux.

Notes

  • Found while testing inkscape#4284 (closed).
  • A similar-looking bug is inkscape#1408, but I couldn't reproduce that, and the backtraces differ.
  • Doesn't seem to depend on dialogs state.
  • This crash is an assertion failure, and assertions are disabled in non-debug builds, so be sure to test with a debug build. Or else the crash will probably be non-deterministic, occur later, and have a different backtrace.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information