Closed millerresearch closed 1 month ago
Related Issues and Documentation
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
cc @golang/release @dmitshur
Change https://go.dev/cl/608076 mentions this issue: dashboard: leave out -7 suffix from go.dev/dl/ bootstrap URLs
Thanks for reporting. This is a mistake in CL 520901, which didn't take into account the "-5" or "-7" suffixes in host config's HostArch
. For GOOS != linux, the GOARCH = arm go.dev/dl/ archives are built with the cross-compilation default of GOARM=7, which is what the builders mentioned above are looking to download. Sent CL 608076.
Please note that the legacy build infrastructure isn't intended to be fully supported beyond the May 17, 2024 date (golang-dev thread), so we can only fix minor issues similar to this in order to help finish ongoing builder migrations to LUCI and give them more time. Thanks for for your work on migrating the remaining builders to LUCI.
Please note that the legacy build infrastructure isn't intended to be fully supported beyond the May 17, 2024 date (golang-dev thread), so we can only fix minor issues similar to this in order to help finish ongoing builder migrations to LUCI and give them more time. Thanks for for your work on migrating the remaining builders to LUCI.
The plan9-arm LUCI builder is pretty stable now, with no repeatable failures and no more intermittent flakes than the legacy version. Do I need to do something formal to switch off the legacy plan9-arm builder or just stop running it?
Looks like the fix wasn't sufficient. All plan9-arm builds are now failing like this:
Build log:
plan9-arm at 1fd8557249a9e8c04fbe7490483443ccc35dea50
:: Running /boot/workdir/go/src/make.rc with args ["/boot/workdir/go/src/make.rc" "-force"] and env ["home=/usr/glenda" "path=/boot/workdir/go1.4/go/bin\x00.\x00/bin" "type=host-plan9-arm-0intro" "GOARM=7" "GO_BUILD_KEY_DELETE_AFTER_READ=false" "GOTOOLCHAIN=local" "status=" "GO_TEST_TIMEOUT_SCALE=3" "fs=aoe" "GOCACHE=/boot/cache" "GOROOT_BOOTSTRAP=/boot/workdir/go1.4" "sysname=pi4n" "workdir=/boot/workdir" "objtype=arm" "*=aoe" "WORKDIR=/boot/workdir" "GO_BUILDER_NAME=plan9-arm" "GO_TEST_TIMEOUT_SCALE=3" "GOBIN=" "GOROOT_BOOTSTRAP="] in dir /boot/workdir/go/src
Building Go cmd/dist using . (go1.20 plan9/arm)
Building Go toolchain1 using /go1.4.
go tool dist: FAILED: /go1.4/bin/go install -tags=math_big_pure_go compiler_bootstrap purego bootstrap/cmd/...: fork/exec /go1.4/bin/go: '/go1.4' file does not exist
Error: build failed: make script failed: exit status: 'make.rc 199: dist 697: 2'
I don't know why it's trying to load the bootstrap from /go1.4
instead of /boot/workdir/go1.4
The plan9-arm LUCI builder is pretty stable now, with no repeatable failures and no more intermittent flakes than the legacy version. Do I need to do something formal to switch off the legacy plan9-arm builder or just stop running it?
Indeed, that is great! Both plan9/arm and plan/386 LUCI builders look good to remove their known issue and consider them added. I sent CL 608155 to do that, and CL 607656 to mark them as migrated. (CC @0intro.)
When the coordinator is redeployed with the latter CL (next week), it'll stop sending work to the legacy plan9/arm builder. But given the equivalent LUCI builder is already providing good signal, I think it's fine for you to stop running it anytime. Thanks very much.
I don't know why it's trying to load the bootstrap from
/go1.4
instead of/boot/workdir/go1.4
CL 606835 works around that go.dev/dl/ tarballs, where coordinator gets its go1.22.6 bootstrap toolchain from, have a top-level "go" directory by adding its bin directory to $PATH (or the equivalent path
on Plan 9) and clears GOROOT_BOOTSTRAP. It is there in the log, "path=/boot/workdir/go1.4/go/bin\x00.\x00/bin"
and "GOROOT_BOOTSTRAP="
, but it seems not to work on Plan 9 as it did for other OSes. Maybe there's something different about that logic in make.rc vs make.bash. It seems to be finding some go1.20 bootstrap, but not printing its path, then falls back to a non-existing $home/go1.4
instead.
From my side, it might be easiest to adjust the plan9-arm buildlet to set $GOROOT_BOOTSTRAP to $WORKDIR/go1.4/go. From your side, you could try to place a go1.22.6 plan9/arm bootstrap in /go1.4
or something along those lines. Given the builder is about go go away as mentioned above, I don't think it's worth to do either. However, if there is a problem in the logic of finding a bootstrap in make.rc that you can spot, a fix to make it behave like the .bash version would be useful.
I sent CL 608155 to [remove known issue], and CL 607656 to mark them as migrated [which stops coordinator from sending them work].
I haven't heard from you on those CLs, so I'll put them on hold for now. Whenever you're ready to take those next steps, please let me know and I'll rebase & submit them.
Closing this again since the original problem with write_go_bootstrap_tar failing with 404 is resolved, the only currently connected legacy plan9 builder (plan9-arm) is working okay with a go1.22.6 bootstrap, so I don't think there's more left to do here.
Go version
gotip
Output of
go env
in your module/workspace:What did you do?
Observed https://farmer.golang.org
What did you see happen?
What did you expect to see?
It appears the build script is trying to fetch boostrap archives of the form
go1.22.6.GOOS-arm-7.tar.gz
when onlygo1.22.6.GOOS-arm.tar.gz
exists (ie without the-7
).