Skip to content

0xc0000005 access violation on aarch64-pc-windows-msvc after upgrade to 0.1.49 / libmimalloc-sys 0.1.46 #159

@GlenDC

Description

@GlenDC

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 }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions