Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime,cmd/compile: exit status 0xc0000374 (STATUS_HEAP_CORRUPTION) on windows-amd64-longtest #52647

Closed
bcmills opened this issue May 2, 2022 · 38 comments
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Windows

Comments

@bcmills
Copy link
Contributor

bcmills commented May 2, 2022

#!watchflakes
post <- builder ~ `windows` && `0xc0000374`
XXXBANNERXXX:Test execution environment.
# GOARCH: amd64
# CPU: Intel(R) Xeon(R) CPU @ 2.20GHz
# GOOS: windows
# OS Version: 10.0.14393
go tool compile: exit status 0xc0000374

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

According to https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55, this exit code means:

0xC0000374
STATUS_HEAP_CORRUPTION
A heap has been corrupted.


greplogs --dashboard -md -l -e \(\?ms\)\\Awindows-.\*0xc0000374

2022-04-27T14:23:28-f0c0e0f/windows-amd64-longtest

Since this has only been seen once, leaving on the backlog to see whether this is a recurring pattern or a one-off fluke.
(CC @golang/runtime)

@bcmills bcmills added OS-Windows NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels May 2, 2022
@bcmills bcmills added this to the Backlog milestone May 2, 2022
@bcmills
Copy link
Contributor Author

bcmills commented May 9, 2022

Re-running the scan due to the possibility of failures masked by #52591:

greplogs --dashboard -md -l -e \(\?ms\)\\Awindows-.\*0xc0000374
2022-05-06T14:33:48-119da63/windows-amd64-longtest
2022-04-27T14:23:28-f0c0e0f/windows-amd64-longtest

@bcmills
Copy link
Contributor Author

bcmills commented May 9, 2022

That's two matching failures within the Go 1.19 cycle (and even within the past couple weeks!) on windows/amd64, which is a first-class port, and none before that. Looks like a release-blocking regression to me.

(CC @golang/windows)

@bcmills bcmills modified the milestones: Backlog, Go1.19 May 9, 2022
@bcmills
Copy link
Contributor Author

bcmills commented May 11, 2022

One more:
greplogs --dashboard -md -l -e \(\?ms\)\\Awindows-.\*0xc0000374 --since=2022-05-07
2022-05-10T15:43:40-8fdd277/windows-amd64-longtest

@prattmic prattmic self-assigned this May 20, 2022
@prattmic
Copy link
Member

Three days of continuous testing on 25 windows gomotes has gotten me zero of these failures, so I suspect I am missing some required component of the failure.

@prattmic prattmic removed their assignment May 23, 2022
@bcmills
Copy link
Contributor Author

bcmills commented May 23, 2022

None on the dashboard for the past week or so, although that's somewhat to be expected with the CL rate decreasing from the freeze.

greplogs --dashboard -md -l -e \(\?ms\)\\Awindows-.\*0xc0000374 --since=2022-05-11

(0 matching logs)


Note that this has only been observed in the -longtest configuration, which is surprising because these failures all occurred during compilation! 😅

Maybe it has something to do with the shape of the machine? IIRC the -longtest builders have more RAM and perhaps also more CPUs. 🤔

(Or maybe it's some sort of crosstalk between tests and builds somehow? But that seems even more weird.)

@prattmic prattmic added the okay-after-beta1 Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1 label May 25, 2022
@gopherbot gopherbot removed the okay-after-beta1 Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1 label Jun 10, 2022
@prattmic
Copy link
Member

Still no new cases since 2022-05-10. I ran another set of 25 builders over the weekend, this time creating a new VM for each test run. Nothing. I am inclined to close this and reopen if anyone discovers new cases.

@prattmic prattmic closed this as not planned Won't fix, can't repro, duplicate, stale Jun 13, 2022
@bcmills
Copy link
Contributor Author

bcmills commented Jun 14, 2022

Still no new cases since 2022-05-10.

SInce the freeze started 2022-05-07 and the rate of CLs (and thus dashboard test runs) is much lower during the freeze, it's not surprising and not necessarily meaningful to have fewer (or no) failures during that interval, and looking at the runtime and cmd/compile commit history since then I don't see anything that particularly stands out as a likely fix.

Running gomote builders can help if it also reproduces the initial failure (perhaps at one of the commits at which the failure was observed) as a control case, but unfortunately the actual builder configuration is subtle enough that a failure to reproduce a rare test failure on gomote instances could just mean that we haven't captured some critical aspect of the configuration (compare #32430).

I would be more comfortable closing out this issue if we have a plausible (even if unconfirmed) theory for how it could have been fixed by a code or configuration change since the last failure.

@prattmic
Copy link
Member

Fair enough, reopened. However beyond simply waiting for builders, I'm out of ideas for trying to reproduce this.

Perhaps someone on @golang/windows has more context about this error and what may trigger it (I've been assuming memory corruption in the C allocator)?

@prattmic prattmic reopened this Jun 14, 2022
@bcmills
Copy link
Contributor Author

bcmills commented Jun 14, 2022

Looking for common factors in the two three data points so far, I notice that they are all missing the environment and bootstrapping headers for the run (#51050), and all end with the following line:

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

That suggests that the cmd/compile failure occurred as a subprocess of go list, and I would hope that there aren't that many compile actions that could occur there. 🤔

@bcmills
Copy link
Contributor Author

bcmills commented Jun 14, 2022

The staleness check for std occurs at the start of each cmd/dist test run:
https://cs.opensource.google/go/go/+/master:src/cmd/dist/test.go;l=1286;drc=c29be2d41c6c3ed78a76b4d8d8c1c22d7e0ad5b7
https://cs.opensource.google/go/go/+/master:src/cmd/dist/test.go;l=246;drc=c29be2d41c6c3ed78a76b4d8d8c1c22d7e0ad5b7

I believe that that function runs once per dist test invocation, which may help to explain why we see it on the dashboard builders but not in local runs: the -longtest builders invoke dist test once per test shard, and IIRC the test shards are very small (compare #49343), whereas a local all.bash run only invokes dist test something like once.
https://cs.opensource.google/go/x/build/+/master:cmd/coordinator/buildstatus.go;l=1426-1486;drc=6219a16d3f2922994f4e84212473904f942eb53b

@bcmills
Copy link
Contributor Author

bcmills commented Jun 14, 2022

The go tool compile: log line may come from here:
https://cs.opensource.google/go/go/+/master:src/cmd/go/internal/tool/tool.go;l=109;drc=d922c0a8f5035b0533eb6e912ffd7b85487e3942

But I don't know how that line could possibly be executed as part of go list. 🤔

@prattmic
Copy link
Member

One thing I haven't tried is testing at exactly one of the commits that previously failed. To that end, I'll test at f0c0e0f (commit from the 2022-04-27 failure).

I've instrumented checkNotStale and you are right that we don't run it very often in standard all.bash (once per ##### test block). With sharding it should be running every few packages I believe. So I can try increasing the number of staleness checks. That said, by my envelope calculations I think I've run ~5000 all.bash runs, so I've still run the staleness check quite a bit. (I have 578 other windows test failure logs sitting in /tmp!)

@prattmic
Copy link
Member

Still no luck at f0c0e0f. I ran two sets of tests: one at unmodified f0c0e0f and one at f0c0e0f with cmd/dist modified to checkNotStale after every package test.

@bcmills
Copy link
Contributor Author

bcmills commented Jun 16, 2022

I still can't figure out how the go tool compile error message relates to the FAILED: go list error message from cmd/dist. As far as I can tell, cmd/go only emits the go tool %s: error message if it is invoked as go tool on the command line, but go list shouldn't be re-execing itself as go tool in order to run the compiler — if it needs to run the compiler, it would invoke the compiler binary directly.

The only go tool compile invocations I can find are in individual tests, and most of those log the output via t.Fatalf, which would be in a different format (it would have a test file prefix), or are run by GOROOT/test/run.go (which I think would have some framing adding by that script?).

(https://cs.opensource.google/search?q=%22%5C%22tool%5C%22,%20%5C%22compile%5C%22%22)

@bcmills
Copy link
Contributor Author

bcmills commented Jun 16, 2022

I modified cmd/go/internal/tool.go to unconditionally error out whenever go tool compile is invoked, then ran a windows-amd64-longtest gomote, but none of the go tool compile error lines match the error lines seen on the builders.

gopher@SERVER-2016-V7- C:\>set PATH=C:\godep\gcc64\bin;%PATH%
gopher@SERVER-2016-V7- C:\>set GOROOT_BOOTSTRAP=C:\workdir\go1.4
gopher@SERVER-2016-V7- C:\>set GO_BUILDER_NAME=windows-amd64-longtest
…
gopher@SERVER-2016-V7- C:\workdir\go\src>.\all.bat
Building Go cmd/dist using C:\workdir\go1.4
Building Go toolchain1 using C:\workdir\go1.4.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for windows/amd64.

##### Test execution environment.
# GOARCH: amd64
# CPU: Intel(R) Xeon(R) CPU @ 2.20GHz
# GOOS: windows
# OS Version: 10.0.14393

##### Testing packages.
ok      archive/tar     0.084s
ok      archive/zip     0.715s
ok      bufio   0.139s
ok      bytes   2.453s
ok      compress/bzip2  0.135s
ok      compress/flate  0.968s
ok      compress/gzip   0.356s
ok      compress/lzw    0.161s
ok      compress/zlib   0.853s
ok      container/heap  0.057s
ok      container/list  0.071s
ok      container/ring  0.040s
ok      context 0.074s
ok      crypto  0.032s
ok      crypto/aes      0.054s
ok      crypto/cipher   0.033s
ok      crypto/des      0.059s
ok      crypto/dsa      0.035s
ok      crypto/ecdsa    0.040s
ok      crypto/ed25519  0.100s
ok      crypto/elliptic 0.041s
ok      crypto/hmac     0.034s
ok      crypto/internal/boring  0.244s
ok      crypto/internal/edwards25519    7.728s
ok      crypto/internal/edwards25519/field      6.063s
ok      crypto/internal/nistec  1.922s
ok      crypto/internal/nistec/fiat     0.038s [no tests to run]
ok      crypto/internal/subtle  0.031s
ok      crypto/md5      0.049s
ok      crypto/rand     0.048s
ok      crypto/rc4      0.068s
ok      crypto/rsa      0.203s
ok      crypto/sha1     0.074s
ok      crypto/sha256   0.073s
ok      crypto/sha512   0.037s
ok      crypto/subtle   0.043s
ok      crypto/tls      0.874s
ok      crypto/x509     1.547s
ok      database/sql    0.377s
ok      database/sql/driver     0.063s
ok      debug/buildinfo 0.096s
ok      debug/dwarf     0.061s
ok      debug/elf       0.062s
ok      debug/gosym     0.045s
ok      debug/macho     0.037s
ok      debug/pe        10.502s
ok      debug/plan9obj  0.039s
ok      embed   0.052s [no tests to run]
ok      embed/internal/embedtest        0.050s
ok      encoding/ascii85        0.033s
ok      encoding/asn1   0.048s
ok      encoding/base32 0.103s
ok      encoding/base64 0.028s
ok      encoding/binary 0.052s
ok      encoding/csv    0.089s
ok      encoding/gob    0.050s
ok      encoding/hex    0.079s
ok      encoding/json   0.432s
ok      encoding/pem    0.793s
ok      encoding/xml    0.053s
ok      errors  0.031s
ok      expvar  0.033s
ok      flag    0.241s
ok      fmt     0.154s
ok      go/ast  0.059s
ok      go/build        2.339s
ok      go/build/constraint     0.032s
ok      go/constant     0.074s
ok      go/doc  0.175s
ok      go/doc/comment  1.870s
ok      go/format       0.049s
ok      go/importer     0.240s
ok      go/internal/gccgoimporter       0.054s
--- FAIL: TestImportTestdata (0.04s)
    gcimporter_test.go:58: go tool compile disallowed
    gcimporter_test.go:59: go tool compile generics.go failed: exit status 1
--- FAIL: TestImportTypeparamTests (10.64s)
    --- FAIL: TestImportTypeparamTests/absdiff.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile absdiff.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/absdiff2.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile absdiff2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/absdiff3.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile absdiff3.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/absdiffimp.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile absdiffimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/absdiffimp2.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile absdiffimp2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/adder.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile adder.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/aliasimp.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile aliasimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/append.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile append.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/boundmethod.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile boundmethod.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/builtins.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile builtins.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/chans.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile chans.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/chansimp.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile chansimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/combine.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile combine.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/cons.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile cons.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/dedup.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile dedup.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/dictionaryCapture-noinline.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile dictionaryCapture-noinline.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/dictionaryCapture.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile dictionaryCapture.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/dottype.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile dottype.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/double.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile double.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/eface.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile eface.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/fact.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile fact.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/factimp.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile factimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/gencrawler.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile gencrawler.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/genembed.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile genembed.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/genembed2.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile genembed2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/geninline.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile geninline.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/graph.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile graph.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/ifaceconv.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile ifaceconv.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/importtest.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile importtest.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/index.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile index.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/index2.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile index2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/interfacearg.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile interfacearg.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue23536.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue23536.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue376214.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue376214.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue39755.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue39755.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue42758.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue42758.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue44688.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue44688.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue45547.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue45547.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue45722.go (0.11s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue45722.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue45738.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue45738.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue45817.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue45817.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue46461b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue46461b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue46472.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue46472.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue46591.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue46591.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47258.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47258.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47272.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47272.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47514.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47514.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47514b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47514b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47514c.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47514c.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47676.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47676.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47684.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47684.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47684b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47684b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47684c.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47684c.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47708.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47708.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47710.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47710.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47713.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47713.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47716.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47716.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47723.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47723.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47740.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47740.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47740b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47740b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47775.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47775.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47775b.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47775b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47797.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47797.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47877.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47877.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47878.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47878.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47892.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47892.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47892b.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47892b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47901.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47901.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47924.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47924.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47925.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47925.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47925b.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47925b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47925c.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47925c.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47925d.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47925d.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47929.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47929.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47948.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47948.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue47966.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue47966.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48013.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48013.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48016.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48016.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48030.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48030.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48042.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48042.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48047.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48047.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48049.go (0.11s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48049.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48056.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48056.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48094.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48094.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48094b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48094b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48137.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48137.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48185a.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48185a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48185b.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48185b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48191.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48191.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48198.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48198.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48225.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48225.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48253.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48253.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48276a.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48276a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48276b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48276b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48280.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48280.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48306.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48306.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48317.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48317.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48318.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48318.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48337a.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48337a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48337b.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48337b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48344.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48344.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48424.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48424.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48453.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48453.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48454.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48454.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48462.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48462.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48537.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48537.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48538.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48538.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48598.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48598.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48602.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48602.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48609.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48609.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48617.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48617.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48645a.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48645a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48645b.go (0.09s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48645b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48716.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48716.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue48838.go (0.10s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue48838.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49027.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49027.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49049.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49049.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49241.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49241.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49246.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49246.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49295.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49295.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49309.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49309.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49421.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49421.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49432.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49432.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49497.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49497.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49516.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49516.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49524.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49524.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49536.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49536.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49538.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49538.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49547.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49547.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49611.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49611.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49659.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49659.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49659b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49659b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49667.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49667.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49875.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49875.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue49893.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue49893.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50002.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50002.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50109.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50109.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50109b.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50109b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50121.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50121.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50121b.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50121b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50147.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50147.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50177.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50177.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50193.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50193.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50259.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50259.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50264.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50264.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50417b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50417b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50419.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50419.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50437.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50437.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50481b.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50481b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50481c.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50481c.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50485.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50485.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50486.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50486.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50552.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50552.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50561.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50561.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50598.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50598.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50642.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50642.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50690a.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50690a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50690b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50690b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50690c.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50690c.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50833.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50833.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50841.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50841.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue50993.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue50993.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51219.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51219.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51219b.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51219b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51236.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51236.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51250a.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51250a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51303.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51303.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51355.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51355.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51367.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51367.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51423.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51423.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51521.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51521.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51522a.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51522a.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51522b.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51522b.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51700.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51700.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51733.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51733.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51765.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51765.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51832.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51832.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51836.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51836.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51840.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51840.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51909.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51909.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue51925.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue51925.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue52026.go (0.09s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue52026.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue52117.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue52117.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue52124.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue52124.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue52228.go (0.12s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue52228.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/issue52241.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile issue52241.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/list.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile list.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/list2.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile list2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/listimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile listimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/listimp2.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile listimp2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/lockable.go (0.10s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile lockable.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/map.go (0.09s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile map.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/mapimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile mapimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/maps.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile maps.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/mapsimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile mapsimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/metrics.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile metrics.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/min.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile min.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/minimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile minimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/mutualimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile mutualimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/ordered.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile ordered.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/orderedmap.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile orderedmap.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/orderedmapsimp.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile orderedmapsimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/pair.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile pair.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/pairimp.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile pairimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/recoverimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile recoverimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/select.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile select.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/sets.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile sets.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/setsimp.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile setsimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/settable.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile settable.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/shape1.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile shape1.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/sliceimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile sliceimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/slices.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile slices.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/smallest.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile smallest.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/smoketest.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile smoketest.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/stringable.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile stringable.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/stringer.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile stringer.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/stringerimp.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile stringerimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/struct.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile struct.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/structinit.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile structinit.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/subdict.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile subdict.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/sum.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile sum.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typelist.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typelist.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch1.go (0.03s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch1.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch2.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch2.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch3.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch3.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch4.go (0.06s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch4.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch5.go (0.07s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch5.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch6.go (0.08s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch6.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/typeswitch7.go (0.05s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile typeswitch7.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/valimp.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile valimp.go failed: exit status 1
    --- FAIL: TestImportTypeparamTests/value.go (0.04s)
        gcimporter_test.go:58: go tool compile disallowed
        gcimporter_test.go:59: go tool compile value.go failed: exit status 1
FAIL
FAIL    go/internal/gcimporter  12.782s
ok      go/internal/srcimporter 9.497s
ok      go/parser       0.104s
ok      go/printer      0.383s
ok      go/scanner      0.057s
ok      go/token        0.060s
ok      go/types        14.176s
ok      hash    0.028s
ok      hash/adler32    0.047s
ok      hash/crc32      0.062s
ok      hash/crc64      0.035s
ok      hash/fnv        0.034s
ok      hash/maphash    0.202s
ok      html    0.025s
ok      html/template   0.155s
ok      image   0.121s
ok      image/color     0.049s
ok      image/draw      0.169s
ok      image/gif       21.772s
ok      image/jpeg      5.140s
ok      image/png       0.429s
ok      index/suffixarray       0.316s
--- FAIL: TestFuncPCCompileError (0.14s)
    abi_test.go:67: did not error on line x.go:17
    abi_test.go:71: unexpected number of errors, want 3, got 1
    abi_test.go:74: output:
        go tool compile disallowed
FAIL
FAIL    internal/abi    0.190s
ok      internal/buildcfg       0.039s
ok      internal/cpu    0.034s
ok      internal/diff   0.070s
ok      internal/fmtsort        0.033s
ok      internal/fuzz   0.061s
ok      internal/godebug        0.033s
ok      internal/intern 2.764s
ok      internal/itoa   0.043s
ok      internal/poll   0.244s
ok      internal/profile        0.076s
ok      internal/reflectlite    0.163s
ok      internal/singleflight   0.095s
ok      internal/syscall/windows        0.122s
ok      internal/syscall/windows/registry       0.048s
ok      internal/trace  0.108s
ok      internal/unsafeheader   0.037s
ok      internal/xcoff  0.044s
ok      io      0.183s
ok      io/fs   0.050s
ok      io/ioutil       0.128s
ok      log     0.087s
ok      math    0.059s
ok      math/big        1.857s
ok      math/bits       0.047s
ok      math/cmplx      0.050s
ok      math/rand       0.355s
ok      mime    0.063s
ok      mime/multipart  0.337s
ok      mime/quotedprintable    0.100s
ok      net     41.397s
ok      net/http        10.031s
ok      net/http/cgi    0.910s
ok      net/http/cookiejar      0.080s
ok      net/http/fcgi   0.150s
ok      net/http/httptest       2.128s
ok      net/http/httptrace      0.039s
ok      net/http/httputil       0.880s
ok      net/http/internal       0.060s
ok      net/http/internal/ascii 0.037s
ok      net/http/pprof  5.349s
ok      net/internal/socktest   0.047s
ok      net/mail        0.040s
ok      net/netip       1.108s
ok      net/rpc 0.102s
ok      net/rpc/jsonrpc 0.093s
ok      net/smtp        0.058s
ok      net/textproto   0.026s
ok      net/url 0.041s
ok      os      4.699s
ok      os/exec 6.326s
ok      os/exec/internal/fdtest 0.062s
ok      os/signal       2.257s
ok      os/user 0.101s
ok      path    0.041s
ok      path/filepath   0.929s
ok      plugin  0.028s
ok      reflect 2.125s
ok      regexp  0.153s
ok      regexp/syntax   0.497s
ok      runtime 89.539s
ok      runtime/cgo     0.050s
ok      runtime/debug   0.295s
ok      runtime/internal/atomic 0.175s
ok      runtime/internal/math   0.046s
ok      runtime/internal/sys    0.050s
ok      runtime/metrics 0.043s
ok      runtime/pprof   14.144s
ok      runtime/trace   4.930s
ok      sort    0.155s
ok      strconv 0.523s
ok      strings 1.784s
ok      sync    3.102s
ok      sync/atomic     5.885s
ok      syscall 7.904s
ok      testing 2.998s
ok      testing/fstest  0.058s
ok      testing/iotest  0.059s
ok      testing/quick   0.078s
ok      text/scanner    0.061s
ok      text/tabwriter  0.091s
ok      text/template   0.141s
ok      text/template/parse     0.065s
ok      time    3.075s
ok      unicode 0.087s
ok      unicode/utf16   0.070s
ok      unicode/utf8    0.040s
ok      cmd/addr2line   3.667s
ok      cmd/api 41.252s
ok      cmd/asm/internal/asm    0.946s
ok      cmd/asm/internal/lex    0.086s
ok      cmd/compile/internal/abt        0.085s
ok      cmd/compile/internal/amd64      0.313s
ok      cmd/compile/internal/dwarfgen   1.608s
--- FAIL: TestImportTestdata (0.05s)
    gcimporter_test.go:51: go tool compile disallowed
    gcimporter_test.go:52: go tool compile generics.go failed: exit status 1
FAIL
FAIL    cmd/compile/internal/importer   1.977s
ok      cmd/compile/internal/ir 0.047s
--- FAIL: TestLogOpt (1.05s)
    --- FAIL: TestLogOpt/JSON_fails (0.12s)
        logopt_test.go:230: [C:\workdir\go\bin\go.exe tool compile -p=p -json=foo -o C:\Users\gopher
\AppData\Local\Temp\TestLogOpt3480865138\file.o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865
138\file.go]
        logopt_test.go:233: go tool compile disallowed
        logopt_test.go:48: did not see phrase option should be in
            go tool compile disallowed
        logopt_test.go:48: did not see phrase number in
            go tool compile disallowed
        logopt_test.go:230: [C:\workdir\go\bin\go.exe tool compile -p=p -json=9,foo -o C:\Users\goph
er\AppData\Local\Temp\TestLogOpt3480865138\file.o C:\Users\gopher\AppData\Local\Temp\TestLogOpt34808
65138\file.go]
        logopt_test.go:233: go tool compile disallowed
        logopt_test.go:48: did not see phrase version must be in
            go tool compile disallowed
    --- FAIL: TestLogOpt/Copy (0.90s)
        --- FAIL: TestLogOpt/Copy/arm (0.06s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/arm64 (0.05s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/386 (0.06s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/amd64 (0.07s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/mips (0.09s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/mips64 (0.25s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/loong64 (0.04s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/ppc64le (0.06s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/riscv64 (0.08s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/s390x (0.06s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
        --- FAIL: TestLogOpt/Copy/wasm (0.05s)
            logopt_test.go:251: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -
o C:\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\copy.o C:\Users\gopher\AppData\Local\Temp\
TestLogOpt3480865138\copy.go]
            logopt_test.go:256: go tool compile disallowed
            logopt_test.go:170: -json=0,file://log/opt should have succeeded
            logopt_test.go:174: -json=0,file://log/opt missing expected log file
            logopt_test.go:177:
            logopt_test.go:48: did not see phrase {"range":{"start":{"line":3,"character":2},"end":{
"line":3,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":2},"end":{
"line":9,"character":2}},"severity":3,"code":"copy","source":"go compiler","message":"128 bytes"} in

            logopt_test.go:54: expected exactly 2 occurrences of "code":"copy" in
    --- FAIL: TestLogOpt/Success (0.03s)
        logopt_test.go:240: [C:\workdir\go\bin\go.exe tool compile -p=x -json=0,file://log/opt -o C:
\Users\gopher\AppData\Local\Temp\TestLogOpt3480865138\file.o C:\Users\gopher\AppData\Local\Temp\Test
LogOpt3480865138\file.go]
        logopt_test.go:244: go tool compile disallowed
        logopt_test.go:197: -json=0,file://log/opt should have succeeded
        logopt_test.go:201: -json=0,file://log/opt missing expected log file
        logopt_test.go:205:
        logopt_test.go:48: did not see phrase {"range":{"start":{"line":9,"character":13},"end":{"li
ne":9,"character":13}},"severity":3,"code":"nilcheck","source":"go compiler","message":"","relatedIn
formation":[{"location":{"uri":"file://tmpdir/file.go","range":{"start":{"line":4,"character":11},"e
nd":{"line":4,"character":11}}},"message":"inlineLoc"}]} in
        logopt_test.go:48: did not see phrase {"range":{"start":{"line":11,"character":6},"end":{"li
ne":11,"character":6}},"severity":3,"code":"isInBounds","source":"go compiler","message":""} in
        logopt_test.go:48: did not see phrase {"range":{"start":{"line":7,"character":6},"end":{"lin
e":7,"character":6}},"severity":3,"code":"canInlineFunction","source":"go compiler","message":"cost:
 35"} in
        logopt_test.go:48: did not see phrase {"range":{"start":{"line":7,"character":13},"end":{"li
ne":7,"character":13}},"severity":3,"code":"leak","source":"go compiler","message":"parameter z leak
s to ~r0 with derefs=0","relatedInformation":[{"location":{"uri":"file://tmpdir/file.go","range":{"s
tart":{"line":9,"character":13},"end":{"line":9,"character":13}}},"message":"escflow:    flow: y = z
:"},{"location":{"uri":"file://tmpdir/file.go","range":{"start":{"line":9,"character":13},"end":{"li
ne":9,"character":13}}},"message":"escflow:      from y := z (assign-pair)"},{"location":{"uri":"fil
e://tmpdir/file.go","range":{"start":{"line":9,"character":13},"end":{"line":9,"character":13}}},"me
ssage":"escflow:    flow: ~R0 = y:"},{"location":{"uri":"file://tmpdir/file.go","range":{"start":{"l
ine":4,"character":11},"end":{"line":4,"character":11}}},"message":"inlineLoc"},{"location":{"uri":"
file://tmpdir/file.go","range":{"start":{"line":9,"character":13},"end":{"line":9,"character":13}}},
"message":"escflow:      from y.b (dot of pointer)"},{"location":{"uri":"file://tmpdir/file.go","ran
ge":{"start":{"line":4,"character":11},"end":{"line":4,"character":11}}},"message":"inlineLoc"},{"lo
cation":{"uri":"file://tmpdir/file.go","range":{"start":{"line":9,"character":13},"end":{"line":9,"c
haracter":13}}},"message":"escflow:      from /u0026y.b (address-of)"},{"location":{"uri":"file://tm
pdir/file.go","range":{"start":{"line":4,"character":9},"end":{"line":4,"character":9}}},"message":"
inlineLoc"},{"location":{"uri":"file://tmpdir/file.go","range":{"start":{"line":9,"character":13},"e
nd":{"line":9,"character":13}}},"message":"escflow:      from ~R0 = /u0026y.b (assign-pair)"},{"loca
tion":{"uri":"file://tmpdir/file.go","range":{"start":{"line":9,"character":3},"end":{"line":9,"char
acter":3}}},"message":"escflow:    flow: ~r0 = ~R0:"},{"location":{"uri":"file://tmpdir/file.go","ra
nge":{"start":{"line":9,"character":3},"end":{"line":9,"character":3}}},"message":"escflow:      fro
m return ~R0 (return)"}]} in
FAIL
FAIL    cmd/compile/internal/logopt     1.118s
ok      cmd/compile/internal/noder      0.474s
ok      cmd/compile/internal/reflectdata        0.040s [no tests to run]
ok      cmd/compile/internal/ssa        14.975s
ok      cmd/compile/internal/syntax     0.128s
--- FAIL: TestIssue16214 (0.15s)
    fixedbugs_test.go:78: go tool compile: exit status 1
        go tool compile disallowed
--- FAIL: TestIssue38068 (0.62s)
    reproduciblebuilds_test.go:95: [C:\workdir\go\bin\go.exe tool compile -p=issue38068 -buildid= -c
=1 -o C:\Users\gopher\AppData\Local\Temp\TestIssue380683787816050\serial.a testdata\reproducible\iss
ue38068.go]: exit status 1:
        go tool compile disallowed
--- FAIL: TestReproducibleBuilds (0.00s)
    --- FAIL: TestReproducibleBuilds/issue20272.go (0.65s)
        reproduciblebuilds_test.go:46: failed to compile: exit status 1
            go tool compile disallowed
    --- FAIL: TestReproducibleBuilds/issue27013.go (0.65s)
        reproduciblebuilds_test.go:46: failed to compile: exit status 1
            go tool compile disallowed
    --- FAIL: TestReproducibleBuilds/issue30202.go (0.65s)
        reproduciblebuilds_test.go:46: failed to compile: exit status 1
            go tool compile disallowed
--- FAIL: TestInvalidLang (2.03s)
    lang_test.go:60: [C:\workdir\go\bin\go.exe tool compile -p=p -lang go9.99 -o C:\Users\gopher\App
Data\Local\Temp\TestInvalidLang154262671\alias.o C:\Users\gopher\AppData\Local\Temp\TestInvalidLang1
54262671\alias.go]
    lang_test.go:62: go tool compile disallowed
    lang_test.go:60: [C:\workdir\go\bin\go.exe tool compile -p=p -lang go1.99 -o C:\Users\gopher\App
Data\Local\Temp\TestInvalidLang154262671\alias.o C:\Users\gopher\AppData\Local\Temp\TestInvalidLang1
54262671\alias.go]
    lang_test.go:62: go tool compile disallowed
    lang_test.go:60: [C:\workdir\go\bin\go.exe tool compile -p=p -lang go1.8 -o C:\Users\gopher\AppD
ata\Local\Temp\TestInvalidLang154262671\alias.o C:\Users\gopher\AppData\Local\Temp\TestInvalidLang15
4262671\alias.go]
    lang_test.go:62: go tool compile disallowed
    lang_test.go:60: [C:\workdir\go\bin\go.exe tool compile -p=p -lang go1.9 -o C:\Users\gopher\AppD
ata\Local\Temp\TestInvalidLang154262671\alias.o C:\Users\gopher\AppData\Local\Temp\TestInvalidLang15
4262671\alias.go]
    lang_test.go:62: go tool compile disallowed
    lang_test.go:54: compilation with -lang=go1.9 failed unexpectedly: exit status 1
FAIL
FAIL    cmd/compile/internal/test       31.739s
ok      cmd/compile/internal/typecheck  1.687s
ok      cmd/compile/internal/types      0.063s
ok      cmd/compile/internal/types2     5.439s
ok      cmd/cover       7.271s
ok      cmd/dist        0.043s
ok      cmd/doc 0.402s
ok      cmd/fix 5.930s
go test proxy running at GOPROXY=http://127.0.0.1:51707/mod
--- FAIL: TestScript (0.01s)
    --- FAIL: TestScript/build_cache_disabled (0.32s)
        script_test.go:271:
            # (2022-06-16T15:39:32Z)
            # The build cache is required to build anything. It also may be needed to
            # initialize the build system, which is needed for commands like 'go env'.
            # However, there are lots of commands the cache is not needed for, and we
            # shouldn't require it when it won't be used.
            #
            # TODO(golang.org/issue/39882): commands below should work, too.
            # * go clean -modcache
            # * go env
            # * go fix
            # * go fmt
            # * go generate
            # * go get
            # * go list (without -export or -compiled) (0.000s)
            # Commands that don't completely load packages should work. (0.315s)
            > go doc fmt
            [stdout]
            package fmt // import "fmt"

            Package fmt implements formatted I/O with functions analogous to C's printf and
            scanf. The format 'verbs' are derived from C's but are simpler.

            # Printing

            The verbs:

            General:

                %v      the value in a default format
                        when printing structs, the plus flag (%+v) adds field names
                %#v     a Go-syntax representation of the value
                %T      a Go-syntax representation of the type of the value
                %%      a literal percent sign; consumes no value

            Boolean:

                %t      the word true or false

            Integer:

                %b      base 2
                %c      the character represented by the corresponding Unicode code point
                %d      base 10
                %o      base 8
                %O      base 8 with 0o prefix
                %q      a single-quoted character literal safely escaped with Go syntax.
                %x      base 16, with lower-case letters for a-f
                %X      base 16, with upper-case letters for A-F
                %U      Unicode format: U+1234; same as "U+%04X"

            Floating-point and complex constituents:

                %b      decimalless scientific notation with exponent a power of two,
                        in the manner of strconv.FormatFloat with the 'b' format,
                        e.g. -123456p-78
                %e      scientific notation, e.g. -1.234456e+78
                %E      scientific notation, e.g. -1.234456E+78
                %f      decimal point but no exponent, e.g. 123.456
                %F      synonym for %f
                %g      %e for large exponents, %f otherwise. Precision is discussed below.
                %G      %E for large exponents, %F otherwise
                %x      hexadecimal notation (with decimal power of two exponent), e.g. -0x1.23abcp+
20
                %X      upper-case hexadecimal notation, e.g. -0X1.23ABCP+20

            String and slice of bytes (treated equivalently with these verbs):

                %s      the uninterpreted bytes of the string or slice
                %q      a double-quoted string safely escaped with Go syntax
                %x      base 16, lower-case, two characters per byte
                %X      base 16, upper-case, two characters per byte

            Slice:

                %p      address of 0th element in base 16 notation, with leading 0x

            Pointer:

                %p      base 16 notation, with leading 0x
                The %b, %d, %o, %x and %X verbs also work with pointers,
                formatting the value exactly as if it were an integer.

            The default format for %v is:

                bool:                    %t
                int, int8 etc.:          %d
                uint, uint8 etc.:        %d, %#x if printed with %#v
                float32, complex64, etc: %g
                string:                  %s
                chan:                    %p
                pointer:                 %p

            For compound objects, the elements are printed using these rules, recursively,
            laid out like this:

                struct:             {field0 field1 ...}
                array, slice:       [elem0 elem1 ...]
                maps:               map[key1:value1 key2:value2 ...]
                pointer to above:   &{}, &[], &map[]

            Width is specified by an optional decimal number immediately preceding the verb.
            If absent, the width is whatever is necessary to represent the value. Precision
            is specified after the (optional) width by a period followed by a decimal
            number. If no period is present, a default precision is used. A period with no
            following number specifies a precision of zero. Examples:

                %f     default width, default precision
                %9f    width 9, default precision
                %.2f   default width, precision 2
                %9.2f  width 9, precision 2
                %9.f   width 9, precision 0

            Width and precision are measured in units of Unicode code points, that is,
            runes. (This differs from C's printf where the units are always measured in
            bytes.) Either or both of the flags may be replaced with the character '*',
            causing their values to be obtained from the next operand (preceding the one to
            format), which must be of type int.

            For most values, width is the minimum number of runes to output, padding the
            formatted form with spaces if necessary.

            For strings, byte slices and byte arrays, however, precision limits the length
            of the input to be formatted (not the size of the output), truncating if
            necessary. Normally it is measured in runes, but for these types when formatted
            with the %x or %X format it is measured in bytes.

            For floating-point values, width sets the minimum width of the field and
            precision sets the number of places after the decimal, if appropriate, except
            that for %g/%G precision sets the maximum number of significant digits (trailing
            zeros are removed). For example, given 12.345 the format %6.3f prints 12.345
            while %.3g prints 12.3. The default precision for %e, %f and %#g is 6; for %g it
            is the smallest number of digits necessary to identify the value uniquely.

            For complex numbers, the width and precision apply to the two components
            independently and the result is parenthesized, so %f applied to 1.2+3.4i
            produces (1.200000+3.400000i).

            When formatting a single integer code point or a rune string (type []rune)
            with %q, invalid Unicode code points are changed to the Unicode replacement
            character, U+FFFD, as in strconv.QuoteRune.

            Other flags:

                '+'     always print a sign for numeric values;
                        guarantee ASCII-only output for %q (%+q)
                '-'     pad with spaces on the right rather than the left (left-justify the field)
                '#'     alternate format: add leading 0b for binary (%#b), 0 for octal (%#o),
                        0x or 0X for hex (%#x or %#X); suppress 0x for %p (%#p);
                        for %q, print a raw (backquoted) string if strconv.CanBackquote
                        returns true;
                        always print a decimal point for %e, %E, %f, %F, %g and %G;
                        do not remove trailing zeros for %g and %G;
                        write e.g. U+0078 'x' if the character is printable for %U (%#U).
                ' '     (space) leave a space for elided sign in numbers (% d);
                        put spaces between bytes printing strings or slices in hex (% x, % X)
                '0'     pad with leading zeros rather than spaces;
                        for numbers, this moves the padding after the sign;
                        ignored for strings, byte slices and byte arrays

            Flags are ignored by verbs that do not expect them. For example there is no
            alternate decimal format, so %#d and %d behave identically.

            For each Printf-like function, there is also a Print function that takes no
            format and is equivalent to saying %v for every operand. Another variant Println
            inserts blanks between operands and appends a newline.

            Regardless of the verb, if an operand is an interface value, the internal
            concrete value is used, not the interface itself. Thus:

                var i interface{} = 23
                fmt.Printf("%v\n", i)

            will print 23.

            Except when printed using the verbs %T and %p, special formatting considerations
            apply for operands that implement certain interfaces. In order of application:

            1. If the operand is a reflect.Value, the operand is replaced by the concrete
            value that it holds, and printing continues with the next rule.

            2. If an operand implements the Formatter interface, it will be invoked. In this
            case the interpretation of verbs and flags is controlled by that implementation.

            3. If the %v verb is used with the # flag (%#v) and the operand implements the
            GoStringer interface, that will be invoked.

            If the format (which is implicitly %v for Println etc.) is valid for a string
            (%s %q %v %x %X), the following two rules apply:

            4. If an operand implements the error interface, the Error method will be
            invoked to convert the object to a string, which will then be formatted as
            required by the verb (if any).

            5. If an operand implements method String() string, that method will be invoked
            to convert the object to a string, which will then be formatted as required by
            the verb (if any).

            For compound operands such as slices and structs, the format applies to the
            elements of each operand, recursively, not to the operand as a whole. Thus %q
            will quote each element of a slice of strings, and %6.2f will control formatting
            for each element of a floating-point array.

            However, when printing a byte slice with a string-like verb (%s %q %x %X),
            it is treated identically to a string, as a single item.

            To avoid recursion in cases such as

                type X string
                func (x X) String() string { return Sprintf("<%s>", x) }

            convert the value before recurring:

                func (x X) String() string { return Sprintf("<%s>", string(x)) }

            Infinite recursion can also be triggered by self-referential data structures,
            such as a slice that contains itself as an element, if that type has a String
            method. Such pathologies are rare, however, and the package does not protect
            against them.

            When printing a struct, fmt cannot and therefore does not invoke formatting
            methods such as Error or String on unexported fields.

            # Explicit argument indexes

            In Printf, Sprintf, and Fprintf, the default behavior is for each formatting
            verb to format successive arguments passed in the call. However, the notation
            [n] immediately before the verb indicates that the nth one-indexed argument
            is to be formatted instead. The same notation before a '*' for a width or
            precision selects the argument index holding the value. After processing a
            bracketed expression [n], subsequent verbs will use arguments n+1, n+2, etc.
            unless otherwise directed.

            For example,

                fmt.Sprintf("%[2]d %[1]d\n", 11, 22)

            will yield "22 11", while

                fmt.Sprintf("%[3]*.[2]*[1]f", 12.0, 2, 6)

            equivalent to

                fmt.Sprintf("%6.2f", 12.0)

            will yield " 12.00". Because an explicit index affects subsequent verbs,
            this notation can be used to print the same values multiple times by resetting
            the index for the first argument to be repeated:

                fmt.Sprintf("%d %d %#[1]x %#x", 16, 17)

            will yield "16 17 0x10 0x11".

            # Format errors

            If an invalid argument is given for a verb, such as providing a string to %d,
            the generated string will contain a description of the problem, as in these
            examples:

                Wrong type or unknown verb: %!verb(type=value)
                        Printf("%d", "hi"):        %!d(string=hi)
                Too many arguments: %!(EXTRA type=value)
                        Printf("hi", "guys"):      hi%!(EXTRA string=guys)
                Too few arguments: %!verb(MISSING)
                        Printf("hi%d"):            hi%!d(MISSING)
                Non-int for width or precision: %!(BADWIDTH) or %!(BADPREC)
                        Printf("%*s", 4.5, "hi"):  %!(BADWIDTH)hi
                        Printf("%.*s", 4.5, "hi"): %!(BADPREC)hi
                Invalid or invalid use of argument index: %!(BADINDEX)
                        Printf("%*[2]d", 7):       %!d(BADINDEX)
                        Printf("%.[2]d", 7):       %!d(BADINDEX)

            All errors begin with the string "%!" followed sometimes by a single character
            (the verb) and end with a parenthesized description.

            If an Error or String method triggers a panic when called by a print routine,
            the fmt package reformats the error message from the panic, decorating it with
            an indication that it came through the fmt package. For example, if a String
            method calls panic("bad"), the resulting formatted message will look like

                %!s(PANIC=bad)

            The %!s just shows the print verb in use when the failure occurred. If the panic
            is caused by a nil receiver to an Error or String method, however, the output is
            the undecorated string, "<nil>".

            # Scanning

            An analogous set of functions scans formatted text to yield values. Scan, Scanf
            and Scanln read from os.Stdin; Fscan, Fscanf and Fscanln read from a specified
            io.Reader; Sscan, Sscanf and Sscanln read from an argument string.

            Scan, Fscan, Sscan treat newlines in the input as spaces.

            Scanln, Fscanln and Sscanln stop scanning at a newline and require that the
            items be followed by a newline or EOF.

            Scanf, Fscanf, and Sscanf parse the arguments according to a format string,
            analogous to that of Printf. In the text that follows, 'space' means any Unicode
            whitespace character except newline.

            In the format string, a verb introduced by the % character consumes and parses
            input; these verbs are described in more detail below. A character other than %,
            space, or newline in the format consumes exactly that input character, which
            must be present. A newline with zero or more spaces before it in the format
            string consumes zero or more spaces in the input followed by a single newline or
            the end of the input. A space following a newline in the format string consumes
            zero or more spaces in the input. Otherwise, any run of one or more spaces in
            the format string consumes as many spaces as possible in the input. Unless the
            run of spaces in the format string appears adjacent to a newline, the run must
            consume at least one space from the input or find the end of the input.

            The handling of spaces and newlines differs from that of C's scanf family: in C,
            newlines are treated as any other space, and it is never an error when a run of
            spaces in the format string finds no spaces to consume in the input.

            The verbs behave analogously to those of Printf. For example, %x will scan an
            integer as a hexadecimal number, and %v will scan the default representation
            format for the value. The Printf verbs %p and %T and the flags # and + are not
            implemented. For floating-point and complex values, all valid formatting verbs
            (%b %e %E %f %F %g %G %x %X and %v) are equivalent and accept both decimal and
            hexadecimal notation (for example: "2.3e+7", "0x4.5p-8") and digit-separating
            underscores (for example: "3.14159_26535_89793").

            Input processed by verbs is implicitly space-delimited: the implementation of
            every verb except %c starts by discarding leading spaces from the remaining
            input, and the %s verb (and %v reading into a string) stops consuming input at
            the first space or newline character.

            The familiar base-setting prefixes 0b (binary), 0o and 0 (octal), and 0x
            (hexadecimal) are accepted when scanning integers without a format or with the
            %v verb, as are digit-separating underscores.

            Width is interpreted in the input text but there is no syntax for scanning with
            a precision (no %5.2f, just %5f). If width is provided, it applies after leading
            spaces are trimmed and specifies the maximum number of runes to read to satisfy
            the verb. For example,

                Sscanf(" 1234567 ", "%5s%d", &s, &i)

            will set s to "12345" and i to 67 while

                Sscanf(" 12 34 567 ", "%5s%d", &s, &i)

            will set s to "12" and i to 34.

            In all the scanning functions, a carriage return followed immediately by a
            newline is treated as a plain newline (\r\n means the same as \n).

            In all the scanning functions, if an operand implements method Scan (that is,
            it implements the Scanner interface) that method will be used to scan the text
            for that operand. Also, if the number of arguments scanned is less than the
            number of arguments provided, an error is returned.

            All arguments to be scanned must be either pointers to basic types or
            implementations of the Scanner interface.

            Like Scanf and Fscanf, Sscanf need not consume its entire input. There is no way
            to recover how much of the input string Sscanf used.

            Note: Fscan etc. can read one character (rune) past the input they return,
            which means that a loop calling a scan routine may skip some of the input.
            This is usually a problem only when there is no space between input values.
            If the reader provided to Fscan implements ReadRune, that method will be used
            to read characters. If the reader also implements UnreadRune, that method
            will be used to save the character and successive calls will not lose data.
            To attach ReadRune and UnreadRune methods to a reader without that capability,
            use bufio.NewReader.

            func Append(b []byte, a ...any) []byte
            func Appendf(b []byte, format string, a ...any) []byte
            func Appendln(b []byte, a ...any) []byte
            func Errorf(format string, a ...any) error
            func Fprint(w io.Writer, a ...any) (n int, err error)
            func Fprintf(w io.Writer, format string, a ...any) (n int, err error)
            func Fprintln(w io.Writer, a ...any) (n int, err error)
            func Fscan(r io.Reader, a ...any) (n int, err error)
            func Fscanf(r io.Reader, format string, a ...any) (n int, err error)
            func Fscanln(r io.Reader, a ...any) (n int, err error)
            func Print(a ...any) (n int, err error)
            func Printf(format string, a ...any) (n int, err error)
            func Println(a ...any) (n int, err error)
            func Scan(a ...any) (n int, err error)
            func Scanf(format string, a ...any) (n int, err error)
            func Scanln(a ...any) (n int, err error)
            func Sprint(a ...any) string
            func Sprintf(format string, a ...any) string
            func Sprintln(a ...any) string
            func Sscan(str string, a ...any) (n int, err error)
            func Sscanf(str string, format string, a ...any) (n int, err error)
            func Sscanln(str string, a ...any) (n int, err error)
            type Formatter interface{ ... }
            type GoStringer interface{ ... }
            type ScanState interface{ ... }
            type Scanner interface{ ... }
            type State interface{ ... }
            type Stringer interface{ ... }
            > stdout Printf
            > ! go tool compile -h
            [stderr]
            go tool compile disallowed
            [exit status 1]
            > stderr usage:
            FAIL: testdata\script\build_cache_disabled.txt:22: no match for `(?m)usage:` found in st
derr

FAIL
FAIL    cmd/go  76.332s
ok      cmd/go/internal/auth    0.300s
ok      cmd/go/internal/cache   2.271s
ok      cmd/go/internal/fsys    0.514s
ok      cmd/go/internal/generate        0.365s
ok      cmd/go/internal/get     0.359s
ok      cmd/go/internal/imports 0.091s
ok      cmd/go/internal/load    0.076s
ok      cmd/go/internal/lockedfile      0.728s
ok      cmd/go/internal/lockedfile/internal/filelock    0.266s
ok      cmd/go/internal/modconv 0.055s
ok      cmd/go/internal/modfetch        0.038s
ok      cmd/go/internal/modfetch/codehost       0.046s
ok      cmd/go/internal/modfetch/zip_sum_test   0.063s
ok      cmd/go/internal/modindex        0.032s
ok      cmd/go/internal/modload 0.113s
ok      cmd/go/internal/mvs     0.039s
ok      cmd/go/internal/par     0.050s
ok      cmd/go/internal/search  0.039s
ok      cmd/go/internal/str     0.085s
ok      cmd/go/internal/test    0.072s
ok      cmd/go/internal/vcs     0.164s
ok      cmd/go/internal/web     0.073s
ok      cmd/go/internal/work    0.440s
ok      cmd/gofmt       0.107s
go tool compile -o C:\Users\gopher\AppData\Local\Temp\TestGoobj2458381000\go1.o testdata\go1.go: exi
t status 1
go tool compile disallowed

FAIL    cmd/internal/archive    0.059s
ok      cmd/internal/buildid    0.407s
ok      cmd/internal/dwarf      0.041s
ok      cmd/internal/edit       0.045s
ok      cmd/internal/goobj      0.127s
ok      cmd/internal/moddeps    5.657s
ok      cmd/internal/notsha256  0.041s
--- FAIL: TestSymbolTooLarge (0.05s)
    objfile_test.go:121: unexpected error message: want: "symbol too large", got: go tool compile di
sallowed
FAIL
FAIL    cmd/internal/obj        2.036s
ok      cmd/internal/obj/ppc64  0.954s
ok      cmd/internal/obj/riscv  0.194s
ok      cmd/internal/obj/s390x  0.057s
ok      cmd/internal/obj/x86    10.404s
ok      cmd/internal/objabi     0.058s
ok      cmd/internal/pkgpath    0.230s
ok      cmd/internal/quoted     0.067s
ok      cmd/internal/src        0.048s
ok      cmd/internal/sys        0.054s
ok      cmd/internal/test2json  0.218s
--- FAIL: TestIssue21703 (0.22s)
    link_test.go:63: failed to compile main.go: exit status 1, output: go tool compile disallowed

--- FAIL: TestIssue28429 (0.27s)
    link_test.go:97: 'go tool compile -p=main main.go' failed: exit status 1, output: go tool compil
e disallowed
--- FAIL: TestUnlinkableObj (0.51s)
    link_test.go:1105: compile p.go failed: exit status 1. output:
        go tool compile disallowed
--- FAIL: TestIndexMismatch (0.69s)
    link_test.go:784: C:\workdir\go\bin\go.exe tool compile -p=a -o C:\Users\gopher\AppData\Local\Te
mp\TestIndexMismatch2194448998\001\a.o testdata\testIndexMismatch\a.go
    link_test.go:787: compiling a.go failed: exit status 1
        go tool compile disallowed
--- FAIL: TestIssue33979 (2.73s)
    link_test.go:204: 'go tool compile -symabis symabis -p=main -o x1.o main.go' failed: exit status
 1, output: go tool compile disallowed
FAIL
FAIL    cmd/link        29.030s
ok      cmd/link/internal/benchmark     0.123s
ok      cmd/link/internal/ld    15.936s
ok      cmd/link/internal/loader        0.295s
ok      cmd/nm  10.565s
--- FAIL: TestDisasmGoobj (0.04s)
    objdump_test.go:276: go tool compile fmthello.go: exit status 1
        go tool compile disallowed
FAIL
FAIL    cmd/objdump     12.285s
--- FAIL: TestHello (2.98s)
    pack_test.go:382: [C:\workdir\go\bin\go.exe tool compile -p=main hello.go]: exit status 1
        go tool compile disallowed
--- FAIL: TestIssue21703 (3.83s)
    pack_test.go:382: [C:\workdir\go\bin\go.exe tool compile -p=a a.go]: exit status 1
        go tool compile disallowed
--- FAIL: TestCreateWithCompilerObj (1.39s)
    pack_test.go:382: [C:\workdir\go\bin\go.exe tool compile -pack -p=p -o p.a p.go]: exit status 1
        go tool compile disallowed
--- FAIL: TestRWithNonexistentFile (1.31s)
    pack_test.go:382: [C:\workdir\go\bin\go.exe tool compile -p=p -o p.o p.go]: exit status 1
        go tool compile disallowed
FAIL
FAIL    cmd/pack        10.260s
ok      cmd/pprof       5.078s
ok      cmd/trace       1.253s
ok      cmd/vet 11.930s
FAIL
go tool dist: Failed: exit status 1

@gopherbot
Copy link

Change https://go.dev/cl/412774 mentions this issue: cmd/go: reject 'go tool compile'

@bcmills
Copy link
Contributor Author

bcmills commented Jun 16, 2022

To match the dashboard logs, I'm looking for an unindented go tool compile error followed by a blank line.

  • cmd/internal/archive logs one, but it is preceded by a full command line starting with go tool compile -o.
  • ../test logs many such lines, but they are preceded by a ##### ../test header and lines starting with # go run run.go --.

So far I'm not able to reproduce any exact match running any go tool dist test command on a gomote — everything has some sort of preceding header. But maybe something about the coordinator's header parsing is chopping off one of the preceding lines?

@bcmills
Copy link
Contributor Author

bcmills commented Jun 16, 2022

Ok, this is very weird. When go tool compile is modified to always fail:

  • go/internal/gcimporter, internal/abi, and a bunch of tests in cmd fail.
  • A bunch of tests in ../test fail.
  • Nothing else seems to be affected.

That leaves open several possibilities, but all of them are weird. Some that I can think of:

  1. Maybe this go tool compile: error message is not coming from cmd/go? (For example, maybe it is coming from the bootstrap cmd/go instead?)
  2. Maybe this go tool compile: error message is coming from the cmd/internal/archive test or one of the tests in ../test, and somehow the extra log lines around the invocation are getting stripped out (perhaps by a bug in cmd/coordinator's shard-merging logic)?
  3. Maybe this go tool compile: error message is coming from some location that only executes if some prior go tool compile has already succeeded, or some other prior step has already failed silently?

@ianlancetaylor
Copy link
Contributor

I wrote a simple program that ran four instances of $GOROOT/pkg/pkg/tool/$GOOS_$GOARCH=compile -V=full four times in parallel. I ran that program 100,000 times on a gomote, while in a separate terminal running go test std cmd in a loop. I never saw the STATUS_HEAP_CORRUPTION failure.

No idea what is happening here.

@bcmills
Copy link
Contributor Author

bcmills commented Jun 21, 2022

I still suspect some interaction with test sharding in cmd/coordinator here, although I'm not sure exactly what that race would be.

Maybe some kind of race involving how the GOROOT snapshot is copied to the builder's disk?

@bcmills
Copy link
Contributor Author

bcmills commented Jun 22, 2022

I gave this some more thought this evening.

  • We have three occurrences of the error within the few weeks leading up to the freeze: enough to form a pattern but not enough to narrow down a commit range.
  • We have a strong theory for exactly which command is failing
    • ...but we can't manage to get that command to fail outside of the buildlet environment, and the failures have so far occurred only under dist with aggressive sharding — which is a configuration that only the Go project uses (as far as we know).

That suggests to me that the failure mode has something to do with the way we distribute the built GOROOT to our builders, and (crucially!) that external users might not observe this failure mode (because they don't use that mechanism themselves, even during bootstrapping with all.bash).

Given that, I think it would be ok to slip this issue to Go 1.20 to collect more information about the failure rate during open development and to see whether we see the same failure mode under conditions that aren't so closely tied to buildlet sharding.

@aclements
Copy link
Member

I agree with @bcmills that we have enough evidence at this point to drop release-blocker from this.

Given that we're pretty sure we know what command is failing, is there anything we can do to gather more data from future failures? I'm worried we're just going to see logs like the ones we have, which I think we've tapped dry at this point.

@aclements aclements modified the milestones: Go1.19, Go1.20 Jun 22, 2022
@bcmills
Copy link
Contributor Author

bcmills commented Jun 22, 2022

Given that we're pretty sure we know what command is failing, is there anything we can do to gather more data from future failures?

I tweaked the error message in CL 412954 to hopefully confirm Ian's diagnosis of which command is failing, and audited that log line to make sure we're also printing the command's stderr output when it fails (we are, and we already were, and it's empty).

Beyond that I think it would help to get a core dump on failure, but I don't know of a way to dump core on the builders without overwhelming the Coordinator's output limits (compare #49165).

Coming from the opposite direction, would it make sense to have cmd/coordinator inject more metadata about the beginning and end of each shard in the event of failure, especially timing w.r.t. when files are copied and when testing begins? That might help to narrow down (say) filesystem syncing issues in the buildlet, since we could more clearly see whether any tests have been run in between the snapshot write and the failure.

Perhaps we should also audit the buildlet binary running on these hosts for bugs (in x/build/cmd/buildlet itself and its standard-library dependencies, notably os.OpenFile), and/or deploy a freshly-built buildlet?

Finally, I notice that the buildlet's /put and /tgz handlers don't seem to do any kind of checksumming on the payloads — would it make sense to add something there to ensure that the extracted GOROOT actually matches the GOROOT produced on the main builder? I could see STATUS_HEAP_CORRUPTION possibly resulting from a binary corrupted in flight, especially if the failures are happening in the first checkNotStale after the snapshot has been written.

@bcmills
Copy link
Contributor Author

bcmills commented Aug 22, 2022

Confirmed that the failure is indeed during compile -V=full:

greplogs --dashboard -md -l -e \(\?ms\)\\Awindows-.\*0xc0000374 --since=2022-06-22
2022-08-17T17:40:05-dea67a9/windows-amd64-longtest

@bcmills
Copy link
Contributor Author

bcmills commented Sep 6, 2022

An intriguing clue (2022-08-23T03:09:07-0a52d80/windows-amd64-longtest):

# GOARCH: amd64
# CPU: Intel(R) Xeon(R) CPU @ 2.20GHz
# GOOS: windows
# OS Version: 10.0.14393
fatal error: advapi32.dll not found
runtime: panic before malloc heap initialized
go: error obtaining buildID for go tool compile: exit status 0xc0000005

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

@aclements
Copy link
Member

No failures since the last one @bcmills reported.

@mknyszek mknyszek added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Nov 30, 2022
@gopherbot
Copy link

Timed out in state WaitingForInfo. Closing.

(I am just a bot, though. Please speak up if this is a mistake or you have the requested information.)

@bcmills
Copy link
Contributor Author

bcmills commented Aug 11, 2023

Another failure during compile -V=full. Looks like heap corruption but it didn't get to the point of exiting with STATUS_HEAP_CORRUPTION.

runtime: s.allocCount= 1 s.nelems= 5
fatal error: s.allocCount != s.nelems && freeIndex == s.nelems
fatal error: unexpected signal during runtime execution
panic during panic
[signal 0xc0000005 code=0x0 addr=0x4 pc=0x348aa5]

runtime stack:
runtime.throw({0xcc0608, 0x2a})
	runtime/panic.go:859 +0x4d fp=0x20f998 sp=0x20f984 pc=0x338c6d
runtime.sigpanic()
	runtime/signal_windows.go:358 +0x2bd fp=0x20f9bc sp=0x20f998 pc=0x350c6d
runtime.preemptall()
	runtime/proc.go:5774 +0x35 fp=0x20f9d8 sp=0x20f9bc pc=0x348aa5
runtime.freezetheworld()
	runtime/proc.go:962 +0xd6 fp=0x20f9f0 sp=0x20f9d8 pc=0x33d326
runtime.startpanic_m()
	runtime/panic.go:1113 +0x157 fp=0x20fa04 sp=0x20f9f0 pc=0x3393c7
runtime.fatalthrow.func1()
	runtime/panic.go:1018 +0x2d fp=0x20fa24 sp=0x20fa04 pc=0x3390cd
runtime.fatalthrow(0x2)
	runtime/panic.go:1013 +0x69 fp=0x20fa3c sp=0x20fa24 pc=0x339089
runtime.throw({0xcc4fde, 0x31})
	runtime/panic.go:859 +0x4d fp=0x20fa50 sp=0x20fa3c pc=0x338c6d
runtime.(*mcache).nextFree(...)
	runtime/malloc.go:921
runtime.mallocgc(0x11c0, 0xc8a720, 0x1)
	runtime/malloc.go:1110 +0xbdd fp=0x20fac4 sp=0x20fa50 pc=0x301cad
runtime.newobject(0xc8a720)
	runtime/malloc.go:1322 +0x2a fp=0x20fad8 sp=0x20fac4 pc=0x301dfa
runtime.procresize(0x8)
	runtime/proc.go:5263 +0x367 fp=0x20fb3c sp=0x20fad8 pc=0x3471e7
runtime.schedinit()
	runtime/proc.go:762 +0x208 fp=0x20fb60 sp=0x20fb3c pc=0x33cb38
runtime.rt0_go()
	runtime/asm_386.s:243 +0x15f fp=0x20fb64 sp=0x20fb60 pc=0x37019f
go: error obtaining buildID for go tool compile: exit status 2
go tool dist: Failed logging metadata: exit status 1


Error: tests failed: dist test failed: {go_test:go/types go/types}: exit status 1

(In a TryBot on https://go.dev/cl/518776.)

@bcmills bcmills reopened this Aug 11, 2023
@gopherbot gopherbot closed this as not planned Won't fix, can't repro, duplicate, stale Aug 11, 2023
@bcmills bcmills removed the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Aug 11, 2023
@bcmills bcmills removed this from the Go1.20 milestone Aug 11, 2023
@bcmills bcmills reopened this Aug 11, 2023
@bcmills
Copy link
Contributor Author

bcmills commented Aug 11, 2023

Given the signal 0xc0000005 in the trace above, I wonder if this is also related to #54187.

@mknyszek
Copy link
Contributor

@bcmills I think that failure is different. This failure is about STATUS_HEAP_CORRUPTION which AFAICT is an error from some Windows memory manager, not us. It could be our fault, but given that we haven't seen this failure in a while, I think the failure you referenced probably needs a new issue. Closing this for now.

@bcmills
Copy link
Contributor Author

bcmills commented Aug 16, 2023

Fair enough. Filed as #62079.

@mknyszek
Copy link
Contributor

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Windows
Projects
Status: Done
Development

No branches or pull requests

6 participants