Crash on preview of large file in 1.0alpha
Steps to reproduce:
- Get a large file, 20MB is big enough for me but let's say 100MB. If you're on linux, this test file is adequate
dd if=/dev/zero count=100 bs=1M of=~/test.blank
. I first encountered this on a large pdf. - open Inkscape
- Ctrl+O (open file)
- Select the large file (don't need to open it)
What happened?
Inkscape crashes on trying to preview the file. On my latest build (Inkscape 1.0alpha (6277f030, 2019-02-14, custom, up to date to about this week) on Lubuntu (Ubuntu 18.04.2) I get this:
Thread 1 "inkscape" received signal SIGSEGV, Segmentation fault.
__strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120
120 ../sysdeps/x86_64/multiarch/../strlen.S: No such file or directory.
(gdb) bt
#0 0x00007ffff3df3646 in __strlen_sse2 ()
at ../sysdeps/x86_64/multiarch/../strlen.S:120
#1 0x00007ffff3d9f4d3 in _IO_vfprintf_internal (s=s@entry=0x7fffffffa9c0, format=format@entry=0x7ffff77726d0 "\n<svg width=\"400\" height=\"600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <g transform=\"translate(-160,90)\" style=\"opacity:0.10\">\n <path style=\"fill:"..., ap=ap@entry=0x7fffffffab30) at vfprintf.c:1643
#2 0x00007ffff3e76411 in __GI___vasprintf_chk (result_ptr=0x7fffffffab10, flags=1, format=0x7ffff77726d0 "\n<svg width=\"400\" height=\"600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <g transform=\"translate(-160,90)\" style=\"opacity:0.10\">\n <path style=\"fill:"..., args=0x7fffffffab30) at vasprintf_chk.c:66
#3 0x00007ffff5dd3279 in g_vasprintf ()
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff5dad51d in g_strdup_vprintf ()
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff5dad5d9 in g_strdup_printf ()
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6 0x00007ffff71204cd in Inkscape::UI::Dialog::SVGPreview::showTooLarge(long) () at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#7 0x00007ffff71262ac in Inkscape::UI::Dialog::SVGPreview::set(Glib::ustring&, int) () at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#8 0x00007ffff71266cf in Inkscape::UI::Dialog::FileDialogBaseGtk::_updatePrevie---Type <return> to continue, or q <return> to quit---
wCallback() ()
at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#9 0x00007ffff5025548 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#10 0x00007ffff1c2a10d in g_closure_invoke ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff1c3cbf1 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff1c45715 in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff1c46608 in g_signal_emit_by_name ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff1c2a10d in g_closure_invoke ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff1c3d05e in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff1c45715 in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff1c46608 in g_signal_emit_by_name ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff4682195 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff4685cc0 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff1c2a346 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007ffff1c459ff in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#22 0x00007ffff1c4612f in g_signal_emit ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x00007ffff481b1c8 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007ffff48224e9 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007fffe9e34dae in ffi_call_unix64 ()
at /usr/lib/x86_64-linux-gnu/libffi.so.6
#26 0x00007fffe9e3471f in ffi_call () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#27 0x00007ffff1c2aced in g_cclosure_marshal_generic_va ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ffff1c2a346 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#29 0x00007ffff1c459ff in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff1c4612f in g_signal_emit ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff46a47fc in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x00007ffff1c2d008 in g_cclosure_marshal_VOID__BOXEDv ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#33 0x00007ffff1c2a346 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#34 0x00007ffff1c459ff in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#35 0x00007ffff1c4612f in g_signal_emit ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#36 0x00007ffff46a178e in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
---Type <return> to continue, or q <return> to quit---
#37 0x00007ffff46a2cdb in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007ffff46a599e in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#39 0x00007ffff46731e1 in gtk_event_controller_handle_event ()
at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#40 0x00007ffff483285b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#41 0x00007ffff46ed15b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#42 0x00007ffff1c2a10d in g_closure_invoke ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#43 0x00007ffff1c3cde8 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#44 0x00007ffff1c450af in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#45 0x00007ffff1c4612f in g_signal_emit ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#46 0x00007ffff4834b04 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#47 0x00007ffff46ea1ce in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#48 0x00007ffff46ec2a8 in gtk_main_do_event ()
at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#49 0x00007fffef043765 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#50 0x00007fffef073f82 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#51 0x00007ffff5d8e387 in g_main_context_dispatch ()
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff5d8e5c0 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007ffff5d8e8d2 in g_main_loop_run ()
---Type <return> to continue, or q <return> to quit---
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007ffff465a8a3 in gtk_dialog_run ()
at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#55 0x00007ffff7121dec in Inkscape::UI::Dialog::FileOpenDialogImplGtk::show() () at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#56 0x00007ffff7444070 in sp_file_open_dialog(Gtk::Window&, void*, void*) ()
at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#57 0x00007ffff75111dc in Inkscape::FileVerb::perform(SPAction*, void*) ()
at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#58 0x00007ffff6d1270b in sp_action_perform(SPAction*, void*) ()
at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#59 0x00007ffff74cd4e0 in sp_shortcut_invoke(unsigned int, Inkscape::UI::View::View*) ()
at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#60 0x00007ffff59a41cb in () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#61 0x00007ffff46ed15b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#62 0x00007ffff1c2a10d in g_closure_invoke ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#63 0x00007ffff1c3cbf1 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#64 0x00007ffff1c450af in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#65 0x00007ffff1c4612f in g_signal_emit ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#66 0x00007ffff4834b04 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#67 0x00007ffff485548b in gtk_window_propagate_key_event ()
at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#68 0x00007ffff4858e7b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#69 0x00007ffff59a0897 in Gtk::Widget::on_key_press_event(_GdkEventKey*) ()
at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#70 0x00007ffff75188f1 in InkscapeWindow::on_key_press_event(_GdkEventKey*) ()
at /home/nathanal/inkscape/inst/bin/../lib/inkscape/libinkscape_base.so
#71 0x00007ffff59a2ab4 in Gtk::Widget_Class::key_press_event_callback(_GtkWidget*, _GdkEventKey*) () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#72 0x00007ffff46ed257 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#73 0x00007ffff1c2a346 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#74 0x00007ffff1c453cd in g_signal_emit_valist ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#75 0x00007ffff1c4612f in g_signal_emit ()
at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#76 0x00007ffff4834b04 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#77 0x00007ffff46ea29f in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#78 0x00007ffff46ec2a8 in gtk_main_do_event ()
at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#79 0x00007fffef043765 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#80 0x00007fffef073f82 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#81 0x00007ffff5d8e387 in g_main_context_dispatch ()
---Type <return> to continue, or q <return> to quit---
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#82 0x00007ffff5d8e5c0 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#83 0x00007ffff5d8e64c in g_main_context_iteration ()
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#84 0x00007ffff60fae3d in g_application_run ()
at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#85 0x00007ffff3d63b97 in __libc_start_main (main=
0x5555555616f0 <main>, argc=1, argv=0x7fffffffdfc8, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffffffdfb8)
at ../csu/libc-start.c:310
#86 0x00005555555618ea in _start ()
(gdb)
What should have happened?
Error handling should not crash inkscape. In Inkscape 0.92.4 (ppa, Linux Mint 18.3) It shows the inkscape logo and 20.0 MB too large for preview
Inkscape Version and Operating System:
- Inkscape Version: Inkscape 1.0alpha (9dee831c, 2019-01-15) appimage
- Operating System: Linux Mint 18.3
- Operating System version: 18.3
Note it also fails on a 1.0alpha custom build (up to date ~ 1 week ago) but not in 0.92.4
I've checked launchpad and Gitlab with the search terms "large" and "preview" without seeing obvious duplicates
Edit: Oops, this issues seems to be confidential. Struggling to find an undo button