Skip to content

AddressSanitizer: resvg 0.47.0 type mismatch on nightly Rust #287

Description

@bpowers

Problem

The AddressSanitizer Testing (pysimlin) CI job fails due to a type mismatch in the resvg 0.47.0 crate. In src/filter/iir_blur.rs lines 61-65, the code passes &mut [Rgba<u8>] where &mut [u8] is expected by the gaussian_channel() function.

This only manifests with cargo +nightly (used by the ASan build), not with stable Rust. The AddressSanitizer Testing (Full Rust Suite) job succeeds, suggesting different dependency resolution or compilation behavior between nightly and stable.

Impact

  • AddressSanitizer Testing (pysimlin) CI job is failing
  • ASan testing of pysimlin bindings cannot run
  • The issue is in an upstream dependency (resvg), not in our code

Root Cause

This is an upstream bug in the resvg crate, not a simlin issue. The type mismatch indicates incompatibility between resvg 0.47.0 and recent nightly Rust versions.

Possible Solutions

  1. Pin resvg to a version known to work with nightly (if one exists)
  2. Exclude resvg from ASan builds (if ASan testing can proceed without it)
  3. Wait for upstream resvg fix and upgrade when available
  4. Upgrade to a newer resvg version that may have fixed the issue

Context

CI run: https://github.com/bpowers/simlin/actions/runs/22269308727/job/64420984854

Identified while investigating CI infrastructure and build compatibility.

Activity

  1. added
    ciCI, build pipeline, test hygiene
    on Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciCI, build pipeline, test hygiene

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions