-
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/tools/gopls: unskip all previously flaky regtests #53878
Comments
Change https://go.dev/cl/417576 mentions this issue: |
Change https://go.dev/cl/418898 mentions this issue: |
Change https://go.dev/cl/419106 mentions this issue: |
The fundamental bug causing TestChangePackageName to fail has been fixed, yet unskipping it revealed a new bug: tracking whether or not a package should be loaded requires that we actually store that package in s.meta. In cases where we drop metadata, we also lose the information that a package path needs to be reloaded. Fix this by significantly reworking the tracking of pending loads, to simplify the code and separate the reloading logic from the logic of tracking metadata. As a nice side-effect, this eliminates the needless work necessary to mark/unmark packages as needing loading, since this is no longer tracked by the immutable metadata graph. Additionally, eliminate the "shouldLoad" guard inside of snapshot.load. We should never ask for loads that we do not want, and the shouldLoad guard either masks bugs or leads to bugs. For example, we would repeatedly call load from reloadOrphanedFiles for files that are part of a package that needs loading, because we skip loading the file scope. Lift the responsibility for determining if we should load to the callers of load. Along the way, make a few additional minor improvements: - simplify the code where possible - leave TODOs for likely bugs or things that should be simplified in the future - reduce the overly granular locking in getOrLoadIDsForURI, which could lead to strange races - remove a stale comment for a test that is no longer flaky. Updates golang/go#53878 Change-Id: I6d9084806f1fdebc43002c7cc75dc1b94f8514b9 Reviewed-on: https://go-review.googlesource.com/c/tools/+/417576 Run-TryBot: Robert Findley <[email protected]> gopls-CI: kokoro <[email protected]> Reviewed-by: Suzy Mueller <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
This test ran slowly sometimes. Now that we have improved performance, elimininated arbitrary timeouts, and improved cacheability of computed results when running with -short, I suspect this test should no longer flake. If it does, we can reduce its cost in other ways rather than turning it off entirely. Updates golang/go#48773 Updates golang/go#53878 Change-Id: I878e78117df5a1a25f4ac5f72e02f28fc078ec73 Reviewed-on: https://go-review.googlesource.com/c/tools/+/419106 Run-TryBot: Robert Findley <[email protected]> Reviewed-by: Bryan Mills <[email protected]> gopls-CI: kokoro <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
This test was originally skipped due to deadline exceeded errors. In the time since, we've made performance improvements, fixed races, and altered the regtests to remove arbitrary deadlines. Unskip it to see if it still flakes. For golang/go#44098 For golang/go#53878 Change-Id: I06530f2bc9c6883f415dc9147cfcbf260abb2a00 Reviewed-on: https://go-review.googlesource.com/c/tools/+/418898 Run-TryBot: Robert Findley <[email protected]> gopls-CI: kokoro <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Bryan Mills <[email protected]>
Change https://go.dev/cl/420718 mentions this issue: |
I believe the races described in the issue have been fixed: we should invalidate mod tidy results on any metadata change. If this invalidation doesn't work due to a race, we want to know about it. Update the test to wait for file-related events to complete before removing files, in an attempt to avoid windows file-locking issues. For golang/go#40269 For golang/go#53878 Change-Id: I91f0cb4969851010b34904a0b78ab9bd2808f92e Reviewed-on: https://go-review.googlesource.com/c/tools/+/420718 Run-TryBot: Robert Findley <[email protected]> gopls-CI: kokoro <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Suzy Mueller <[email protected]>
Change https://go.dev/cl/422910 mentions this issue: |
Change https://go.dev/cl/423974 mentions this issue: |
Metadata reloading has been significantly refactored recently. Unskip this test to see if it still flakes. For golang/go#51352 For golang/go#53878 Change-Id: I9f2ae1835bbace1b5095c2d45db082c4e709437b Reviewed-on: https://go-review.googlesource.com/c/tools/+/423974 Run-TryBot: Robert Findley <[email protected]> TryBot-Result: Gopher Robot <[email protected]> gopls-CI: kokoro <[email protected]> Reviewed-by: Peter Weinberger <[email protected]>
Reloading has been significantly refactored recently. Unskip this test to see if it flakes: - If it does not flake, that is a useful signal. - If it does flake, that is also a useful signal. Notably, following CL 419500 we allow network when reloading the workspace, and so do not need to apply quick-fixes in order to download the new module from the proxy. For golang/go#46375 For golang/go#53878 Change-Id: Idde7195730c32bdb434a26b28aac82649dd1b5ac Reviewed-on: https://go-review.googlesource.com/c/tools/+/422910 Run-TryBot: Robert Findley <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Peter Weinberger <[email protected]> gopls-CI: kokoro <[email protected]>
FWIW it looks like TestCreateDependency had a flake: 2022-09-01T03:24:42-49ab44d-86e9e0e/openbsd-amd64-70 Should this get a new issue or is it relevant enough to this? |
@mknyszek thanks for reporting. Hmm. I don't think that flake is actually related to TestCreateDependency: it is simply an error deleting the test files during cleanup. greplogs also turned up the following recent failure in go/packages tests on openbsd: I wonder if this is a recent regression on openbsd? Unclear, so probably best not to assume, and instead file separate new issues for gopls and go/packages. |
The |
Change https://go.dev/cl/496882 mentions this issue: |
Remove skips for two tests related to line directives (now fixed), and delete a test related to the old parse cache, which no longer exists. Updates golang/go#53878 Change-Id: I15b1e5d72f5ccc8c094eaa43e73a9bcc1f75c031 Reviewed-on: https://go-review.googlesource.com/c/tools/+/496882 Reviewed-by: Peter Weinberger <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Robert Findley <[email protected]> gopls-CI: kokoro <[email protected]>
Change https://go.dev/cl/496883 mentions this issue: |
This test was fixed in CL 494675, which forced snapshots to observe all overlays when updating the view. Updates golang/go#53878 Fixes golang/go#57934 Change-Id: I018bdd260255d6a630c7fc8788935fd69f5e7477 Reviewed-on: https://go-review.googlesource.com/c/tools/+/496883 TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Alan Donovan <[email protected]> gopls-CI: kokoro <[email protected]> Run-TryBot: Robert Findley <[email protected]>
Change https://go.dev/cl/496885 mentions this issue: |
This test is updated to exercise hover over literals, not vars, as was decided in golang/go#58220. Updates golang/go#53878 Change-Id: Ic70d3492f28580ebfea24ec08dc47b1ad385c2ff Reviewed-on: https://go-review.googlesource.com/c/tools/+/496885 Run-TryBot: Robert Findley <[email protected]> Reviewed-by: Alan Donovan <[email protected]> gopls-CI: kokoro <[email protected]> Auto-Submit: Robert Findley <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
We have unskipped all flaky regtests. |
This is a follow up to https://go.dev/issue/53781, a deterministic panic that made it into [email protected] in part because a flaky regression test had been skipped, and not un-skipped when the root cause of flakiness was resolved.
We have recently made improvements to several potential sources of flakiness: server shutdown races, invalidation races, and performance. We also have resources to work on flakes that weren't available during the 1.18 push. In light of #53781, we should endeavor to unskip (and further de-flake if necessary) all regression tests that have been unconditionally skipped. This issue tracks that effort:
Currently skipped tests:
go mod tidy
cache entry races with file system changes #40269)The text was updated successfully, but these errors were encountered: