Skip to content

nodejs24 (v24.14.1) segfaults running @typespec/compiler; works on upstream Node 24 #17161

Description

@sebader

Describe the bug

The nodejs24 package shipped in Azure Linux 3.0 (v24.14.1) segfaults deterministically when running TypeSpec's compiler. The same version of TypeSpec running on official upstream Node 24.14.1 (node:24 / node:24-alpine Docker images) works fine. The distinguishing detail is that the Azure Linux build reports V8 as 13.6.233.17-node.44, while official upstream v24.14.1 reports 13.6.233.17-node.48 — i.e. this looks like a distro-specific Node patch.

This blocks internal Microsoft teams (mine and at least one neighboring team) from using mcr.microsoft.com/onebranch/azurelinux/build:3.0 as a TypeSpec-capable build image. We are currently working around it by pinning very old TypeSpec versions that happen not to trigger the V8 crash.

To Reproduce

docker run --rm mcr.microsoft.com/onebranch/azurelinux/build:3.0 bash -lc '
mkdir -p /tmp/mre && cd /tmp/mre
echo "{\"dependencies\":{\"@typespec/compiler\":\"1.11.0\"}}" > package.json
npm install --silent --ignore-scripts
echo "namespace Demo; model W { id: string; }" > main.tsp
./node_modules/.bin/tsp compile main.tsp --no-emit
'
# → "TypeSpec compiler v1.11.0" then Segmentation fault, exit 139

Reproduces 5/5 times. The same script against node:24 or node:24-alpine succeeds 5/5.

node -e "console.log(process.versions.v8)" on the Azure Linux 3.0 image prints 13.6.233.17-node.44; on official node:24 it prints 13.6.233.17-node.48.

Expected behavior

TypeSpec compiles the input file and exits 0, as it does on the corresponding upstream Node 24 build.

Additional context

  • Tested on aarch64; would expect the same on x86_64.
  • TypeSpec @typespec/compiler versions ≥ 1.2.0 trigger the crash; 1.1.0 does not. We have no reason to believe TypeSpec itself is at fault — the bug only manifests on the Azure Linux Node build.
  • We can repro on demand if it helps narrow down which V8 / Node patch the Azure Linux package is missing relative to upstream node.48.

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