Skip to content

[Bug]: Native binding segfault on require() + clean exit (regression 2.0.0 → 2.0.1, win32-arm64-msvc) #13925

Description

@robrobrobrob

System Info

OS | Windows 11 Pro (ARM) — 10.0.26200.8246
Node | v22.22.2 (arm64)
Rspack | 2.0.1 (regression introduced here)
Last working version | 2.0.0
Architecture | aarch64-pc-windows-msvc

Details

Bisect
Tested against @rspack/binding-win32-arm64-msvc versions in isolation:

Version Result
1.0.0 exit 0 ✓
1.5.0 exit 0 ✓
1.7.11 exit 0 ✓
2.0.0-rc.0 exit 0 ✓
2.0.0-rc.3 exit 0 ✓
2.0.0 exit 0 ✓
2.0.1 segfault, exit 139 ✗
Same regression also breaks SWC minifier
In a real project, SwcJsMinimizerRspackPlugin crashes mid-build on the same platform with the same access violation:

// minimal hello.js entry, mode: production
new rspack.SwcJsMinimizerRspackPlugin()
Crashes silently mid-build on 2.0.1; works fine on 2.0.0.

Likely cause
The 2.0.1 release notes mention chore: upgrade swc_core from 64 to 65. Likely candidates: a Drop impl introduced in swc_core 0.65, or an arm64-windows codegen path that's hit during native teardown / minifier execution.

Workaround
Pin to @rspack/core@2.0.0 + @rspack/cli@2.0.0 (binding follows).

Reproduce link

No response

Reproduce Steps

Reproduction
mkdir rspack-segfault && cd rspack-segfault
npm init -y
npm install @rspack/binding-win32-arm64-msvc@2.0.1
node -e "require('@rspack/binding-win32-arm64-msvc'); console.log('about to exit')"
Expected: exit 0
Actual: prints about to exit, then Segmentation fault and exits 139 (STATUS_ACCESS_VIOLATION / 0xC0000005)

Metadata

Metadata

Assignees

Labels

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions