#1152988 rust-blosc2-sys: bundled bindings target c-blosc2 2.15; users segfault against libblosc2 3.4.1

#1152988#5
Date:
2026-11-04 04:41:01 UTC
From:
To:
Hi,

rust-blosc2-sys ships pre-generated bindings for c-blosc2 2.15
(src/bindings.rs), and the Debian package removes the
regenerate-bindings feature, but it links against the system libblosc2,
which is 3.4.1 in unstable. Code using it crashes at run time.

I hit this while enabling the rust-blosc2-rs autopkgtests (debcargo-conf
MR !1530, which also fixed #1150809). In a sid sbuild, with the
use-system-blosc2 feature (so -l blosc2 is passed and links fine):

   running 12 tests
   test tests::test_list_compressors ... ok
   test tests::test_get_version_string ... ok
   process didn't exit successfully: ... (signal: 11, SIGSEGV: invalid
memory reference)

All the referenced symbols (blosc2_compress, blosc2_decompress,
blosc2_cbuffer_sizes, blosc2_schunk_*, blosc2_get_complib_info) are
exported by libblosc2.so.3.4.1, so this looks like a layout/ABI mismatch
between the 2.15 bindings and the 3.4 headers rather than missing
functions. I haven't verified it struct by struct.

Possible fixes: regenerate the bindings against Debian's libblosc2-dev
headers at build time (bindgen), or refresh the bundled bindings for 3.x.

Separately, the per-feature autopkgtests that don't enable
use-system-blosc2 can't link at all (Debian's build.rs only links the
system library under that feature), so those test combinations should
probably be marked broken or always include use-system-blosc2.

Regards,
Ayushman