-
Notifications
You must be signed in to change notification settings - Fork 17.7k
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
x/build: add longtest builders for linux-arm64 #49649
Comments
I have to do some math, but I am not sure that we currently have the hardware capacity for this in the immediate term. |
@toothrot Now that we have linux-amd64 instances on GCP, do you see any reason why we wouldn't be able to add a longtest builder? |
@cherrymui do you think you can take a look at this? For now we can only do arm64 because arm isn't working on GCE. |
Sure. I'll take a look. |
Change https://go.dev/cl/452858 mentions this issue: |
For golang/go#49649. Updates golang/go#53851. Change-Id: Ifbfd2b089b909542d0568d529ba738e4b217cf5c Reviewed-on: https://go-review.googlesource.com/c/build/+/452858 Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Cherry Mui <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]>
The linux-arm64-longtest builder is up and running. But there are some test failures. I'll look into them. |
I looked into this. It is not that #48319 is regressed or anything to do with GOROOT_FINAL, but external linking looks nondeterministic. Somehow the (externally linked) output contains the path of a temporary file. I'll see if there is a way to prevent that. The C toolchain on the builder is
|
The builder has @bcmills perhaps we could make the test tolerate missing |
I ran the tests manually on gomote. Besides the two failures above, and a flaky failure of #56574, another issue is in misc/reboot it runs out of disk space.
The machine seems to have rather small amount of disk space:
@cagedmantis would it be possible to increase the disk space? Thanks. |
Change https://go.dev/cl/453656 mentions this issue: |
@cherrymui @bcmills adding gpg-agent on the linux-arm64-bullseye image changes the TestScript/version_buildvcs_git_gpg test failure output to:
|
I can roll the increase in disk space into another set of changes I am making. That will be mailed shortly. |
@cagedmantis thanks for the quick update! I'm not very familiar with gpg. @bcmills do you recognize that failure mode? Thanks. |
My understanding from https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html#GPG-Configuration-Options is that recent versions of From that page:
So I think it's fine for the test to fail if
I do not. I've mailed https://go.dev/cl/453775 to try to produce more useful output for debugging. |
Change https://go.dev/cl/453775 mentions this issue: |
…git_gpg Also update test helper programs to avoid the deprecated io/ioutil package and fix minor formatting issues. For #49649. Change-Id: Id404acbb2795470420854d682f849d959d2080c0 Reviewed-on: https://go-review.googlesource.com/c/go/+/453775 Auto-Submit: Bryan Mills <[email protected]> Run-TryBot: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Carlos Amedee <[email protected]>
This change adds gpg-agent to the image used for linux-arm64-longtest. TestScript/version_buildvcs_git_gpg is failing because it is missing. This also adds gpg-agent and triggers a rebuild of the linux-x86-bullseye image. Upates golang/go#49649 Change-Id: I8adac58f21beeb7a1403d8d672b5a7409fd14f74 Reviewed-on: https://go-review.googlesource.com/c/build/+/453656 Reviewed-by: Carlos Amedee <[email protected]> Run-TryBot: Carlos Amedee <[email protected]> Reviewed-by: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
The linux-x86-bullseye and linux-arm64-bullseye containers images have been updated with the changes in go.dev/cl/453656. |
Change https://go.dev/cl/453955 mentions this issue: |
Retitling to reflect the fact that we don't have short-term plans to add 32-bit ARM since it isn't available on GCP at the moment. |
Thank you @cagedmantis ! |
If we explicitly start
This seems like the reason why we are seeing an error when |
Oof. That seems like an upstream bug in The test was added it CL 367034 — @andremarianiello, do you have any suggestions as to how we can make the |
The gpg failure is interesting. When I gomote ssh to the builder and run the test, it passes.
But if I run it without ssh, with gomote run, it fails
Weird. Maybe the Also, even after CL 453656, the x86 builder, linux-amd64-longtest, still does not have |
I don't, unfortunately. Ideally we could run gpg with an agent, but it appears that gpg2 requires an agent to run. I also couldn't find a setting to control the max socket name length. I wouldn't bother me personally to remove the test, but it was requested (IIRC) by one of the reviewers of my MR, so you might want to ask for that person's opinion as well. |
I'm pretty sure that person was me. 🙃 |
@cherrymui, the difference between SSH and |
@cherrymui I just rebuilt the |
@bcmills thanks for the information! SSH:
gomote run:
It looks like SSH use |
@cagedmantis yeah, it does have |
@cagedmantis with Maybe we want to roll it back or skip the test... |
I've tagged |
WOMP, sorry! I'm fine with whatever you want to do haha! |
@cherrymui, the difference in TMPDIR lengths is the likely explanation for the difference. The struct passed to the system call to create a Unix socket has an astonishingly short hard-coded length for the path. |
@bcmills exactly! Thanks!
(If we want to keep the test) is there something the test script could do to work around? |
With all the CLs/issues above the linux-arm64-longtest builder is now "ok". Thank you @cagedmantis @bcmills ! I'll watch it for a while and if it works reliably we can remove the "known issue". |
Tried a trybot run
Seems reasonably fast, faster than the linux-arm-aws and windows-386-2008 builders. |
Change https://go.dev/cl/456043 mentions this issue: |
Change https://go.dev/cl/504525 mentions this issue: |
The linux/arm64 port is first class and a longtest builder was added for it during the Go 1.20 development cycle. It's a mandatory trybot on 1.20+ release branches and is working well. The builder recently found a real problem in go.dev/issue/60825, which has been resolved by now. Upgrade this builder from an advisory TryBot to have more complete release test coverage. For golang/go#40561. For golang/go#49649. For golang/go#29252. Change-Id: I1765e820deb0d34b7bb9a72aba397d87c1369ced Reviewed-on: https://go-review.googlesource.com/c/build/+/504525 Run-TryBot: Dmitri Shuralyov <[email protected]> Reviewed-by: Heschi Kreinick <[email protected]> Reviewed-by: Cherry Mui <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Dmitri Shuralyov <[email protected]>
According to https://golang.org/wiki/PortingPolicy#first-class-ports,
linux/arm
andlinux/arm64
are currently “first class ports”.However, we have no longtest builder coverage whatsoever for these architectures. If we really intend to support them on par with linux/386 and linux/amd64, they ought to have builders running the tests at the same level of depth.
(CC @golang/release, @thanm)
The text was updated successfully, but these errors were encountered: