Random crashes in cairo upon zooming/panning

"

Summary:

Frequent crash when zooming or panning with filter gallery open. Likely a regression from 1.4.x (can't reproduce there after trying for quite a while).

Steps to reproduce:

  • open test file with Inkscape
  • open filter gallery (I'm not 100% sure if tihis is necessary, but I haven't been able to reproduce otherwise)
  • zoom around the filtered object

What happened?

Crash

Thread 1 "inkscape-dev" received signal SIGSEGV, Segmentation fault.
0x00007ffff55a356c in _cairo_clip_intersect_clip () from /lib64/libcairo.so.2
(gdb) bt
#0  0x00007ffff55a356c in _cairo_clip_intersect_clip () at /lib64/libcairo.so.2
#1  0x00007ffff55ee395 in _cairo_surface_wrapper_get_clip.lto_priv.0 () at /lib64/libcairo.so.2
#2  0x00007ffff55eff1c in _cairo_surface_wrapper_paint () at /lib64/libcairo.so.2
#3  0x00007ffff55e0c8f in _cairo_recording_surface_replay_internal.lto_priv.0 () at /lib64/libcairo.so.2
#4  0x00007ffff55ecc24 in clip_and_composite_boxes.part () at /lib64/libcairo.so.2
#5  0x00007ffff55ed005 in _cairo_spans_compositor_mask.lto_priv.0 () at /lib64/libcairo.so.2
#6  0x00007ffff55a23a1 in _cairo_compositor_paint () at /lib64/libcairo.so.2
#7  0x00007ffff55f8a9f in _cairo_surface_paint () at /lib64/libcairo.so.2
#8  0x00007ffff55ade7e in _cairo_gstate_paint () at /lib64/libcairo.so.2
#9  0x00007ffff5602ef1 in cairo_paint () at /lib64/libcairo.so.2
#10 0x00007ffff3e1cfd2 in gsk_render_node_draw_ccs () at /lib64/libgtk-4.so.1
#11 0x00007ffff3e1d436 in gsk_render_node_draw_fallback () at /lib64/libgtk-4.so.1
#12 0x00007ffff3e93243 in gsk_gpu_upload_cairo_op_draw () at /lib64/libgtk-4.so.1
#13 0x00007ffff3e96567 in gsk_gpu_upload_op_vk_command_with_area () at /lib64/libgtk-4.so.1
#14 0x00007ffff3e9679d in gsk_gpu_upload_cairo_op_vk_command () at /lib64/libgtk-4.so.1
#15 0x00007ffff3e9c6dc in gsk_vulkan_frame_submit.lto_priv () at /lib64/libgtk-4.so.1
#16 0x00007ffff3e9aaaf in gsk_gpu_renderer_render () at /lib64/libgtk-4.so.1
#17 0x00007ffff3e21899 in gsk_renderer_render () at /lib64/libgtk-4.so.1
#18 0x00007ffff3c022e4 in gtk_widget_render () at /lib64/libgtk-4.so.1
#19 0x00007ffff3c03519 in surface_render () at /lib64/libgtk-4.so.1
#20 0x00007ffff3d6e899 in _gdk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-4.so.1
#21 0x00007ffff5afc55c in signal_emit_valist_unlocked () at /lib64/libgobject-2.0.so.0
#22 0x00007ffff5afc671 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#23 0x00007ffff5afc733 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#24 0x00007ffff3dff629 in gdk_surface_paint_on_clock () at /lib64/libgtk-4.so.1
#25 0x00007ffff5adb7da in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#26 0x00007ffff5b0b8f3 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#27 0x00007ffff5afc3e9 in signal_emit_valist_unlocked () at /lib64/libgobject-2.0.so.0
#28 0x00007ffff5afc671 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#29 0x00007ffff5afc733 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#30 0x00007ffff3de3ccd in gdk_frame_clock_paint_idle () at /lib64/libgtk-4.so.1
#31 0x00007ffff51dd519 in g_timeout_dispatch () at /lib64/libglib-2.0.so.0
#32 0x00007ffff51d728c in g_main_context_dispatch_unlocked.lto_priv () at /lib64/libglib-2.0.so.0
#33 0x00007ffff52377b8 in g_main_context_iterate_unlocked.isra () at /lib64/libglib-2.0.so.0
#34 0x00007ffff51d8783 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#35 0x00007ffff46e0dcd in g_application_run () at /lib64/libgio-2.0.so.0
#36 0x0000000000205348 in main (argc=<optimized out>, argv=<optimized out>) at /usr/include/c++/14/bits/shared_ptr_base.h:1666

What should have happened?

No crash

Sample attachments:

Version info

Inkscape 1.5-dev (36259df9a4, 2024-12-19, custom)

                      Compile  (Run)
    GLib version:     2.82.2
    GTK version:      4.16.3 (4.16.3)
    glibmm version:   2.82.0
    gtkmm version:    4.16.0
    libxml2 version:  2.12.8
    libxslt version:  1.1.42
    Cairo version:    1.18.0 (1.18.0)
    Pango version:    1.54.0 (1.54.0)
    HarfBuzz version: 9.0.0 (9.0.0)
    Poppler version:  24.08.0

    OS version:       Fedora Linux 41 (Workstation Edition)

"

Edited by KrIr17