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
Milestone

Comments

@jmhodges
Copy link
Contributor

@jmhodges 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
@golang golang deleted a comment from gopherbot Oct 3, 2019
@stamblerre

This comment has been minimized.

Copy link
Contributor

@stamblerre stamblerre commented Oct 22, 2019

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

This comment has been minimized.

Copy link
Contributor Author

@jmhodges 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

This comment has been minimized.

Copy link
Contributor Author

@jmhodges jmhodges commented Oct 22, 2019

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

@stamblerre

This comment has been minimized.

Copy link
Contributor

@stamblerre stamblerre commented Oct 22, 2019

@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

This comment has been minimized.

Copy link
Contributor

@matloob 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

This comment has been minimized.

Copy link
Contributor

@stamblerre stamblerre commented Oct 28, 2019

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

@matloob

This comment has been minimized.

Copy link
Contributor

@matloob matloob commented Oct 28, 2019

@gopherbot

This comment has been minimized.

Copy link

@gopherbot gopherbot commented Oct 30, 2019

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

@jmhodges

This comment has been minimized.

Copy link
Contributor Author

@jmhodges jmhodges commented Oct 31, 2019

Thank you! This will make my work much easier

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.