From 1ad42ae819d6e42093b2a398b75985fda2e7eb83 Mon Sep 17 00:00:00 2001 From: Tingluo Huang Date: Fri, 22 May 2026 18:28:37 -0400 Subject: [PATCH] Disable node v8 maglev jit compiler on Windows. --- .../Handlers/NodeScriptActionHandler.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs b/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs index 668ca95f6df..d3839eb791f 100644 --- a/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs +++ b/src/Runner.Worker/Handlers/NodeScriptActionHandler.cs @@ -12,6 +12,7 @@ using GitHub.Runner.Sdk; using GitHub.Runner.Worker.Container; using GitHub.Runner.Worker.Container.ContainerHooks; +using GitHub.Services.Common; namespace GitHub.Runner.Worker.Handlers { @@ -128,6 +129,17 @@ public async Task RunAsync(ActionRunStage stage) // file name character on Linux. string arguments = StepHost.ResolvePathForStepHost(ExecutionContext, StringUtil.Format(@"""{0}""", target.Replace(@"""", @"\"""))); + // Disable maglev jit compiler in node.js 24.x.x on x64 Windows until the node.js bug is fixed. + // https://github.com/nodejs/node/issues/62260 + if (nodeRuntimeVersion.StartsWith("node24", StringComparison.OrdinalIgnoreCase) && + Constants.Runner.Platform == Constants.OSPlatform.Windows && + Constants.Runner.PlatformArchitecture == Constants.Architecture.X64 && + !StringUtil.ConvertToBoolean(System.Environment.GetEnvironmentVariable("ACTIONS_RUNNER_REENABLE_NODE_MAGLEV")) && + !StringUtil.ConvertToBoolean(Environment.GetValueOrDefault("ACTIONS_RUNNER_REENABLE_NODE_MAGLEV"))) + { + arguments = $"--no-maglev {arguments}"; + } + #if OS_WINDOWS // It appears that node.exe outputs UTF8 when not in TTY mode. Encoding outputEncoding = Encoding.UTF8;