Skip to content

x/tools/gopls/internal/lsp/cmd/test: TestFix failures #59475

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

Closed
gopherbot opened this issue Apr 6, 2023 · 47 comments
Closed

x/tools/gopls/internal/lsp/cmd/test: TestFix failures #59475

gopherbot opened this issue Apr 6, 2023 · 47 comments
Assignees
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Milestone

Comments

@gopherbot
Copy link
Contributor

gopherbot commented Apr 6, 2023

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix" && date < "2023-08-01"

Issue created automatically to collect these failures.

Example (log):

--- FAIL: TestFix (1.93s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot gopherbot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Apr 6, 2023
@gopherbot gopherbot added Tools This label describes issues relating to any tools in the x/tools repository. gopls Issues related to the Go language server, gopls. labels Apr 6, 2023
@gopherbot gopherbot added this to the Unreleased milestone Apr 6, 2023
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-04 16:15 linux-amd64-bullseye tools@4d205d81 go@508f445a x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.93s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
2023-04-06 18:59 linux-arm64 tools@4bea1157 go@99001c46 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.31s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-06 19:16 linux-amd64-sid tools@45ef8294 go@a3df6c0e x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.70s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-06 19:16 linux-ppc64le-buildlet tools@45ef8294 go@693a34e7 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.49s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-10 22:26 linux-arm-aws tools@d03c59db go@df6d442c x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.45s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@bcmills
Copy link
Contributor

bcmills commented Apr 11, 2023

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-10 22:26 linux-amd64-goamd64v3 tools@d03c59db go@bc5b1948 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.74s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-10 22:26 linux-amd64-sid tools@d03c59db go@b3a194aa x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.76s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-10 22:26 freebsd-amd64-12_3 tools@d03c59db go@abb86e6e x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (2.03s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-13 13:45 linux-amd64-sid tools@b6f4d07d go@abb86e6e x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (2.05s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-13 13:45 linux-ppc64le-buildlet tools@b6f4d07d go@3f747d09 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.84s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-18 19:06 aix-ppc64 tools@641e4d7e go@130a7f8e x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (2.72s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-18 19:06 linux-amd64-fedora tools@641e4d7e go@fd786a55 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.85s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

@findleyr
Copy link
Member

CC @adonovan

This is a real bug that I don't understand. Somehow our code actions have become racy. Given that we don't observe this in other regtests (which all await the initial workspace load), I suspect this is a race related to initialization.

@findleyr findleyr self-assigned this Apr 18, 2023
@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/486115 mentions this issue: gopls/internal/lsp: finish debouncing on context cancellation

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-18 19:06 dragonfly-amd64-622 tools@641e4d7e go@8c2ff88c x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (2.61s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>

watchflakes

gopherbot pushed a commit to golang/tools that referenced this issue Apr 20, 2023
While investigating golang/go#59475, I noticed that the gopls
command-line is slowed down by the longer diagnostic delay, because
shutdown awaits the diagnostics pass, which is not properly cancelled.

Fix this by (1) cancelling the snapshot on shutdown, and (2) honoring
context cancellation in debounce.

This improvement revealed an underlying bug in the diagnose debouncing
logic that made the rare flake from golang/go#57710 much more likely: we
were using the view name and seqence ID as the debounce key, rather than
a unique identifier for the view and/or a globally monotonic ID. Since
this test changes and then reverts workspace folders, it was possible
for the debouncer to skip the later diagnostics pass, thinking that it
had already processed the same key with a higher sequence ID. Fix this
redundantly by both using a unique ID for the view, and a globally
monotonic sequence ID for the snapshot.

Fixes golang/go#57710

Change-Id: I03ea550e561e6fdf6852dce9d844dbe69140cb8c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/486115
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/486799 mentions this issue: gopls/internal/lsp/cmd: add instrumentation for TestFix

gopherbot pushed a commit to golang/tools that referenced this issue Apr 20, 2023
To help pin down golang/go#59475, add some additional debug output.

For golang/go#59475

Change-Id: Ibed0743bcc00a51c0fa56a15fb7fe1be88ec403c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/486799
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-20 20:04 darwin-arm64-11 tools@9c9e11f3 go@130a7f8e x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (0.97s)
    integration_test.go:715: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/04/20 16:05:48 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0x14000268d20), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0x14000268d40), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/04/20 16:05:48 code actions: []protocol.CodeAction(nil)
2023-04-20 20:04 illumos-amd64 tools@9c9e11f3 go@bdccb85f x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
panic: test timed out after 10m0s
running tests:
	TestFix (10m0s)
	TestWorkspaceSymbol (10m0s)

syscall.Wait4(0xc00017a010?, 0xfffffc7fee7f5f98?, 0x0?, 0x0?)
	/var/tmp/workdir-host-illumos-amd64-jclulow/go/src/syscall/syscall_solaris.go:275 +0x26
os.(*Process).wait(0xc0003e2120)
	/var/tmp/workdir-host-illumos-amd64-jclulow/go/src/os/exec_unix.go:43 +0x77
os.(*Process).Wait(...)
	/var/tmp/workdir-host-illumos-amd64-jclulow/go/src/os/exec.go:132
os/exec.(*Cmd).Wait(0xc00038e000)
	/var/tmp/workdir-host-illumos-amd64-jclulow/go/src/os/exec/exec.go:890 +0x45
os/exec.(*Cmd).Run(0xc000422340?)
	/var/tmp/workdir-host-illumos-amd64-jclulow/go/src/os/exec/exec.go:590 +0x2d
golang.org/x/tools/gopls/internal/lsp/cmd/test.gopls(0xc00017e1a0, {0xc000381220, 0x45}, {0xc00006df30, 0x3, 0x3})
	/var/tmp/workdir-host-illumos-amd64-jclulow/gopath/src/golang.org/x/tools/gopls/internal/lsp/cmd/test/integration_test.go:812 +0x325
golang.org/x/tools/gopls/internal/lsp/cmd/test.TestFix(0xc00017e1a0)
	/var/tmp/workdir-host-illumos-amd64-jclulow/gopath/src/golang.org/x/tools/gopls/internal/lsp/cmd/test/integration_test.go:711 +0x145
testing.tRunner(0xc00017e1a0, 0x1032b38)
2023-04-20 21:20 dragonfly-amd64-622 tools@6deeacb5 go@598cf5e6 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.18s)
    integration_test.go:767: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/04/20 22:09:29 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc000af02c0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc000af02e0), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/04/20 22:09:29 code actions: []protocol.CodeAction(nil)
2023-04-20 21:20 linux-ppc64le-buildlet tools@6deeacb5 go@608f204a x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (0.64s)
    integration_test.go:767: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/04/20 21:57:12 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc0004f6ae0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc0004f6b20), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/04/20 21:57:12 code actions: []protocol.CodeAction(nil)
2023-04-20 21:20 openbsd-amd64-72 tools@6deeacb5 go@15c12762 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.99s)
    integration_test.go:767: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/04/20 14:32:25 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc000ae06d0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc000ae06f0), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/04/20 14:32:25 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-21 17:10 freebsd-amd64-12_3 tools@660614b5 go@e23322e2 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.24s)
    integration_test.go:767: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/04/21 17:18:37 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc000280df0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc000280e90), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/04/21 17:18:37 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-04-21 21:02 linux-386-bullseye tools@e8f417a9 go@c3c53a2c x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.25s)
    integration_test.go:767: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/04/24 18:41:39 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0x9d3dcb0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0x9d3dce0), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/04/24 18:41:39 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-05 00:46 android-386-emu tools@516063ad go@2fd8c5b2 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (0.66s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/05 08:05:01 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xbfaeee48), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xbfaeee58), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/05 08:05:01 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-08 22:11 linux-386-sid tools@0809ec2e go@d8ab19b2 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.09s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/09 13:29:48 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xb03b5b0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xb03b5c8), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/09 13:29:48 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-09 14:01 linux-amd64-buster tools@34492427 go@f3034bed x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (0.87s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/09 14:03:39 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc0005b6960), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc0005b6980), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/09 14:03:40 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-09 16:42 linux-s390x-ibm tools@b9c20f65 go@484330d0 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.90s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/09 12:53:12 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc0000b3450), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc0000b3480), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/09 12:53:13 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-09 17:51 dragonfly-amd64-622 tools@90e9c659 go@734b26d4 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.72s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/09 18:13:22 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xc0006407a0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xc0006407c0), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/09 18:13:23 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-10 15:37 linux-386-longtest tools@d668f586 go@f30cd520 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.10s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/10 15:56:54 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0x9d1bbe8), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0x9d1bc08), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/10 15:56:54 code actions: []protocol.CodeAction(nil)

watchflakes

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-05-10 18:30 linux-386-bullseye tools@787e7207 go@945a2b17 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
--- FAIL: TestFix (1.41s)
    integration_test.go:795: fix: got <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return }
        >>, want <<package a
        var _ error = T(0)
        type T int
        func f() (int, string) { return 0, "" }
        >>
        stderr:
        2023/05/10 18:36:01 file diagnostics: []protocol.Diagnostic{protocol.Diagnostic{Range:1:14-1:18, Severity:Error, Code:"InvalidIfaceAssign", CodeDescription:(*protocol.CodeDescription)(0xa691ae0), Source:"compiler", Message:"cannot use T(0) (constant 0 of type T) as error value in variable declaration: T does not implement error (missing method Error)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}, protocol.Diagnostic{Range:3:25-3:31, Severity:Error, Code:"WrongResultCount", CodeDescription:(*protocol.CodeDescription)(0xa691af0), Source:"compiler", Message:"not enough return values\n\thave ()\n\twant (int, string)", Tags:[]protocol.DiagnosticTag{}, RelatedInformation:[]protocol.DiagnosticRelatedInformation(nil), Data:interface {}(nil)}}
        2023/05/10 18:36:01 code actions: []protocol.CodeAction(nil)

watchflakes

@adonovan
Copy link
Member

adonovan commented May 10, 2023

Looking over the history of commits prior to the first appearance of this issue, I would guess the two candidates most likely to be relevant are:

Not sure that helps us much though. Still no luck reproducing this locally (darwin-arm) with -count=1000.

@findleyr
Copy link
Member

FWIW I have been running this on gomote all afternoon :(

I reproduced it three times, the first time I tried it on gomote. Since then thousands of runs with no failure.

@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/494275 mentions this issue: gopls/internal/lsp/cmd: append, don't overwrite, in PublishDiagnostics

@findleyr
Copy link
Member

findleyr commented May 10, 2023

I am 98% certain that @adonovan has hit upon the problem in https://go.dev/cl/494275.

https://go.dev/cl/476255 caused the initial diagnostics publication (in diagnoseChangedFiles, which runs for the didOpen notification) to exclude analysis. That means we can plausibly observe the following sequence of events:

gopls/diagnoseFiles
<-- this is where we want suggestedFix to run
diagnoseChangedFiles
<-- this is where suggestedFix actually runs, when the test flakes
diagnoseSnapshot
<-- this is also ok for suggestedFix, because the final diagnostics contains everything

I think the fix in https://go.dev/cl/494275 isn't quite right: we might record duplicate diagnostics.

A better fix would be to implement support for the textDocument/diagnostic RPC, and get rid of the asynchronous NonStandardRequest.

gopherbot pushed a commit to golang/tools that referenced this issue May 11, 2023
This change causes the CLI tool's PublishDiagnostics operation
to accumulate, rather than overwrite, the slice of file diagnostics,
under the hypothesis that it is receiving multiple events and
the later ones are clobbering the earlier ones, causing golang/go#59475.

We perform a crude de-duplication in case this should result
in duplicate diagnostics. A more robust approach using
textDocument/diagnostic will be added in a follow-up.

Also, clarify the mutex's responsibility, copy (don't alias)
the diagnostics slice in the critical section, and tidy up the
surrounding code.

Updates golang/go#59475

Change-Id: Ifbb4974ef00ab7bd6547de28f052cec86462230b
Reviewed-on: https://go-review.googlesource.com/c/tools/+/494275
Run-TryBot: Alan Donovan <adonovan@google.com>
Auto-Submit: Alan Donovan <adonovan@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
@findleyr
Copy link
Member

I'm almost positive this is fixed now.

@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/497396 mentions this issue: gopls/internal/lsp/cmd: remove vestiges of debugging golang/go#59475

gopherbot pushed a commit to golang/tools that referenced this issue May 23, 2023
Updates golang/go#59475

Change-Id: Ib775deeff902e2eba4a99fb970374063897da7df
Reviewed-on: https://go-review.googlesource.com/c/tools/+/497396
Auto-Submit: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
Run-TryBot: Alan Donovan <adonovan@google.com>
@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/497957 mentions this issue: all: merge master (9c97539) into gopls-release-branch.0.12

gopherbot pushed a commit to golang/tools that referenced this issue May 24, 2023
Also put back the x/tools replace directive in gopls/go.mod.

For golang/go#59818

Merge List:

+ 2023-05-24 9c97539 gopls/internal/lsp/cache: remove nested module warning
+ 2023-05-24 d44a094 gopls/internal/lsp/cmd: add a stats -anon flag to show anonymous data
+ 2023-05-24 e106694 gopls/internal/lsp: bundle certain quick-fixes with their diagnostic
+ 2023-05-24 5dc3f74 gopls/internal/lsp/filecache: reenable memory cache layer
+ 2023-05-24 7e146a6 gopls/internal/lsp/cmd: simplify connection type
+ 2023-05-24 1e60668 gopls/internal/regtest/workspace: unskip duplicate modules test
+ 2023-05-23 5ce721d gopls/doc: Fix broken links
+ 2023-05-23 7a03feb gopls/internal/lsp/cmd: remove vestiges of debugging golang/go#59475
+ 2023-05-22 a70f2bc gopls/internal/regtest/misc: update and unskip TestHoverIntLiteral
+ 2023-05-22 6997d19 gopls/internal/regtest/misc: unskip TestMajorOptionsChange
+ 2023-05-22 ec543c5 gopls/internal/lsp/cache: fix crash in Session.updateViewLocked
+ 2023-05-22 a12ee94 gopls/internal/regtest/misc: update some unilaterally skipped tests
+ 2023-05-22 5ff5cbb gopls: deprecate support for Go 1.16 and 1.17, update warnings
+ 2023-05-22 e6fd7f4 gopls/internal/lsp/cache: limit module scan to 100K files
+ 2023-05-22 9ca66ba gopls/internal/lsp/regtest: delete TestWatchReplaceTargets
+ 2023-05-22 edbfdbe gopls/internal/lsp/source/completion: (unimported) add placeholders
+ 2023-05-22 3a5dbf3 gopls: add a new "subdirWatchPatterns" setting
+ 2023-05-22 3c02551 internal/typesinternal: remove NewObjectpathFunc
+ 2023-05-20 0729362 present: reformat doc comment for lack of inline code
+ 2023-05-20 d4e66bd go/ssa: TestStdlib: disable check that function names are distinct
+ 2023-05-20 738ea2b go/ssa: use core type for field accesses
+ 2023-05-19 2ec4299 gopls/internal/lsp: split file-watching glob patterns
+ 2023-05-19 43b02ea gopls/internal/lsp/cache: only delete the most relevant mod tidy handle
+ 2023-05-19 5919673 internal/lsp/filecache: eliminate 'kind' directories
+ 2023-05-19 a5ef6c3 gopls/internal/lsp: keep track of overlays on the files map
+ 2023-05-19 d7f4359 gopls/internal/lsp/mod: optimizations for mod tidy diagnostics
+ 2023-05-19 2eb726b gopls/internal/lsp/filecache: touch only files older than 1h
+ 2023-05-19 b742cb9 gopls/internal/regtest/bench: add a benchmark for diagnosing saves
+ 2023-05-19 4d66324 gopls/internal/lsp/cache: tweak error message
+ 2023-05-19 e46df40 gopls/internal/lsp/filecache: delayed tweaks from code review
+ 2023-05-19 3df69b8 gopls/internal/lsp/debug: remove memory monitoring
+ 2023-05-19 a069704 gopls/internal/lsp/filecache: avoid flock
+ 2023-05-18 3d53c2d gopls/internal/lsp/cache: fix race in adhoc reloading
+ 2023-05-17 8b4b27b go/analysis/passes/slog: fix Group kv offset
+ 2023-05-17 242e5ed cover: eliminate an unnecessary fsync in TestParseProfiles
+ 2023-05-17 651d951 go/ssa: fix typo in package docs

Change-Id: Ie57d55ba8f3ae9bcf868db08088f68955b5e4856
leitzler added a commit to govim/govim that referenced this issue Jun 26, 2023
* gopls/internal/lsp/cache: don't panic when import fails during analysis fa103593d
* gopls/internal/lsp/cache: don't record edges to invalid packages c8278fe90
* cmd/godoc: disable TestWebIndex, a very slow test 87df9bcac
* gopls/internal/lsp/cache: remove ITVs from shared import graph 63624dfc8
* gopls/internal/lsp/cache: fix nil panic in analysis toSourceDiagnostic 0ca9d30bb
* gopls/internal/lsp/cache: add debugging assertion for golang/go#60904 85554d61b
* gopls/internal/lsp/cache: guard against "unsafe" by package path, not ID 9960b693c
* gopls/internal/lsp/cache: use types.Unsafe in analysisPackage 6480332be
* gopls/internal/lsp/work: don't crash when hovering over broken mod dir 155320d39
* gopls/internal/lsp/cache: reduce importing in analysis b71392afd
* internal/gcimporter: avoid a crash when exporting a struct with no pkg d1a388b0e
* cmd/digraph: add "to dot" to emit Graphviz dot a4ed05f16
* gopls/internal/regtest: fix goimports on windows when using vendoring 7261b3269
* gopls/internal/lsp/source/completion: ensuring completion completeness 41e4e5654
* go/ssa: fix bug in writeSignature on external functions ac2946029
* go/ssa: use core type within (*builder).receiver 3b62e7e25
* gopls/internal/lsp/cache: compute xrefs and methodsets asynchronously f394d451f
* go.mod: update golang.org/x dependencies 27dbf8527
* go/types/objectpath: memoize scope lookup in objectpath.Encoder c6c983054
* gopls/internal/regtest/codelens: set GOWORK=off for go mod vendor 0245e1dfc
* go/analysis/passes/defers: add analyser for defer mistake 85be8882c
* cmd/digraph: improve examples using go list, mod c43232f86
* internal/gcimporter: treat unknown constant values the same as invalid 6e1595c15
* gopls/internal/lsp/cache: two minor simplifications c59d87f5d
* go/packages/packagestest: set Config.Logf if the test is run verbosely db6a81ed1
* internal/typeparams: work around LookupFieldOrMethod inconsistency a01290f98
* gopls/internal/lsp/filecache: reduce lifespan of os.FileInfos 6f567c809
* gopls/internal/lsp: enable min/max builtin completion test 726c727df
* gopls: unimported completion should use the completion matcher 86c93e873
* gopls/internal/lsp/source: fix panic in typeDefinition on comparable 04ceacbfb
* gopls/internal/lsp/source/methodsets: comparable also has no package 947adca51
* gopls/internal/lsp/cache: add assertions c35c44fa0
* internal/diff: fix LineEdits bug in slow path 0b4461bab
* internal/diff: fix LineEdits bug in fast path 1943c1e3e
* go/pointer: delete package c6d86c4f3
* go/types/objectpath: remove unnecessary unsafe import 77fd064f3
* go/pointer: remove replace directive 0dda7d614
* gopls/internal/lsp/cache: check number of orphaned files after filtering 98f1b4dee
* go/pointer: create submodule a260315e3
* cmd/{guru,callgraph}: stop using go/pointer 96844c359
* go/packages: include "unsafe".GoFiles=["unsafe.go"] cd694d8db
* gopls/internal/lsp: add min/max builtin 33c741de7
* internal/lsp/source: use exact match in import highlighting 933c7ccb1
* gopls/internal/lsp: clear vuln diagnostics on config changes 5974258e6
* go/packages: pass -pgo=off on go1.21 and later f3faea198
* internal/lsp/debug: add links to profiles and GC 5f74ec7da
* internal/diff: unexport various identifiers ed90c6d20
* gopls/internal/lsp/source: test references bug on struct{p.T} 827f5aa2c
* go/ssa/interp: implement min/max builtins a12e1a6ae
* gopls/internal/lsp/cache: remove nested module warning 9c97539a2
* gopls/internal/lsp/cmd: add a stats -anon flag to show anonymous data d44a094d8
* gopls/internal/lsp: bundle certain quick-fixes with their diagnostic e106694df
* gopls/internal/lsp/filecache: reenable memory cache layer 5dc3f7433
* gopls/internal/lsp/cmd: simplify connection type 7e146a6c6
* gopls/internal/regtest/workspace: unskip duplicate modules test 1e6066861
* gopls/doc: Fix broken links 5ce721db5
* gopls/internal/lsp/cmd: remove vestiges of debugging golang/go#59475 7a03febee
* gopls/internal/regtest/misc: update and unskip TestHoverIntLiteral a70f2bc21
* gopls/internal/regtest/misc: unskip TestMajorOptionsChange 6997d196f
* gopls/internal/lsp/cache: fix crash in Session.updateViewLocked ec543c5a2
* gopls/internal/regtest/misc: update some unilaterally skipped tests a12ee94f7
* gopls: deprecate support for Go 1.16 and 1.17, update warnings 5ff5cbb00
* gopls/internal/lsp/cache: limit module scan to 100K files e6fd7f4c0
* gopls/internal/lsp/regtest: delete TestWatchReplaceTargets 9ca66ba88
* gopls/internal/lsp/source/completion: (unimported) add placeholders edbfdbebf
* gopls: add a new "subdirWatchPatterns" setting 3a5dbf351
* internal/typesinternal: remove NewObjectpathFunc 3c0255176
* present: reformat doc comment for lack of inline code 07293620c
* go/ssa: TestStdlib: disable check that function names are distinct d4e66bd9a
* go/ssa: use core type for field accesses 738ea2bdc
* gopls/internal/lsp: split file-watching glob patterns 2ec4299f3
* gopls/internal/lsp/cache: only delete the most relevant mod tidy handle 43b02eab0
* internal/lsp/filecache: eliminate 'kind' directories 5919673c9
* gopls/internal/lsp: keep track of overlays on the files map a5ef6c3eb
* gopls/internal/lsp/mod: optimizations for mod tidy diagnostics d7f4359f8
* gopls/internal/lsp/filecache: touch only files older than 1h 2eb726b88
* gopls/internal/regtest/bench: add a benchmark for diagnosing saves b742cb9a5
* gopls/internal/lsp/cache: tweak error message 4d66324ee
* gopls/internal/lsp/filecache: delayed tweaks from code review e46df400e
* gopls/internal/lsp/debug: remove memory monitoring 3df69b827
* gopls/internal/lsp/filecache: avoid flock a069704d0
* gopls/internal/lsp/cache: fix race in adhoc reloading 3d53c2d20
* go/analysis/passes/slog: fix Group kv offset 8b4b27bce
* cover: eliminate an unnecessary fsync in TestParseProfiles 242e5ed73
* go/ssa: fix typo in package docs 651d951bb
* gopls/internal/lsp/debug: limit to 100 recent trace entries 743372f58
* go/ssa/interp: avoid hard-coding GOOS and GOARCH 522243a71
* gopls/internal/lsp/cache: fail workspace load on context cancellation a0593829f
* gopls/internal/lsp/cache: unexport ValidBuildConfiguration e5c8d4db7
* go/ssa: use core type for composite literal addresses f4e8a711a
* go/ssa: use core types for array length 3b25dbddd
* gopls/internal/lsp/filecache: front with a 100MB in-memory LRU cache e7048d518
* gopls/internal/lsp/lru: extract LRU logic to a standalone package 8c0fcd2c6
* go/ssa/interp: use the actual GOOS and GOARCH to interpret tests 19d700c67
* gopls/internal/lsp/filecache: limit Get parallelism too 9dcd3d5dc
* go/ssa: consolidate use of underlying pointer 7f203f0c3
* gopls/internal/lsp: add quick-fixes to manage the go.work file a13793e31
* internal/gcimporter: improve error handling 12a0517ad
* gopls/internal/lsp/cache: call filecache.Set asynchronously 5eb1eb932
* gopls/internal/lsp/filecache: limit parallelism in Set 35fe77a6b
* gopls: improve diagnostics for orphaned files 1c9fe3f82
* go/gcexportdata: drop support for the ancient binary format ad74ff634
leitzler added a commit to govim/govim that referenced this issue Jun 26, 2023
* gopls/internal/lsp/cache: don't panic when import fails during analysis fa103593d
* gopls/internal/lsp/cache: don't record edges to invalid packages c8278fe90
* cmd/godoc: disable TestWebIndex, a very slow test 87df9bcac
* gopls/internal/lsp/cache: remove ITVs from shared import graph 63624dfc8
* gopls/internal/lsp/cache: fix nil panic in analysis toSourceDiagnostic 0ca9d30bb
* gopls/internal/lsp/cache: add debugging assertion for golang/go#60904 85554d61b
* gopls/internal/lsp/cache: guard against "unsafe" by package path, not ID 9960b693c
* gopls/internal/lsp/cache: use types.Unsafe in analysisPackage 6480332be
* gopls/internal/lsp/work: don't crash when hovering over broken mod dir 155320d39
* gopls/internal/lsp/cache: reduce importing in analysis b71392afd
* internal/gcimporter: avoid a crash when exporting a struct with no pkg d1a388b0e
* cmd/digraph: add "to dot" to emit Graphviz dot a4ed05f16
* gopls/internal/regtest: fix goimports on windows when using vendoring 7261b3269
* gopls/internal/lsp/source/completion: ensuring completion completeness 41e4e5654
* go/ssa: fix bug in writeSignature on external functions ac2946029
* go/ssa: use core type within (*builder).receiver 3b62e7e25
* gopls/internal/lsp/cache: compute xrefs and methodsets asynchronously f394d451f
* go.mod: update golang.org/x dependencies 27dbf8527
* go/types/objectpath: memoize scope lookup in objectpath.Encoder c6c983054
* gopls/internal/regtest/codelens: set GOWORK=off for go mod vendor 0245e1dfc
* go/analysis/passes/defers: add analyser for defer mistake 85be8882c
* cmd/digraph: improve examples using go list, mod c43232f86
* internal/gcimporter: treat unknown constant values the same as invalid 6e1595c15
* gopls/internal/lsp/cache: two minor simplifications c59d87f5d
* go/packages/packagestest: set Config.Logf if the test is run verbosely db6a81ed1
* internal/typeparams: work around LookupFieldOrMethod inconsistency a01290f98
* gopls/internal/lsp/filecache: reduce lifespan of os.FileInfos 6f567c809
* gopls/internal/lsp: enable min/max builtin completion test 726c727df
* gopls: unimported completion should use the completion matcher 86c93e873
* gopls/internal/lsp/source: fix panic in typeDefinition on comparable 04ceacbfb
* gopls/internal/lsp/source/methodsets: comparable also has no package 947adca51
* gopls/internal/lsp/cache: add assertions c35c44fa0
* internal/diff: fix LineEdits bug in slow path 0b4461bab
* internal/diff: fix LineEdits bug in fast path 1943c1e3e
* go/pointer: delete package c6d86c4f3
* go/types/objectpath: remove unnecessary unsafe import 77fd064f3
* go/pointer: remove replace directive 0dda7d614
* gopls/internal/lsp/cache: check number of orphaned files after filtering 98f1b4dee
* go/pointer: create submodule a260315e3
* cmd/{guru,callgraph}: stop using go/pointer 96844c359
* go/packages: include "unsafe".GoFiles=["unsafe.go"] cd694d8db
* gopls/internal/lsp: add min/max builtin 33c741de7
* internal/lsp/source: use exact match in import highlighting 933c7ccb1
* gopls/internal/lsp: clear vuln diagnostics on config changes 5974258e6
* go/packages: pass -pgo=off on go1.21 and later f3faea198
* internal/lsp/debug: add links to profiles and GC 5f74ec7da
* internal/diff: unexport various identifiers ed90c6d20
* gopls/internal/lsp/source: test references bug on struct{p.T} 827f5aa2c
* go/ssa/interp: implement min/max builtins a12e1a6ae
* gopls/internal/lsp/cache: remove nested module warning 9c97539a2
* gopls/internal/lsp/cmd: add a stats -anon flag to show anonymous data d44a094d8
* gopls/internal/lsp: bundle certain quick-fixes with their diagnostic e106694df
* gopls/internal/lsp/filecache: reenable memory cache layer 5dc3f7433
* gopls/internal/lsp/cmd: simplify connection type 7e146a6c6
* gopls/internal/regtest/workspace: unskip duplicate modules test 1e6066861
* gopls/doc: Fix broken links 5ce721db5
* gopls/internal/lsp/cmd: remove vestiges of debugging golang/go#59475 7a03febee
* gopls/internal/regtest/misc: update and unskip TestHoverIntLiteral a70f2bc21
* gopls/internal/regtest/misc: unskip TestMajorOptionsChange 6997d196f
* gopls/internal/lsp/cache: fix crash in Session.updateViewLocked ec543c5a2
* gopls/internal/regtest/misc: update some unilaterally skipped tests a12ee94f7
* gopls: deprecate support for Go 1.16 and 1.17, update warnings 5ff5cbb00
* gopls/internal/lsp/cache: limit module scan to 100K files e6fd7f4c0
* gopls/internal/lsp/regtest: delete TestWatchReplaceTargets 9ca66ba88
* gopls/internal/lsp/source/completion: (unimported) add placeholders edbfdbebf
* gopls: add a new "subdirWatchPatterns" setting 3a5dbf351
* internal/typesinternal: remove NewObjectpathFunc 3c0255176
* present: reformat doc comment for lack of inline code 07293620c
* go/ssa: TestStdlib: disable check that function names are distinct d4e66bd9a
* go/ssa: use core type for field accesses 738ea2bdc
* gopls/internal/lsp: split file-watching glob patterns 2ec4299f3
* gopls/internal/lsp/cache: only delete the most relevant mod tidy handle 43b02eab0
* internal/lsp/filecache: eliminate 'kind' directories 5919673c9
* gopls/internal/lsp: keep track of overlays on the files map a5ef6c3eb
* gopls/internal/lsp/mod: optimizations for mod tidy diagnostics d7f4359f8
* gopls/internal/lsp/filecache: touch only files older than 1h 2eb726b88
* gopls/internal/regtest/bench: add a benchmark for diagnosing saves b742cb9a5
* gopls/internal/lsp/cache: tweak error message 4d66324ee
* gopls/internal/lsp/filecache: delayed tweaks from code review e46df400e
* gopls/internal/lsp/debug: remove memory monitoring 3df69b827
* gopls/internal/lsp/filecache: avoid flock a069704d0
* gopls/internal/lsp/cache: fix race in adhoc reloading 3d53c2d20
* go/analysis/passes/slog: fix Group kv offset 8b4b27bce
* cover: eliminate an unnecessary fsync in TestParseProfiles 242e5ed73
* go/ssa: fix typo in package docs 651d951bb
* gopls/internal/lsp/debug: limit to 100 recent trace entries 743372f58
* go/ssa/interp: avoid hard-coding GOOS and GOARCH 522243a71
* gopls/internal/lsp/cache: fail workspace load on context cancellation a0593829f
* gopls/internal/lsp/cache: unexport ValidBuildConfiguration e5c8d4db7
* go/ssa: use core type for composite literal addresses f4e8a711a
* go/ssa: use core types for array length 3b25dbddd
* gopls/internal/lsp/filecache: front with a 100MB in-memory LRU cache e7048d518
* gopls/internal/lsp/lru: extract LRU logic to a standalone package 8c0fcd2c6
* go/ssa/interp: use the actual GOOS and GOARCH to interpret tests 19d700c67
* gopls/internal/lsp/filecache: limit Get parallelism too 9dcd3d5dc
* go/ssa: consolidate use of underlying pointer 7f203f0c3
* gopls/internal/lsp: add quick-fixes to manage the go.work file a13793e31
* internal/gcimporter: improve error handling 12a0517ad
* gopls/internal/lsp/cache: call filecache.Set asynchronously 5eb1eb932
* gopls/internal/lsp/filecache: limit parallelism in Set 35fe77a6b
* gopls: improve diagnostics for orphaned files 1c9fe3f82
* go/gcexportdata: drop support for the ancient binary format ad74ff634
myitcv added a commit to myitcvforks/govim that referenced this issue Jul 19, 2023
* gopls/internal/lsp/cache: better panic if metadata invariant is broken 84f829e27
* gopls/internal/lsp/cache: frob: a fast encoder with gob-like powers 03275ec1a
* gopls/internal/lsp: don't awaitLoaded inside resolveImportGraph dbfa51380
* gopls/internal/lsp: fix a latent bug in orphaned file reloading b16097183
* internal/facts: strength-reduce Package param to PackagePath 67aade56d
* gopls/internal/lsp/source/typerefs: optimize getPackageHandles ffc82f3af
* gopls/internal/lsp: only diagnose one package per file 50a6ef662
* internal/gcimporter: don't panic when exporting a builtin 'Error' method 48026e1f7
* gopls/protocol/generate: upgrade generating LSP stubs 5fed7a883
* gopls/internal/lsp/debug: display Analysis.Run times b9fd8df27
* gopls/internal: update LSP support 799eec0fd
* gopls/internal/lsp/source: fix spurious "unexpected var object" error c6de5f512
* gopls/internal/regtest/bench: add a test simulating typing ba3c31c94
* gopls/internal/regtest/bench: add an 'oracle' benchmark repo 80c9aad95
* gopls/internal/regtest/bench: clean up profile flags e10bcf6a4
* go/types/internal/play: show enclosing scopes and method sets 50a7e142c
* internal/typeparams: improve the panic in OriginMethod 12fe14902
* internal/gcimporter: supporting encoding objects from different packages 89d9fae1d
* go/analysis: remove pointless comments dbd600188
* internal/gopathwalk: use opts.Logf for errors if set 67d73b296
* go/analysis: pass package's Go version to type checker 1ca21856a
* gopls/internal/regtest/workspace: fix TestQuickFix_AddGoWork for go1.21 a721062d8
* internal/analysisutil: avoid IsNamed panic on built-in named types ba23fc4ab
* go/analysis/passes/slog: unskip test e1d0f9142
* gopls: commands to start/stop profiling, and a new benchmark metric c35476fcc
* internal/gopathwalk: use os.ReadFile instead of ioutil.ReadFile ec9bc5342
* internal/cmd/deadcode: a command to report dead code in Go programs aac7fb67a
* gopls/internal/lsp/source: put context first in extracted functions 538a6e9ed
* internal/lsp/analysis: embed directive analyzer check following decl ef1254549
* internal: fix typo 7bb83606e
* go/callgraph/rta: doc tweaks 7fa7e852d
* cmd/digraph: somepath: search breadth-first to find minimal path d86c72936
* gopls/internal/lsp/source/completion: avoid duplicates from variants eaebeac4e
* cmd/digraph: consolidate -help message and package doc ac255dec7
* go/analysis/passes/slog: replace XXXCtx names with XXXContext dfb7d247d
* gopls/internal/lsp: make gopls.start_debugging open browser 8f0778217
* go/callgraph/rta: optimise 'implements' operation 4b177d0be
* gopls/internal/lsp/filecache: increase idle GC period to 6 hours eaca1d005
* internal/pprof: a function to compute total pprof time 124ebfa4c
* go/callgraph/rta: model reflective calls soundly 83045326b
* go/packages: pass go list-reported Go language version to type checker f9f582ef3
* gopls/internal/lsp/source/completion: honor usePlaceholders e7916d015
* gopls/internal/lsp/source/completion: placeholders for type params 1d07f1ba5
* gopls/internal/regtest/marker: skip addgowork.txt 2d9070144
* gopls/internal/lsp/source/xrefs: include refs to methods of generics 8060af96a
* gopls/internal/lsp/source: ignore objectpath error in rename a8cf665b1
* gopls: remove dead code eeb93eded
* gopls/internal/lsp/cache: plumb analysis URLs to client 781c46759
* go.mod: update golang.org/x dependencies 675bf3c24
* go/ssa/interp: support conversions to slices of named bytes ad52c1ca3
* gopls/doc/contributing.md: document error handling strategies 14ec3c023
* go/packages/gopackages: document -mode flag c49536416
* gopls/internal/lsp/source/typerefs: move test into _test.go 87ad891fe
* internal/fastwalk: doc formatting fixes (including godoc links) 27fd94e09
* gopls/internal/lsp/filecache: reduce GC frequency d362be0cd
* Revert "go/analysis: add Sizes that matches gc size computations" 969078be4
* go/analysis: add Sizes that matches gc size computations 5aa6acb96
* go/vcs: delete 5a89a3bf2
* go/vcs: isolate into a nested module d03a819dc
* go/vcs: deprecate package in favor of go list -json a6594121c
* gopls/internal/lsp/cmd: list bug reports in 'gopls bug' 9d8d4089c
* go/ast/inspector: clarify behavior regarding comment traversal 8f9bce43b
* gopls/internal/lsp/cache: don't panic when import fails during analysis fa103593d
* gopls/internal/lsp/cache: don't record edges to invalid packages c8278fe90
* cmd/godoc: disable TestWebIndex, a very slow test 87df9bcac
* gopls/internal/lsp/cache: remove ITVs from shared import graph 63624dfc8
* gopls/internal/lsp/cache: fix nil panic in analysis toSourceDiagnostic 0ca9d30bb
* gopls/internal/lsp/cache: add debugging assertion for golang/go#60904 85554d61b
* gopls/internal/lsp/cache: guard against "unsafe" by package path, not ID 9960b693c
* gopls/internal/lsp/cache: use types.Unsafe in analysisPackage 6480332be
* gopls/internal/lsp/work: don't crash when hovering over broken mod dir 155320d39
* gopls/internal/lsp/cache: reduce importing in analysis b71392afd
* internal/gcimporter: avoid a crash when exporting a struct with no pkg d1a388b0e
* cmd/digraph: add "to dot" to emit Graphviz dot a4ed05f16
* gopls/internal/regtest: fix goimports on windows when using vendoring 7261b3269
* gopls/internal/lsp/source/completion: ensuring completion completeness 41e4e5654
* go/ssa: fix bug in writeSignature on external functions ac2946029
* go/ssa: use core type within (*builder).receiver 3b62e7e25
* gopls/internal/lsp/cache: compute xrefs and methodsets asynchronously f394d451f
* go.mod: update golang.org/x dependencies 27dbf8527
* go/types/objectpath: memoize scope lookup in objectpath.Encoder c6c983054
* gopls/internal/regtest/codelens: set GOWORK=off for go mod vendor 0245e1dfc
* go/analysis/passes/defers: add analyser for defer mistake 85be8882c
* cmd/digraph: improve examples using go list, mod c43232f86
* internal/gcimporter: treat unknown constant values the same as invalid 6e1595c15
* gopls/internal/lsp/cache: two minor simplifications c59d87f5d
* go/packages/packagestest: set Config.Logf if the test is run verbosely db6a81ed1
* internal/typeparams: work around LookupFieldOrMethod inconsistency a01290f98
* gopls/internal/lsp/filecache: reduce lifespan of os.FileInfos 6f567c809
* gopls/internal/lsp: enable min/max builtin completion test 726c727df
* gopls: unimported completion should use the completion matcher 86c93e873
* gopls/internal/lsp/source: fix panic in typeDefinition on comparable 04ceacbfb
* gopls/internal/lsp/source/methodsets: comparable also has no package 947adca51
* gopls/internal/lsp/cache: add assertions c35c44fa0
* internal/diff: fix LineEdits bug in slow path 0b4461bab
* internal/diff: fix LineEdits bug in fast path 1943c1e3e
* go/pointer: delete package c6d86c4f3
* go/types/objectpath: remove unnecessary unsafe import 77fd064f3
* go/pointer: remove replace directive 0dda7d614
* gopls/internal/lsp/cache: check number of orphaned files after filtering 98f1b4dee
* go/pointer: create submodule a260315e3
* cmd/{guru,callgraph}: stop using go/pointer 96844c359
* go/packages: include "unsafe".GoFiles=["unsafe.go"] cd694d8db
* gopls/internal/lsp: add min/max builtin 33c741de7
* internal/lsp/source: use exact match in import highlighting 933c7ccb1
* gopls/internal/lsp: clear vuln diagnostics on config changes 5974258e6
* go/packages: pass -pgo=off on go1.21 and later f3faea198
* internal/lsp/debug: add links to profiles and GC 5f74ec7da
* internal/diff: unexport various identifiers ed90c6d20
* gopls/internal/lsp/source: test references bug on struct{p.T} 827f5aa2c
* go/ssa/interp: implement min/max builtins a12e1a6ae
* gopls/internal/lsp/cache: remove nested module warning 9c97539a2
* gopls/internal/lsp/cmd: add a stats -anon flag to show anonymous data d44a094d8
* gopls/internal/lsp: bundle certain quick-fixes with their diagnostic e106694df
* gopls/internal/lsp/filecache: reenable memory cache layer 5dc3f7433
* gopls/internal/lsp/cmd: simplify connection type 7e146a6c6
* gopls/internal/regtest/workspace: unskip duplicate modules test 1e6066861
* gopls/doc: Fix broken links 5ce721db5
* gopls/internal/lsp/cmd: remove vestiges of debugging golang/go#59475 7a03febee
* gopls/internal/regtest/misc: update and unskip TestHoverIntLiteral a70f2bc21
* gopls/internal/regtest/misc: unskip TestMajorOptionsChange 6997d196f
* gopls/internal/lsp/cache: fix crash in Session.updateViewLocked ec543c5a2
* gopls/internal/regtest/misc: update some unilaterally skipped tests a12ee94f7
* gopls: deprecate support for Go 1.16 and 1.17, update warnings 5ff5cbb00
* gopls/internal/lsp/cache: limit module scan to 100K files e6fd7f4c0
* gopls/internal/lsp/regtest: delete TestWatchReplaceTargets 9ca66ba88
* gopls/internal/lsp/source/completion: (unimported) add placeholders edbfdbebf
* gopls: add a new "subdirWatchPatterns" setting 3a5dbf351
* internal/typesinternal: remove NewObjectpathFunc 3c0255176
* present: reformat doc comment for lack of inline code 07293620c
* go/ssa: TestStdlib: disable check that function names are distinct d4e66bd9a
* go/ssa: use core type for field accesses 738ea2bdc
* gopls/internal/lsp: split file-watching glob patterns 2ec4299f3
* gopls/internal/lsp/cache: only delete the most relevant mod tidy handle 43b02eab0
* internal/lsp/filecache: eliminate 'kind' directories 5919673c9
* gopls/internal/lsp: keep track of overlays on the files map a5ef6c3eb
* gopls/internal/lsp/mod: optimizations for mod tidy diagnostics d7f4359f8
* gopls/internal/lsp/filecache: touch only files older than 1h 2eb726b88
* gopls/internal/regtest/bench: add a benchmark for diagnosing saves b742cb9a5
* gopls/internal/lsp/cache: tweak error message 4d66324ee
* gopls/internal/lsp/filecache: delayed tweaks from code review e46df400e
* gopls/internal/lsp/debug: remove memory monitoring 3df69b827
* gopls/internal/lsp/filecache: avoid flock a069704d0
* gopls/internal/lsp/cache: fix race in adhoc reloading 3d53c2d20
* go/analysis/passes/slog: fix Group kv offset 8b4b27bce
* cover: eliminate an unnecessary fsync in TestParseProfiles 242e5ed73
* go/ssa: fix typo in package docs 651d951bb
* gopls/internal/lsp/debug: limit to 100 recent trace entries 743372f58
* go/ssa/interp: avoid hard-coding GOOS and GOARCH 522243a71
* gopls/internal/lsp/cache: fail workspace load on context cancellation a0593829f
* gopls/internal/lsp/cache: unexport ValidBuildConfiguration e5c8d4db7
* go/ssa: use core type for composite literal addresses f4e8a711a
* go/ssa: use core types for array length 3b25dbddd
* gopls/internal/lsp/filecache: front with a 100MB in-memory LRU cache e7048d518
* gopls/internal/lsp/lru: extract LRU logic to a standalone package 8c0fcd2c6
* go/ssa/interp: use the actual GOOS and GOARCH to interpret tests 19d700c67
* gopls/internal/lsp/filecache: limit Get parallelism too 9dcd3d5dc
* go/ssa: consolidate use of underlying pointer 7f203f0c3
* gopls/internal/lsp: add quick-fixes to manage the go.work file a13793e31
* internal/gcimporter: improve error handling 12a0517ad
* gopls/internal/lsp/cache: call filecache.Set asynchronously 5eb1eb932
* gopls/internal/lsp/filecache: limit parallelism in Set 35fe77a6b
* gopls: improve diagnostics for orphaned files 1c9fe3f82
* go/gcexportdata: drop support for the ancient binary format ad74ff634
myitcv added a commit to govim/govim that referenced this issue Jul 19, 2023
* gopls/internal/lsp/cache: better panic if metadata invariant is broken 84f829e27
* gopls/internal/lsp/cache: frob: a fast encoder with gob-like powers 03275ec1a
* gopls/internal/lsp: don't awaitLoaded inside resolveImportGraph dbfa51380
* gopls/internal/lsp: fix a latent bug in orphaned file reloading b16097183
* internal/facts: strength-reduce Package param to PackagePath 67aade56d
* gopls/internal/lsp/source/typerefs: optimize getPackageHandles ffc82f3af
* gopls/internal/lsp: only diagnose one package per file 50a6ef662
* internal/gcimporter: don't panic when exporting a builtin 'Error' method 48026e1f7
* gopls/protocol/generate: upgrade generating LSP stubs 5fed7a883
* gopls/internal/lsp/debug: display Analysis.Run times b9fd8df27
* gopls/internal: update LSP support 799eec0fd
* gopls/internal/lsp/source: fix spurious "unexpected var object" error c6de5f512
* gopls/internal/regtest/bench: add a test simulating typing ba3c31c94
* gopls/internal/regtest/bench: add an 'oracle' benchmark repo 80c9aad95
* gopls/internal/regtest/bench: clean up profile flags e10bcf6a4
* go/types/internal/play: show enclosing scopes and method sets 50a7e142c
* internal/typeparams: improve the panic in OriginMethod 12fe14902
* internal/gcimporter: supporting encoding objects from different packages 89d9fae1d
* go/analysis: remove pointless comments dbd600188
* internal/gopathwalk: use opts.Logf for errors if set 67d73b296
* go/analysis: pass package's Go version to type checker 1ca21856a
* gopls/internal/regtest/workspace: fix TestQuickFix_AddGoWork for go1.21 a721062d8
* internal/analysisutil: avoid IsNamed panic on built-in named types ba23fc4ab
* go/analysis/passes/slog: unskip test e1d0f9142
* gopls: commands to start/stop profiling, and a new benchmark metric c35476fcc
* internal/gopathwalk: use os.ReadFile instead of ioutil.ReadFile ec9bc5342
* internal/cmd/deadcode: a command to report dead code in Go programs aac7fb67a
* gopls/internal/lsp/source: put context first in extracted functions 538a6e9ed
* internal/lsp/analysis: embed directive analyzer check following decl ef1254549
* internal: fix typo 7bb83606e
* go/callgraph/rta: doc tweaks 7fa7e852d
* cmd/digraph: somepath: search breadth-first to find minimal path d86c72936
* gopls/internal/lsp/source/completion: avoid duplicates from variants eaebeac4e
* cmd/digraph: consolidate -help message and package doc ac255dec7
* go/analysis/passes/slog: replace XXXCtx names with XXXContext dfb7d247d
* gopls/internal/lsp: make gopls.start_debugging open browser 8f0778217
* go/callgraph/rta: optimise 'implements' operation 4b177d0be
* gopls/internal/lsp/filecache: increase idle GC period to 6 hours eaca1d005
* internal/pprof: a function to compute total pprof time 124ebfa4c
* go/callgraph/rta: model reflective calls soundly 83045326b
* go/packages: pass go list-reported Go language version to type checker f9f582ef3
* gopls/internal/lsp/source/completion: honor usePlaceholders e7916d015
* gopls/internal/lsp/source/completion: placeholders for type params 1d07f1ba5
* gopls/internal/regtest/marker: skip addgowork.txt 2d9070144
* gopls/internal/lsp/source/xrefs: include refs to methods of generics 8060af96a
* gopls/internal/lsp/source: ignore objectpath error in rename a8cf665b1
* gopls: remove dead code eeb93eded
* gopls/internal/lsp/cache: plumb analysis URLs to client 781c46759
* go.mod: update golang.org/x dependencies 675bf3c24
* go/ssa/interp: support conversions to slices of named bytes ad52c1ca3
* gopls/doc/contributing.md: document error handling strategies 14ec3c023
* go/packages/gopackages: document -mode flag c49536416
* gopls/internal/lsp/source/typerefs: move test into _test.go 87ad891fe
* internal/fastwalk: doc formatting fixes (including godoc links) 27fd94e09
* gopls/internal/lsp/filecache: reduce GC frequency d362be0cd
* Revert "go/analysis: add Sizes that matches gc size computations" 969078be4
* go/analysis: add Sizes that matches gc size computations 5aa6acb96
* go/vcs: delete 5a89a3bf2
* go/vcs: isolate into a nested module d03a819dc
* go/vcs: deprecate package in favor of go list -json a6594121c
* gopls/internal/lsp/cmd: list bug reports in 'gopls bug' 9d8d4089c
* go/ast/inspector: clarify behavior regarding comment traversal 8f9bce43b
* gopls/internal/lsp/cache: don't panic when import fails during analysis fa103593d
* gopls/internal/lsp/cache: don't record edges to invalid packages c8278fe90
* cmd/godoc: disable TestWebIndex, a very slow test 87df9bcac
* gopls/internal/lsp/cache: remove ITVs from shared import graph 63624dfc8
* gopls/internal/lsp/cache: fix nil panic in analysis toSourceDiagnostic 0ca9d30bb
* gopls/internal/lsp/cache: add debugging assertion for golang/go#60904 85554d61b
* gopls/internal/lsp/cache: guard against "unsafe" by package path, not ID 9960b693c
* gopls/internal/lsp/cache: use types.Unsafe in analysisPackage 6480332be
* gopls/internal/lsp/work: don't crash when hovering over broken mod dir 155320d39
* gopls/internal/lsp/cache: reduce importing in analysis b71392afd
* internal/gcimporter: avoid a crash when exporting a struct with no pkg d1a388b0e
* cmd/digraph: add "to dot" to emit Graphviz dot a4ed05f16
* gopls/internal/regtest: fix goimports on windows when using vendoring 7261b3269
* gopls/internal/lsp/source/completion: ensuring completion completeness 41e4e5654
* go/ssa: fix bug in writeSignature on external functions ac2946029
* go/ssa: use core type within (*builder).receiver 3b62e7e25
* gopls/internal/lsp/cache: compute xrefs and methodsets asynchronously f394d451f
* go.mod: update golang.org/x dependencies 27dbf8527
* go/types/objectpath: memoize scope lookup in objectpath.Encoder c6c983054
* gopls/internal/regtest/codelens: set GOWORK=off for go mod vendor 0245e1dfc
* go/analysis/passes/defers: add analyser for defer mistake 85be8882c
* cmd/digraph: improve examples using go list, mod c43232f86
* internal/gcimporter: treat unknown constant values the same as invalid 6e1595c15
* gopls/internal/lsp/cache: two minor simplifications c59d87f5d
* go/packages/packagestest: set Config.Logf if the test is run verbosely db6a81ed1
* internal/typeparams: work around LookupFieldOrMethod inconsistency a01290f98
* gopls/internal/lsp/filecache: reduce lifespan of os.FileInfos 6f567c809
* gopls/internal/lsp: enable min/max builtin completion test 726c727df
* gopls: unimported completion should use the completion matcher 86c93e873
* gopls/internal/lsp/source: fix panic in typeDefinition on comparable 04ceacbfb
* gopls/internal/lsp/source/methodsets: comparable also has no package 947adca51
* gopls/internal/lsp/cache: add assertions c35c44fa0
* internal/diff: fix LineEdits bug in slow path 0b4461bab
* internal/diff: fix LineEdits bug in fast path 1943c1e3e
* go/pointer: delete package c6d86c4f3
* go/types/objectpath: remove unnecessary unsafe import 77fd064f3
* go/pointer: remove replace directive 0dda7d614
* gopls/internal/lsp/cache: check number of orphaned files after filtering 98f1b4dee
* go/pointer: create submodule a260315e3
* cmd/{guru,callgraph}: stop using go/pointer 96844c359
* go/packages: include "unsafe".GoFiles=["unsafe.go"] cd694d8db
* gopls/internal/lsp: add min/max builtin 33c741de7
* internal/lsp/source: use exact match in import highlighting 933c7ccb1
* gopls/internal/lsp: clear vuln diagnostics on config changes 5974258e6
* go/packages: pass -pgo=off on go1.21 and later f3faea198
* internal/lsp/debug: add links to profiles and GC 5f74ec7da
* internal/diff: unexport various identifiers ed90c6d20
* gopls/internal/lsp/source: test references bug on struct{p.T} 827f5aa2c
* go/ssa/interp: implement min/max builtins a12e1a6ae
* gopls/internal/lsp/cache: remove nested module warning 9c97539a2
* gopls/internal/lsp/cmd: add a stats -anon flag to show anonymous data d44a094d8
* gopls/internal/lsp: bundle certain quick-fixes with their diagnostic e106694df
* gopls/internal/lsp/filecache: reenable memory cache layer 5dc3f7433
* gopls/internal/lsp/cmd: simplify connection type 7e146a6c6
* gopls/internal/regtest/workspace: unskip duplicate modules test 1e6066861
* gopls/doc: Fix broken links 5ce721db5
* gopls/internal/lsp/cmd: remove vestiges of debugging golang/go#59475 7a03febee
* gopls/internal/regtest/misc: update and unskip TestHoverIntLiteral a70f2bc21
* gopls/internal/regtest/misc: unskip TestMajorOptionsChange 6997d196f
* gopls/internal/lsp/cache: fix crash in Session.updateViewLocked ec543c5a2
* gopls/internal/regtest/misc: update some unilaterally skipped tests a12ee94f7
* gopls: deprecate support for Go 1.16 and 1.17, update warnings 5ff5cbb00
* gopls/internal/lsp/cache: limit module scan to 100K files e6fd7f4c0
* gopls/internal/lsp/regtest: delete TestWatchReplaceTargets 9ca66ba88
* gopls/internal/lsp/source/completion: (unimported) add placeholders edbfdbebf
* gopls: add a new "subdirWatchPatterns" setting 3a5dbf351
* internal/typesinternal: remove NewObjectpathFunc 3c0255176
* present: reformat doc comment for lack of inline code 07293620c
* go/ssa: TestStdlib: disable check that function names are distinct d4e66bd9a
* go/ssa: use core type for field accesses 738ea2bdc
* gopls/internal/lsp: split file-watching glob patterns 2ec4299f3
* gopls/internal/lsp/cache: only delete the most relevant mod tidy handle 43b02eab0
* internal/lsp/filecache: eliminate 'kind' directories 5919673c9
* gopls/internal/lsp: keep track of overlays on the files map a5ef6c3eb
* gopls/internal/lsp/mod: optimizations for mod tidy diagnostics d7f4359f8
* gopls/internal/lsp/filecache: touch only files older than 1h 2eb726b88
* gopls/internal/regtest/bench: add a benchmark for diagnosing saves b742cb9a5
* gopls/internal/lsp/cache: tweak error message 4d66324ee
* gopls/internal/lsp/filecache: delayed tweaks from code review e46df400e
* gopls/internal/lsp/debug: remove memory monitoring 3df69b827
* gopls/internal/lsp/filecache: avoid flock a069704d0
* gopls/internal/lsp/cache: fix race in adhoc reloading 3d53c2d20
* go/analysis/passes/slog: fix Group kv offset 8b4b27bce
* cover: eliminate an unnecessary fsync in TestParseProfiles 242e5ed73
* go/ssa: fix typo in package docs 651d951bb
* gopls/internal/lsp/debug: limit to 100 recent trace entries 743372f58
* go/ssa/interp: avoid hard-coding GOOS and GOARCH 522243a71
* gopls/internal/lsp/cache: fail workspace load on context cancellation a0593829f
* gopls/internal/lsp/cache: unexport ValidBuildConfiguration e5c8d4db7
* go/ssa: use core type for composite literal addresses f4e8a711a
* go/ssa: use core types for array length 3b25dbddd
* gopls/internal/lsp/filecache: front with a 100MB in-memory LRU cache e7048d518
* gopls/internal/lsp/lru: extract LRU logic to a standalone package 8c0fcd2c6
* go/ssa/interp: use the actual GOOS and GOARCH to interpret tests 19d700c67
* gopls/internal/lsp/filecache: limit Get parallelism too 9dcd3d5dc
* go/ssa: consolidate use of underlying pointer 7f203f0c3
* gopls/internal/lsp: add quick-fixes to manage the go.work file a13793e31
* internal/gcimporter: improve error handling 12a0517ad
* gopls/internal/lsp/cache: call filecache.Set asynchronously 5eb1eb932
* gopls/internal/lsp/filecache: limit parallelism in Set 35fe77a6b
* gopls: improve diagnostics for orphaned files 1c9fe3f82
* go/gcexportdata: drop support for the ancient binary format ad74ff634
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/cmd/test" && test == "TestFix"
2023-09-11 19:46 plan9-arm tools@9886d988 go@09465129 x/tools/gopls/internal/lsp/cmd/test.TestFix (log)
panic: test timed out after 30m0s
running tests:
	TestFix (29m11s)

syscall.WaitProcess(0x68ec, 0x9cbcfc0)
	/boot/workdir/go/src/syscall/exec_plan9.go:593 +0x80
os.(*Process).wait(0x9c391a0)
	/boot/workdir/go/src/os/exec_plan9.go:73 +0x40
os.(*Process).Wait(...)
	/boot/workdir/go/src/os/exec.go:134
os/exec.(*Cmd).Wait(0x9ec0f00)
	/boot/workdir/go/src/os/exec/exec.go:862 +0x38
os/exec.(*Cmd).Run(0x9ec0f00)
	/boot/workdir/go/src/os/exec/exec.go:590 +0x48
golang.org/x/tools/gopls/internal/lsp/cmd/test.goplsWithEnv(0x9f451d0, {0x9f28520, 0x19}, {0x0, 0x0, 0x0}, {0xa0daf3c, 0x4, 0x4})
	/boot/workdir/gopath/src/golang.org/x/tools/gopls/internal/lsp/cmd/test/integration_test.go:935 +0x390
golang.org/x/tools/gopls/internal/lsp/cmd/test.gopls(...)
	/boot/workdir/gopath/src/golang.org/x/tools/gopls/internal/lsp/cmd/test/integration_test.go:916
golang.org/x/tools/gopls/internal/lsp/cmd/test.TestFix(0x9f451d0)
	/boot/workdir/gopath/src/golang.org/x/tools/gopls/internal/lsp/cmd/test/integration_test.go:818 +0x2e8
testing.tRunner(0x9f451d0, 0xc09b34)

watchflakes

@gopherbot gopherbot reopened this Sep 12, 2023
@bcmills bcmills closed this as completed Sep 25, 2023
@golang golang locked and limited conversation to collaborators Sep 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
Archived in project
Development

No branches or pull requests

4 participants