After upgrading from mimalloc 0.1.48 to 0.1.49 (which bumps libmimalloc-sys from 0.1.44 to 0.1.46), our CI on windows-11-arm (aarch64-pc-windows-msvc) started producing a deterministic STATUS_ACCESS_VIOLATION crash mid-test-run.
Repository (rama-cli project within that workspace): https://github.com/plabayo/rama
Symptoms
- Test binary using
MiMalloc as global allocator crashes with exit code 0xc0000005
- Crash is deterministic: always the same test at the same position in the run
- The crashing test body is trivially simple: stack struct construction + a
vec![...] allocation + a pure function call with no I/O or unsafe code
- Prior tests always succeed, suggesting heap corruption accumulates over prior allocations before manifesting
Reproduction
We use mimalloc as global allocator in a Rust CLI binary:
#[global_allocator]
static ALLOC: mimalloc::MiMalloc = mimalloc::MiMalloc;
Running cargo nextest run --all-features on windows-11-arm (GitHub Actions runner) reproduces consistently. Pinning back to mimalloc = "=0.1.48" / libmimalloc-sys = "0.1.44" fixes it immediately.
Environment
- OS: Windows 11 ARM (
aarch64-pc-windows-msvc)
- Runner: GitHub Actions
windows-11-arm
- Rust: stable
- Broken:
mimalloc 0.1.49 + libmimalloc-sys 0.1.46
- Working:
mimalloc 0.1.48 + libmimalloc-sys 0.1.44
Workaround
Pin the dependency in Cargo.toml:
mimalloc = { version = "=0.1.48", default-features = false }
After upgrading from
mimalloc 0.1.48to0.1.49(which bumpslibmimalloc-sysfrom0.1.44to0.1.46), our CI onwindows-11-arm(aarch64-pc-windows-msvc) started producing a deterministicSTATUS_ACCESS_VIOLATIONcrash mid-test-run.Repository (rama-cli project within that workspace): https://github.com/plabayo/rama
Symptoms
MiMallocas global allocator crashes with exit code0xc0000005vec![...]allocation + a pure function call with no I/O or unsafe codeReproduction
We use mimalloc as global allocator in a Rust CLI binary:
Running
cargo nextest run --all-featuresonwindows-11-arm(GitHub Actions runner) reproduces consistently. Pinning back tomimalloc = "=0.1.48"/libmimalloc-sys = "0.1.44"fixes it immediately.Environment
aarch64-pc-windows-msvc)windows-11-armmimalloc 0.1.49+libmimalloc-sys 0.1.46mimalloc 0.1.48+libmimalloc-sys 0.1.44Workaround
Pin the dependency in
Cargo.toml: