Crash with multiple windows open, unknown cause
Steps to reproduce:
- I had 2-4 windows open (of the same file, bg.svg from inkscape#781)
- I believe while closing one of the windows, the crash happened
What happened?
Crash, coredump attached. There is one immediate fix apparent in the backtrace, but there may be a bigger problem here.
Potential patch MERGED inkscape@66d3f78b . Doesn't really identify the cause though, and may keep Inkscape in buggy state.
Backtrace: inkscape-backtrace-unknown.txt
Truncated backtrace:
#0 Inkscape::UI::Widget::Canvas::forced_redraws_stop (this=0x0) at ../src/ui/widget/canvas.h:100
100 void forced_redraws_stop() { _forced_redraw_limit = -1; }
[Current thread is 1 (Thread 0x7fbca508fb40 (LWP 227380))]
(gdb) bt
#0 Inkscape::UI::Widget::Canvas::forced_redraws_stop() (this=0x0) at ../src/ui/widget/canvas.h:100
#1 Inkscape::Rubberband::stop() (this=0x556f7dab8fd0) at ../src/rubberband.cpp:74
#2 0x00007fbcacf9ed10 in Inkscape::UI::Tools::SelectTool::root_handler(_GdkEvent*) (this=0x556f835a6ae0, event=0x556f8095cda0) at ../src/ui/tools/select-tool.cpp:785
#3 0x00007fbcacfbc8fb in Inkscape::UI::Tools::sp_event_context_virtual_root_handler(Inkscape::UI::Tools::ToolBase*, _GdkEvent*)
(event_context=event_context@entry=0x556f835a6ae0, event=event@entry=0x556f8095cda0) at ../src/ui/tools/tool-base.cpp:1161
(gdb) frame 1
#1 Inkscape::Rubberband::stop (this=0x556f7dab8fd0) at ../src/rubberband.cpp:74
warning: Source file is more recent than executable.
74 _desktop->getCanvas()->forced_redraws_stop();
(gdb) p _desktop
$1 = (SPDesktop *) 0x556f7d825540
(gdb) p _desktop->canvas
$2 = (Inkscape::UI::Widget::Canvas *) 0x0
(gdb) frame 2
#2 0x00007fbcacf9ed10 in Inkscape::UI::Tools::SelectTool::root_handler (this=0x556f835a6ae0, event=0x556f8095cda0) at ../src/ui/tools/select-tool.cpp:785
785 Inkscape::Rubberband::get(desktop)->stop(); // might have been started in another tool!
(gdb) p desktop
$1 = (SPDesktop *) 0x556f7aeeca80
(gdb) frame 17
#17 0x00007fbcad267ea2 in Inkscape::UI::Widget::Canvas::emit_event (this=this@entry=0x556f79e26000, event=event@entry=0x556f80954220)
at ../src/ui/widget/canvas.cpp:1695
1695 finished = item->handle_event(event_copy);
(gdb) p *this
(gdb) p _desktop
$5 = (SPDesktop *) 0x556f7aeeca80
(gdb)
What should have happened?
No crash
Version Info:
- Inkscape 1.1-dev (9e41ff21b6, 2020-12-18) Debug build Linux Mint 20
Configuration Summary
------------------------------------------------------------------------
CMAKE_SYSTEM_NAME: Linux
CMAKE_SYSTEM_VERSION: 5.4.0-42-generic
CMAKE_SYSTEM_PROCESSOR: x86_64
CMAKE_C_COMPILER: /usr/bin/cc
CMAKE_CXX_COMPILER: /usr/bin/c++
CMAKE_BUILD_TYPE: Debug
ENABLE_LCMS: ON
ENABLE_POPPLER: ON
ENABLE_POPPLER_CAIRO: ON
WITH_GNU_READLINE: ON
WITH_DBUS: OFF
WITH_GSPELL: ON
WITH_IMAGE_MAGICK: ON
WITH_GRAPHICS_MAGICK: OFF
WITH_LIBCDR: ON
WITH_LIBVISIO: ON
WITH_LIBWPG: ON
WITH_NLS: ON
WITH_OPENMP: ON
WITH_JEMALLOC: OFF
WITH_INTERNAL_2GEOM: ON
WITH_PROFILING: OFF
BUILD_TESTING: ON
Edited by Nathan Lee