-
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/cmd/godoc: improve diagnostics for server hangs in TestWeb/GOPATH #50014
Comments
At this failure rate, this looks to me like a release-blocker via #11811. The test should either be fixed or skipped on the affected builders. Looking at the test, I see at least three problems with the timeout strategy:
Probably for this issue we can just fix (2), although it would be nice to address (1) as well. |
Looking at this further, the failures are always in |
|
cc @dmitshur |
Change https://golang.org/cl/373005 mentions this issue: |
Change https://golang.org/cl/377835 mentions this issue: |
Change https://golang.org/cl/377836 mentions this issue: |
The test needs better diagnostics. Proposal #50436 is at the bottom of this yak stack, but in the meantime we can polyfill the needed API into an |
Intriguingly, the We should still add better failure diagnostics to this test, but since it is no longer failing on the builders it won't mask other regressions, and doesn't need to be a release-blocker. |
Now seen on
|
2022-03-02T11:33:18-ffa170d-fd2e1e7/dragonfly-amd64 |
Marking as release-blocker for Go 1.19 due to the recent failure on the |
Change https://go.dev/cl/403534 mentions this issue: |
This test fails frequently, with a failure mode that is difficult to diagnose. (golang/go#50436 may help with that eventually.) For now, skip the test to reduce noise on the build dashboard. For golang/go#50014. Change-Id: I182be5c705846631c983bd5b6c51ab90b71a216a Reviewed-on: https://go-review.googlesource.com/c/tools/+/403534 Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Auto-Submit: Bryan Mills <[email protected]> gopls-CI: kokoro <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
Change https://go.dev/cl/403849 mentions this issue: |
After CL 403534, another TestWeb failure was observed in https://build.golang.org/log/24cca44e99d848317a6bb73b6d15528b500e5643. This change expands the skips to try to cover more of the cases where cmd/godoc might hang. For golang/go#50014. Change-Id: If3f08da69a68dc00c399b89ffb2c4f049114aeb6 Reviewed-on: https://go-review.googlesource.com/c/tools/+/403849 Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> gopls-CI: kokoro <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
This test now has skips for these failure modes, so it is no longer a release-blocker. |
Hello Team, I am facing issue mentioned below --- FAIL: TestWeb (7.99s) |
The function is derived from the testenv.Command function in the main repo as of CL 446875, with a couple of modifications to allow it to build (with more limited functionality) with Go versions as old as 1.16 (currently needed in order to test gopls with such versions). testenv.Command sets up an exec.Cmd with more useful termination behavior in the context of a test: namely, it is terminated with SIGQUIT (to get a goroutine dump from the subprocess) shortly before the test would otherwise time out. Assuming that the test logs the output from the command appropriately, this should make deadlocks and unexpectedly slow operations easier to diagnose in the builders. For golang/go#50014. Updates golang/go#50436. Change-Id: I872d4b24e63951bf9b7811189e672973d366fb78 Reviewed-on: https://go-review.googlesource.com/c/tools/+/377835 Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Joedian Reid <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Reviewed-by: Robert Findley <[email protected]> gopls-CI: kokoro <[email protected]>
- Use testenv.Command to obtain Cmd instances that terminate (with useful goroutine dumps!) before the test's timeout, and remove arbitrary hard-coded timeouts. - Execute the test binary itself as cmd/godoc instead of invoking (and cleaning up after) 'go build'. - Use context cancellation to reduce the number of ad-hoc goroutines and channels needed by the tests and to provide stronger invariants on process cleanup. For golang/go#50014 Change-Id: I19ae4d10da691db233c79734799ae074ffdf6a03 Reviewed-on: https://go-review.googlesource.com/c/tools/+/377836 Run-TryBot: Bryan Mills <[email protected]> Reviewed-by: Joedian Reid <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> TryBot-Result: Gopher Robot <[email protected]> gopls-CI: kokoro <[email protected]> Auto-Submit: Bryan Mills <[email protected]>
Using |
greplogs --dashboard -md -l -e 'FAIL: TestWeb .*\n\s+.*\n\s+.*server failed to respond'
2021-12-06T14:58:33-c882a49-f8a8a73/dragonfly-amd64
2021-12-05T12:50:44-c882a49-ecf6b52/dragonfly-amd64
2021-12-04T04:50:55-c882a49-549cfef/openbsd-386-70-n2d
2021-12-04T04:41:31-c882a49-cd5f2cf/dragonfly-amd64
2021-12-04T01:07:28-c882a49-fa88ba1/openbsd-386-70-n2d
2021-12-04T01:07:10-c882a49-ba83aa7/dragonfly-amd64
2021-12-03T22:57:02-c882a49-9ae0b35/openbsd-386-70-n2d
2021-12-03T21:25:05-c882a49-d20a0bf/dragonfly-amd64
2021-12-03T21:23:11-c882a49-b3e1fbf/dragonfly-amd64
2021-12-03T18:55:11-c882a49-0f2d0d0/openbsd-386-70-n2d
2021-12-03T18:55:02-f64c0f4-c4a8550/dragonfly-amd64
2021-12-03T18:27:20-e212aff-c4a8550/dragonfly-amd64
2021-12-03T01:09:21-e212aff-0985990/openbsd-386-70-n2d
2021-12-03T00:46:20-e212aff-8da66a3/dragonfly-amd64
2021-12-02T16:48:07-e212aff-36be0be/openbsd-386-70-n2d
2021-12-01T15:05:46-615f9a6-b7651e5/openbsd-386-70-n2d
2021-11-30T22:42:17-1fd30d2-7ccbcc9/openbsd-386-70-n2d
2021-11-30T18:09:02-2c9b078-931d80e/openbsd-386-70-n2d
2021-11-30T16:43:31-2c9b078-682435d/openbsd-386-70-n2d
2021-11-23T17:30:32-1e71a25-00045b7/openbsd-386-68
2021-11-16T01:10:28-4adea50-9e13a88/openbsd-386-68
2021-11-13T00:50:04-49ce184-c893a85/openbsd-386-68
2021-11-12T18:14:22-fda06c1-8b66b3d/openbsd-386-68
2021-11-10T22:16:25-fc3ed20-4d06839/openbsd-386-68
2021-11-09T20:10:50-e900012-5430203/openbsd-386-68
2021-11-09T18:23:16-e900012-55e6e82/openbsd-386-68
2021-11-02T20:49:06-6561d8c-b246873/openbsd-386-68
2021-08-06T19:38:52-d529aec-fa6aa87/dragonfly-amd64
2021-08-04T15:26:45-309db04-6e73886/dragonfly-amd64
2021-08-04T13:50:16-309db04-7921829/dragonfly-amd64
2021-08-03T19:59:22-32c652e-16ab7e4/dragonfly-amd64
2021-08-03T16:06:16-594b3a2-8a7ee4c/dragonfly-amd64
2021-08-03T16:06:16-594b3a2-7921829/dragonfly-amd64
2021-08-02T19:06:04-a668498-8a7ee4c/dragonfly-amd64
2021-07-27T22:01:54-07bc1bf-7cd10c1/dragonfly-amd64
2021-07-26T23:46:13-07bc1bf-840e583/dragonfly-amd64
2021-07-26T20:36:31-07bc1bf-ed8cbbc/dragonfly-amd64
2021-07-26T20:36:31-07bc1bf-ecaa681/dragonfly-amd64
2021-07-22T17:13:07-251092d-c6d89db/dragonfly-amd64
2021-07-21T23:55:41-412ee17-3e48c03/dragonfly-amd64
2021-07-21T20:52:30-7f68387-3e48c03/dragonfly-amd64
2021-07-21T16:31:48-7aa8294-bc51e93/dragonfly-amd64
2021-07-13T13:36:40-d36a54b-c6d89db/dragonfly-amd64
2021-07-12T16:16:36-980829d-ab4085c/dragonfly-amd64
2021-07-12T16:16:36-980829d-3d1d066/dragonfly-amd64
2021-07-10T00:32:22-5b540d3-ab4085c/dragonfly-amd64
2021-07-09T19:50:55-e33c0f2-ab4085c/dragonfly-amd64
2021-07-09T17:21:04-8e32e9f-fb052db/dragonfly-amd64
2021-07-08T23:16:08-6994825-3d1d066/dragonfly-amd64
2021-07-08T19:56:07-71eae3a-3d1d066/dragonfly-amd64
2021-07-07T20:25:29-fd00574-f264879/dragonfly-amd64
2021-07-02T16:25:10-7edcfe5-6125d0c/dragonfly-amd64
2021-07-01T01:38:42-f0847e0-9d65578/dragonfly-amd64
2021-06-30T22:02:09-f0847e0-4711bf3/dragonfly-amd64
2021-06-22T16:01:58-d25f906-5bd09e5/dragonfly-amd64
The text was updated successfully, but these errors were encountered: