golang/go

runtime: make Windows VirtualAlloc failure more informative

Open

#70558 opened on Nov 25, 2024

View on GitHub
 (7 comments) (0 reactions) (0 assignees)Go (133,883 stars) (19,008 forks)batch import
NeedsInvestigationOS-Windowscompiler/runtimehelp wanted

Description

When a Windows build fails due to OOM, the error log looks like this: https://logs.chromium.org/logs/golang/buildbucket/cr-buildbucket/8730352753718672849/+/u/step/19/log/2 It contains a thread dump of the go test command at the moment after VirtualAlloc failed, but I suspect the real culprits here are the test child processes, among which is x/tools/go/ssa, which is known to have a big appetite for memory. Unfortunately that information is somewhat obscure in the log.

The task of this issue is to consider whether there are ways that the Windows OOM crash could be made more informative, for example by including the committed size of the current process. Alternatively, whether there are changes we could make to go test or the builders that would point the finger of blame more clearly.

@prattmic

Contributor guide