Skip to content
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: gopls drops stderr output from GOPACKAGESDRIVER #34649

Closed
jmhodges opened this issue Oct 1, 2019 · 9 comments
Closed

x/tools/gopls: gopls drops stderr output from GOPACKAGESDRIVER #34649

jmhodges opened this issue Oct 1, 2019 · 9 comments
Labels
FrozenDueToAge gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository.
Milestone

Comments

@jmhodges
Copy link
Contributor

jmhodges commented Oct 1, 2019

What version of Go are you using (go version)?

go version go1.13 darwin/amd64

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

darwin/amd64

go env Output
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/jeffhodges/Library/Caches/go-build"
GOENV="/Users/jeffhodges/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/jeffhodges"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.13/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.13/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/vg/32jn4gdd1x3f_r9dwcryw4y00000gn/T/go-build262498199=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

What did you expect to see?

A way to access the stderr output emitted from the $GOPACKAGESDRIVER binary. gopls drops any stderr output the driver binary prints and doesn't seem to have a way to log it to another file.

What did you see instead?

No stderr output from the driver binary.

@gopherbot gopherbot added this to the Unreleased milestone Oct 1, 2019
@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 Oct 1, 2019
@golang golang deleted a comment from gopherbot Oct 3, 2019
@stamblerre
Copy link
Contributor

I think that if you want read the stderr from your go/packages driver, you will have to handle or log it through the driver. As an example, the built-in go list driver explicitly drops stderr here.

@jmhodges
Copy link
Contributor Author

jmhodges commented Oct 22, 2019

Yeah, I saw that and I was hoping we could, on -v or some such, get stderr copied over (perhaps with a prefix on each line, but not required). The file.Open to log.SetOutput chain is long and means I have to maintain a tail -f somewhere.

It’s also something I have to warn contributors who make changes to the driver code after me, too.

@jmhodges
Copy link
Contributor Author

I'd be up for writing that patch if y'all are interested!

@stamblerre
Copy link
Contributor

@matloob is probably the right person to loop in here, as I think these changes would need to be made in go/packages, not gopls.

@matloob
Copy link
Contributor

matloob commented Oct 28, 2019

I think what we'd want to do here is to maybe log the STDERR if the user specifies a debug environment variable, similar to what we do here: https://github.com/golang/tools/blob/7178990c25039b756510e51a36380458e3a96487/go/packages/golist.go#L1105

@stamblerre
Copy link
Contributor

Would it be sufficient to move that check to the beginning of the function?

@matloob
Copy link
Contributor

matloob commented Oct 28, 2019 via email

@gopherbot
Copy link

Change https://golang.org/cl/204201 mentions this issue: go/packages: print gopackagesdriver errors when GOPACKAGESPRINTDRIVERERRORS is set

@jmhodges
Copy link
Contributor Author

Thank you! This will make my work much easier

@golang golang locked and limited conversation to collaborators Oct 30, 2020
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. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
None yet
Development

No branches or pull requests

4 participants