go: syscall: failure with "go tool compile: fork/exec C:\workdir\...\compile.exe: The parameter is incorrect."

I just noticed that

https://github.com/golang/go/issues/44011

broken windows amd64 longtest builder

https://build.golang.org/log/7cbab654e1a01035642ac138de3d6cf3fe18ef82

ok  	net/mail	0.031s
ok  	net/rpc	0.058s
ok  	net/rpc/jsonrpc	0.049s
go tool compile: fork/exec C:\workdir\go\pkg\tool\windows_amd64\compile.exe: The parameter is incorrect.

go tool dist: FAILED: go list -gcflags=all= -ldflags=all= -f={{if .Stale}}	STALE {{.ImportPath}}: {{.StaleReason}}{{end}} std: exit status 1

and

windows arm zx2c4 builder

https://build.golang.org/log/d5a457cd180589d602604d652e58832c7450fdea

ok  	compress/lzw	0.292s
ok  	compress/zlib	1.534s
go tool asm: fork/exec C:\workdir\go\pkg\tool\windows_arm\asm.exe: The parameter is incorrect.

go tool dist: FAILED: go list -gcflags=all= -ldflags=all= -f={{if .Stale}}	STALE {{.ImportPath}}: {{.StaleReason}}{{end}} std: exit status 1

Also other windows builders occasionally fail with strange errors.

https://build.golang.org/log/24e5d44bab19e14cee7ae4fca7702a6ca7e6cfa9

https://build.golang.org/log/33671e9cd3fa7c4249e15146caedb07d8d0336de

https://build.golang.org/log/4e96b5675f64045114f2db4d16416af17d001b29

I don’t even know how to debug this.

/cc @zx2c4

Alex

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 28 (23 by maintainers)

Commits related to this issue

Most upvoted comments

You don’t really get many guarantees, but the two general behaviors are: store a pointer in a struct, or allocate memory and copy the information. I assumed it was the latter. But it turned out to be the former, hence this issue.

I’ll look into it. It might be that stricter fd inheritance is unearthing subtle races that were there before but went unnoticed.