librsvg crashing w/ GNOME Software on Alpine Linux
Hello,
I've recently tried to package GNOME Software in Alpine Linux but it SIGSEGVs. The backtrace only contains librsvg and cairo, so I figured reporting it here makes sense.
Here's the backtrace:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007ffbdf330a2c in composite_boxes (compositor=compositor@entry=0x7ffbdf3cc920 <spans>, extents=extents@entry=0x7ffbdd9c76f0, boxes=boxes@entry=0x7ffbdd9c72d0) at cairo-spans-compositor.c:720
720 cairo-spans-compositor.c: No such file or directory.
[Current thread is 1 (LWP 28750)]
#0 0x00007ffbdf330a2c in composite_boxes (compositor=compositor@entry=0x7ffbdf3cc920 <spans>, extents=extents@entry=0x7ffbdd9c76f0, boxes=boxes@entry=0x7ffbdd9c72d0) at cairo-spans-compositor.c:720
#1 0x00007ffbdf33112c in clip_and_composite_boxes (compositor=compositor@entry=0x7ffbdf3cc920 <spans>, extents=extents@entry=0x7ffbdd9c76f0, boxes=0x7ffbdd9c72d0) at cairo-spans-compositor.c:887
#2 0x00007ffbdf3316c3 in clip_and_composite_boxes (compositor=0x7ffbdf3cc920 <spans>, extents=0x7ffbdd9c76f0, boxes=0x7ffbdd9c72d0) at cairo-spans-compositor.c:844
#3 0x00007ffbdf331a6c in _cairo_spans_compositor_fill (_compositor=0x7ffbdf3cc920 <spans>, extents=0x7ffbdd9c76f0, path=0x55cc232b9b38, fill_rule=<optimized out>, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT) at cairo-spans-compositor.c:1126
#4 0x00007ffbdf2ff7e2 in _cairo_compositor_fill (compositor=0x7ffbdf3cc920 <spans>, surface=0x55cc23284000, op=<optimized out>, source=<optimized out>, path=0x55cc232b9b38, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x55cc232762e0) at cairo-compositor.c:203
#5 0x00007ffbdf30cc89 in _cairo_image_surface_fill (abstract_surface=<optimized out>, op=<optimized out>, source=<optimized out>, path=<optimized out>, fill_rule=<optimized out>, tolerance=<optimized out>, antialias=<optimized out>, clip=0x55cc232762e0) at cairo-image-surface.c:987
#6 0x00007ffbdf33a906 in _cairo_surface_fill (clip=0x55cc232762e0, antialias=CAIRO_ANTIALIAS_DEFAULT, tolerance=0.10000000000000001, fill_rule=CAIRO_FILL_RULE_WINDING, path=0x55cc232b9b38, source=0x7ffbdd9c7ac0, op=CAIRO_OPERATOR_OVER, surface=0x55cc23284000) at cairo-surface.c:2422
#7 _cairo_surface_fill (surface=0x55cc23284000, op=op@entry=CAIRO_OPERATOR_OVER, source=source@entry=0x7ffbdd9c7ac0, path=path@entry=0x55cc232b9b38, fill_rule=CAIRO_FILL_RULE_WINDING, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x55cc232762e0) at cairo-surface.c:2391
#8 0x00007ffbdf305b30 in _cairo_gstate_fill (gstate=0x55cc232b1c40, path=path@entry=0x55cc232b9b38) at cairo-gstate.c:1312
#9 0x00007ffbdf300a21 in _cairo_default_context_fill (abstract_cr=0x55cc232b97c0) at cairo-default-context.c:1055
#10 0x00007ffbdf34457e in cairo_fill (cr=0x55cc232b97c0) at cairo.c:2422
#11 0x00007ffbdc2bc782 in <alloc::boxed::Box<T> as core::convert::AsRef<T>>::as_ref (self=0x55cc232b9e70) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/liballoc/boxed.rs:1121
#12 rsvg_internals::node::NodeData::get_node_trait (self=0x55cc232b9808) at rsvg_internals/src/node.rs:66
#13 rsvg_internals::filters::render::{{closure}} (c=0x7ffbdd9c88b0) at rsvg_internals/src/filters/mod.rs:300
#14 core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut (self=<optimized out>, args=...) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/ops/function.rs:274
#15 core::iter::traits::iterator::Iterator::find::check::{{closure}} (x=...) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/traits/iterator.rs:1994
#16 core::iter::adapters::filter_try_fold::{{closure}} (item=..., acc=<optimized out>) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/adapters/mod.rs:837
#17 core::iter::traits::iterator::Iterator::try_fold (self=<optimized out>, init=<optimized out>, f=...) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/traits/iterator.rs:1710
#18 <core::iter::adapters::Filter<I,P> as core::iter::traits::iterator::Iterator>::try_fold (self=<optimized out>, init=<optimized out>, fold=...) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/adapters/mod.rs:880
#19 core::iter::traits::iterator::Iterator::find (self=<optimized out>, predicate=<optimized out>) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/traits/iterator.rs:1999
#20 <core::iter::adapters::Filter<I,P> as core::iter::traits::iterator::Iterator>::next (self=<optimized out>) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/adapters/mod.rs:846
#21 <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::next (self=<optimized out>) at /home/buildozer/aports/community/rust/src/rustc-1.41.0-src/src/libcore/iter/adapters/mod.rs:720
#22 rsvg_internals::filters::render (filter_node=<optimized out>, computed_from_node_being_filtered=<optimized out>, source=0x7ffbdd9c7f20, draw_ctx=<optimized out>, node_bbox=...) at rsvg_internals/src/filters/mod.rs:313
#23 rsvg_internals::drawing_ctx::DrawingCtx::run_filter (self=<optimized out>, filter_uri=<optimized out>, values=0x4054290000000000, child_surface=<optimized out>, node=<optimized out>, node_bbox=...) at rsvg_internals/src/drawing_ctx.rs:584
#24 rsvg_internals::drawing_ctx::DrawingCtx::with_discrete_layer::{{closure}} (dc=<optimized out>) at rsvg_internals/src/drawing_ctx.rs:469
#25 0x0000000000000000 in ()
We're using librsvg 2.64.4 with cairo 1.16.0 right now. See gnome-software#925 (closed) for the GNOME Software bugreport. Here's a log of running env RSVG_LOG=1 gnome-software
rsvg_log.txt
Thanks!