x/build: ensure that TryBot builders are using a released toolchain for GOROOT_BOOTSTRAP #30633
Comments
We no longer do releases of Go 1.4. Often times when Go 1.4 no longer bootstraps on a modern version of an OS, we need to use a tip or release-branch.go1.14 commit to get it bootstrapped.
What does Go 1.12 have to do with it? The bootstrap builder only needs to be Go 1.4-ish. |
It doesn't really matter what version the builder uses, as long as it is some version for which we can easily reproduce failures. A released Go 1.11 (if it works) or Go 1.12 should be fine. The reason 1.12 is relevant is that it presumably supports OpenBSD — meaning that there is at least one supported release that could be used instead of the current mid-cycle development build. |
I've seen your OpenBSD failures keep occuring. It seems that reproducing it isn't the problem here. Presumably gomote will also fail in the same way. I assume you mean locally on Linux? Have you tried using that git rev as your local GOROOT_BOOTSTRAP version on Linux? But yeah, I agree that the bootstrap tarball shouldn't be from some random revision. Something on release-branch.go1.4 seems preferable (to test our minimum supported version and keep us honest), but Go 1.4 didn't have the cross-compiling bootstrap.bash support for x/build/cmd/genbootstrap. So I guess we can just rebuild from release-branch.go1.12. I have other things on my plate at the moment so feel free to work on this or we can just keep it open. |
Yeah, and that failure mode is reproducible on Linux at that rev. (Which makes it even more frustrating, since any workaround would be specific to that unreleased version of the toolchain.) |
Great. Sounds like an easy fix then, just re-running genbootstrap & upload a new tarball (with unique filename) & updating the URL in dashboard/builders.go. (Note that the OpenBSD ABI changed some time ago so there was a period where some binaries from certain Go versions wouldn't run on some OS versions, so it's safer to only make new tarballs with unique URLs so we can roll back.) |
Change https://golang.org/cl/165747 mentions this issue: |
Updates golang/go#30633 Change-Id: I593a66e18f7546fdeaf7513e2a16bdf82a5fa5a8 Reviewed-on: https://go-review.googlesource.com/c/build/+/165747 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
The other option here would be to install the Go package that is available for the given OpenBSD release. That way you would be using a more recent version and one that is easily reproducible (e.g. install OpenBSD and run 'pkg_add go'). This also avoids any ABI issues with a Go 1.4 tarball. |
@4a6f656c, I would really rather we not rely on system-packaged versions of the toolchain. I don't know about OpenBSD in particular, but packagers on some systems have been known to remove files or otherwise alter the package from the standard |
Remaining work for this issue is to audit the other builders to determine whether they're all using released versions. |
Change https://golang.org/cl/170863 mentions this issue: |
The OpenBSD builder is using an unreleased development build of the
go
toolchain:That builder also runs as a TryBot. That means:
Now that Go 1.12 is released, we should make sure that all of the TryBot builders are using a released
go
toolchain for theirGOROOT_BOOTSTRAP
.CC @dmitshur @bradfitz
The text was updated successfully, but these errors were encountered: