Inkscape crashes when Exporting a Large PNG File from an SVG with over 20 Layers (Intermittent)

Summary:

When I export a PNG of 16000 x 9000 px at 96 PPI through the Inkscape Editor on an SVG file that is a bunch of overlapping rectangles transitioning from red to green, the editor crashes, and I don't get a PNG file.

This is not an issue that happens in every SVG file; it's intermittent.

Steps to reproduce:

  • Open the SVG file from the Sample Attachments section at the bottom.
  • Open the Export Panel, either Shift + Ctrl + E, or the Open Export icon on the right-hand toolbar.
  • Make sure the width is 16000 px, and height is 9000 px, at 96 DPI.
  • Choose a file location easy to reach, such as Desktop.
  • Click "Export."

What happened?

I get this stack trace in the crash window:

 0# boost::stacktrace::basic_stacktrace >::init(unsigned long long, unsigned long long) in libinkscape_base
 1# Inkscape::Application::crash_handler(int) in libinkscape_base
 2# 0x00007FF6BE6B21B2 in inkscape
 3# _C_specific_handler in ntdll
 4# _chkstk in ntdll
 5# _RtlRaiseException in ntdll
 6# _KiUserExceptionDispatcher in ntdll
 7# _memcpy in msvcrt
 8# ink_cairo_surface_copy(_cairo_surface*) in libinkscape_base
 9# Inkscape::Filters::FilterGaussian::render_cairo(Inkscape::Filters::FilterSlot&) const in libinkscape_base
10# Inkscape::Filters::Filter::render(Inkscape::DrawingItem const*, Inkscape::DrawingContext&, Inkscape::DrawingContext*, Inkscape::RenderContext&) const in libinkscape_base
11# Inkscape::DrawingItem::render(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
12# Inkscape::DrawingGroup::_renderItem(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
13# Inkscape::DrawingItem::render(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
14# Inkscape::DrawingGroup::_renderItem(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
15# Inkscape::DrawingItem::render(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
16# Inkscape::DrawingGroup::_renderItem(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
17# Inkscape::DrawingItem::render(Inkscape::DrawingContext&, Inkscape::RenderContext&, Geom::GenericRect const&, unsigned int, Inkscape::DrawingItem const*) const in libinkscape_base
18# Inkscape::Drawing::render(Inkscape::DrawingContext&, Geom::GenericRect const&, unsigned int, int) const in libinkscape_base
19# sp_generate_internal_bitmap(SPDocument*, Geom::Rect const&, double, std::vector >, bool, unsigned int const*, double) in libinkscape_base
20# PngTextList::add(char const*, char const*) in libinkscape_base
21# sp_export_png_file(SPDocument*, char const*, Geom::Rect const&, unsigned long, unsigned long, double, double, unsigned long, unsigned int (*)(float, void*), void*, bool, std::vector > const&, bool, int, int, int, int) in libinkscape_base
22# Inkscape::UI::Dialog::Export::exportRaster(Geom::Rect const&, unsigned long const&, unsigned long const&, float const&, unsigned int, Glib::ustring const&, bool, unsigned int (*)(float, void*), void*, Inkscape::Extension::Output*, std::vector >*) in libinkscape_base
23# Inkscape::UI::Dialog::SingleExport::onExport() in libinkscape_base
24# Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) in libglibmm_2_4_1
25# _g_closure_invoke in libgobject_2_0_0
26# _g_param_spec_variant in libgobject_2_0_0
27# _g_signal_emit_valist in libgobject_2_0_0
28# _g_signal_emit in libgobject_2_0_0
29# _gtk_button_clicked in libgtk_3_0
30# Gtk::Button_Class::released_callback(_GtkButton*) in libgtkmm_3_0_1
31# _g_closure_invoke in libgobject_2_0_0
32# _g_signal_emit_valist in libgobject_2_0_0
33# _g_signal_emit in libgobject_2_0_0
34# _gtk_builder_get_application in libgtk_3_0
35# _g_closure_invoke in libgobject_2_0_0
36# _g_signal_emit_valist in libgobject_2_0_0
37# _g_signal_emit in libgobject_2_0_0
38# _gtk_gesture_long_press_new in libgtk_3_0
39# _g_cclosure_marshal_VOID__BOXEDv in libgobject_2_0_0
40# _g_closure_invoke in libgobject_2_0_0
41# _g_signal_emit_valist in libgobject_2_0_0
42# _g_signal_emit in libgobject_2_0_0
43# _gtk_glade_catalog_init in libgtk_3_0
44# _gtk_gesture_handles_sequence in libgtk_3_0
45# _gtk_gesture_rotate_get_angle_delta in libgtk_3_0
46# _gtk_event_controller_handle_event in libgtk_3_0
47# _gtk_requisition_free in libgtk_3_0
48# Gtk::Widget::on_button_release_event(_GdkEventButton*) in libgtkmm_3_0_1
49# Gtk::Widget_Class::button_release_event_callback(_GtkWidget*, _GdkEventButton*) in libgtkmm_3_0_1
50# 0x00007FFEB1DD2F94 in libgtk_3_0
51# _g_closure_invoke in libgobject_2_0_0
52# _g_signal_emit_valist in libgobject_2_0_0
53# _g_signal_emit in libgobject_2_0_0
54# _gtk_requisition_copy in libgtk_3_0
55# _gtk_lock_button_set_permission in libgtk_3_0
56# _gtk_main_do_event in libgtk_3_0
57# _gdk_event_free in libgdk_3_0
58# _gdk_win32_drag_context_get_type in libgdk_3_0
59# _g_clear_list in libglib_2_0_0
60# _g_main_context_check in libglib_2_0_0
61# _g_main_context_iteration in libglib_2_0_0
62# _g_application_run in libgio_2_0_0
63# 0x00007FF6BE6B37BB in inkscape
64# 0x00007FF6BE6B12EE in inkscape
65# 0x00007FF6BE6B13E6 in inkscape
66# _BaseThreadInitThunk in KERNEL32
67# _RtlUserThreadStart in ntdll
System info Inkscape 1.3 (0e150ed6c4, 2023-07-21)
GLib version:     2.76.4
GTK version:      3.24.38
glibmm version:   2.66.6
gtkmm version:    3.24.7
libxml2 version:  2.11.4
libxslt version:  1.1.38
Cairo version:    1.17.7
Pango version:    1.50.14
HarfBuzz version: 8.0.1

OS version:       Windows 10 22H2

What should have happened?

A 16000 x 9000 px PNG file should appear in the location defined.

Sample attachments:

Red_to_Green_Overlapping_Rectangles_Minimalist_Wallpaper__2_.svg Inkscape_Crash_Image__Emphasized_

Version info

Inkscape 1.3. Additional version info is in the stack trace output above.

Computer and OS specs (only in case the issue is related to hardware)

Alienware 15 R3 Processor Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2.80 GHz Installed RAM 16.0 GB (15.9 GB usable) System type 64-bit operating system, x64-based processor Pen and touch No pen or touch input is available for this display

Edition Windows 10 Education Version 22H2 Installed on ‎01-‎Mar-‎2021 OS build 19045.3208 Experience Windows Feature Experience Pack 1000.19041.1000.0



Edited by Gregory Desrosiers