-
Notifications
You must be signed in to change notification settings - Fork 18k
x/build/cmd/coordinator: apply GO_TEST_TIMEOUT_SCALE to scale go test timeout for x-repo tests #56968
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
Comments
In combination with #47257 (which has the side-effect of causing tests that need export data for (CC @aclements @golang/release) |
I don't suppose we'd be willing to apply |
At the very least, I think that would require a proposal (and perhaps a freeze exception). 😅 |
Fair enough. I'll note that in addition to processing (The whole thing is weird, maybe we should be running a quick benchmark at the beginning of dist test and setting a timeout scale based on that!) |
This comment was marked as duplicate.
This comment was marked as duplicate.
Could we just get rid of that default and set
Long-term (once we implement #48157), I wonder if the per-test-binary timeouts are even all that useful. But I guess even with per-test timeouts we'd still need a way to scale them. I'm not sure that running a benchmark would be all that helpful: some builders are slow because of CPU performance, while others are slow because of disk performance (which disproportionately affects toolchain tests, since they tend to be more I/O intensive), and yet others are slow because of low memory (resulting in contention for file buffer cache and/or swap space). To get a reliable benchmark, we would probably need to measure all three — and we'd still need to figure out a way to incorporate that into |
Change https://go.dev/cl/453975 mentions this issue: |
We've resolved #56967 in a different way (via CL 454497 and CL 454499), so I believe this is no longer contributing to ongoing test timeouts. However, I do still think we should fix it at some point: I suspect that honoring |
Change https://go.dev/cl/455521 mentions this issue: |
Change https://go.dev/cl/455520 mentions this issue: |
These two builders have GO_TEST_TIMEOUT_SCALE values set in their local environment. Since those variables affect the builder, and will soon be needed for golang.org/x test timeout scale, set them explicitly in the dashboard package. That makes more of the builder configuration visible and removes the need to maintain local configuration on those builders. For golang/go#56968. Change-Id: I206cbddab91c3628f43716e8b05fd52d94fba7f2 Reviewed-on: https://go-review.googlesource.com/c/build/+/455520 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com>
These values come from cmd/dist doing it by default based on GOARCH. We want to factor out that logic from cmd/dist, so apply it explicitly in x/build to appropriate builders. CL 455518 removes it from cmd/dist. The appropriate builders were found by iterating over all builders in this package and filtering on their GOARCH value. For golang/go#56968. For golang/go#57117. Change-Id: I1bccb7144d9ae13ca17e5f12169924d0fb89e341 Reviewed-on: https://go-review.googlesource.com/c/build/+/455521 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Many of the slower Go builders (especially reverse builders) set
GO_TEST_TIMEOUT_SCALE
to some positive factor to compensate for a slow host.For the main
go
repo, that scale factor is currently applied incmd/dist
:https://cs.opensource.google/go/go/+/master:src/cmd/dist/test.go;l=207-212;drc=0a8055ef3f84673dc3a70ce5143bdf9817986dea
However, I don't see any place where we apply it for the
x
-repo tests:https://cs.opensource.google/search?q=GO_TEST_TIMEOUT_SCALE&sq=&ss=go%2Fx%2Fbuild
And, empirically it does not seem to be applied for
x
repos at all. In https://build.golang.org/log/a2a8de1767171071d4551d937474538b0ad961c6, we seeGO_TEST_TIMEOUT_SCALE=10
in the environment, but atest timed out after 10m0s
— which is exactly equal to the default timeout forgo test
!Perhaps we should update
(*cmd/coordinator.buildStatus).runSubrepoTests
to also apply the scale factor? It seems unduly optimistic to assume thatx
tests will run quickly even whenstd
tests do not.The text was updated successfully, but these errors were encountered: