`Docker Build`: address QEMU arm64 SIGILL crashes
Author: mtrezzaCreated Sep 27, 2026Updated Sep 27, 2026
Issue
Part of #10681.
The Docker image is built for linux/amd64 and linux/arm64/v8 on an x64 runner, so the arm64 build runs under QEMU emulation. Node.js intermittently crashes under emulation during the first npm ci of the arm64 build:
#20 [linux/arm64 build 6/6] RUN npm ci --omit=dev --ignore-scripts && cp -R node_modules prod_node_modules && npm ci && npm run build
#20 34.76 qemu: uncaught target signal 4 (Illegal instruction) - core dumped
#20 41.32 Illegal instruction (core dumped)
#20 ERROR: ... did not complete successfully: exit code: 132- Since the first occurrence on 2025-10-01, 329 of 3,078 completed
Docker Buildjobs failed with this crash (10.7%). Runs before 2025-08-11 are no longer available. - The crash only occurs on runners with an AVX-512 CPU (listed by buildx as
linux/amd64/v4). Of the jobs with retained logs, all 79 crashes ran on such a runner, and none of 386 jobs on other runners crashed. This points to QEMU's x64 code generation, not to Node.js or the dependencies. The crash already occurred in October 2025, months beforetonistiigi/binfmt:latestmoved to the current QEMU 10.2.3 in June 2026, so pinning a QEMU version is not a reliable fix. - The Docker release job in
release-automated.ymlbuilds the same way and failed with this crash 43 times. A failed build publishes the image for neither platform. For example,9.10.1is missing on Docker Hub andlateststill points to9.10.0. Docker Buildis a required check onbeta,releaseandrelease-8.x.x(not onalpha), so a crash also blocks merging into these branches.
Source: parse-community/parse-server