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
cmd/go: some errors not reported with go list
#59186
Comments
Change https://go.dev/cl/477838 mentions this issue: |
The vendor_import test lists packages that are known bad (e.g. bad.go, invalid.go). Pass -e to permit error. The mod_vendor_auto test includes a package that imports a main package, which should be an error. Pass -e to permit error. Updates #59186. Change-Id: I3b63025c3935f55feda1a95151d4c688d0394644 Reviewed-on: https://go-review.googlesource.com/c/go/+/477838 Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com>
After CL https://golang.org/cl/474236, when listing multiple packages, the default -pgo=auto mode will cause this code https://cs.opensource.google/go/go/+/master:src/cmd/go/internal/list/list.go;l=736-788 to run, which will cause it to report the error. |
I thought blank imports of main packages were allowed as a way to track dependencies, eg when using the tools.go pattern. |
@seankhliao, |
I hit this through another vector, but similar. It seems very strange to assert that I can't list, when I am allowed to set up this construct in the first place. This is a breaking change - is it really worth it? |
Remove vendor'ed symlinks, run updated script. The edits to a few go.mod files wrt code-generator are unexplained, except that Go broke something that used to work (golang/go#59186) which forced me to comment stuff out. This depends on gotip (gotip download 495801). Results: `go build` and `go test` work: ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ go build ./cmd/kubectl $ go build k8s.io/kubernetes/cmd/kubectl $ go test ./cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go test k8s.io/kubernetes/cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go build ./staging/src/k8s.io/api $ go build k8s.io/api $ go test ./staging/src/k8s.io/api ok k8s.io/api 3.225s $ go test k8s.io/api ok k8s.io/api (cached) ``` `make` and `make test` sometimes work (not surprising): ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ export FORCE_HOST_GO=true $ make kubectl +++ [0527 09:51:20] Setting GOMAXPROCS: 12 +++ [0527 09:51:20] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make WHAT=./cmd/kubectl/ +++ [0527 09:55:55] Setting GOMAXPROCS: 12 +++ [0527 09:55:55] Building go targets for linux/amd64 k8s.io/kubernetes/./cmd/kubectl/ (non-static) $ make WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:05:42] Setting GOMAXPROCS: 12 +++ [0527 10:05:42] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make test WHAT=./cmd/kubectl +++ [0527 10:07:00] Setting GOMAXPROCS: 12 +++ [0527 10:07:00] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:07:25] Setting GOMAXPROCS: 12 +++ [0527 10:07:25] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make WHAT=./staging/src/k8s.io/api +++ [0527 10:08:18] Setting GOMAXPROCS: 12 +++ [0527 10:08:18] Building go targets for linux/amd64 k8s.io/kubernetes/./staging/src/k8s.io/api (non-static) cannot find module providing package k8s.io/kubernetes/staging/src/k8s.io/api: import lookup disabled by -mod=vendor (Go version in go.work is at least 1.14 and vendor directory exists.) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: /home/thockin/src/kubernetes/hack/lib/golang.sh:783 kube::golang::build_some_binaries(...) !!! [0527 10:08:18] 2: /home/thockin/src/kubernetes/hack/lib/golang.sh:942 kube::golang::build_binaries_for_platform(...) !!! [0527 10:08:18] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) make: *** [Makefile:92: all] Error 1 $ make WHAT=k8s.io/api +++ [0527 10:08:34] Setting GOMAXPROCS: 12 +++ [0527 10:08:34] Building go targets for linux/amd64 k8s.io/api (non-static) $ make test WHAT=./staging/src/k8s.io/api +++ [0527 10:09:41] Setting GOMAXPROCS: 12 +++ [0527 10:09:41] Running tests without code coverage and with -race code in directory /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/staging/src/k8s.io/api expects import "k8s.io/api" make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/api +++ [0527 10:09:50] Setting GOMAXPROCS: 12 !!! [0527 10:09:50] specified test path '${GOPATH}/src/k8s.io/api' does not exist make: *** [Makefile:184: test] Error 1 ```
Remove vendor'ed symlinks, run updated script. The edits to a few go.mod files wrt code-generator are unexplained, except that Go broke something that used to work (golang/go#59186) which forced me to comment stuff out. This depends on gotip (gotip download 495801). Results: `go build` and `go test` work: ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ go build ./cmd/kubectl $ go build k8s.io/kubernetes/cmd/kubectl $ go test ./cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go test k8s.io/kubernetes/cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go build ./staging/src/k8s.io/api $ go build k8s.io/api $ go test ./staging/src/k8s.io/api ok k8s.io/api 3.225s $ go test k8s.io/api ok k8s.io/api (cached) ``` `make` and `make test` sometimes work (not surprising): ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ export FORCE_HOST_GO=true $ make kubectl +++ [0527 09:51:20] Setting GOMAXPROCS: 12 +++ [0527 09:51:20] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make WHAT=./cmd/kubectl/ +++ [0527 09:55:55] Setting GOMAXPROCS: 12 +++ [0527 09:55:55] Building go targets for linux/amd64 k8s.io/kubernetes/./cmd/kubectl/ (non-static) $ make WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:05:42] Setting GOMAXPROCS: 12 +++ [0527 10:05:42] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make test WHAT=./cmd/kubectl +++ [0527 10:07:00] Setting GOMAXPROCS: 12 +++ [0527 10:07:00] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:07:25] Setting GOMAXPROCS: 12 +++ [0527 10:07:25] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make WHAT=./staging/src/k8s.io/api +++ [0527 10:08:18] Setting GOMAXPROCS: 12 +++ [0527 10:08:18] Building go targets for linux/amd64 k8s.io/kubernetes/./staging/src/k8s.io/api (non-static) cannot find module providing package k8s.io/kubernetes/staging/src/k8s.io/api: import lookup disabled by -mod=vendor (Go version in go.work is at least 1.14 and vendor directory exists.) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: /home/thockin/src/kubernetes/hack/lib/golang.sh:783 kube::golang::build_some_binaries(...) !!! [0527 10:08:18] 2: /home/thockin/src/kubernetes/hack/lib/golang.sh:942 kube::golang::build_binaries_for_platform(...) !!! [0527 10:08:18] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) make: *** [Makefile:92: all] Error 1 $ make WHAT=k8s.io/api +++ [0527 10:08:34] Setting GOMAXPROCS: 12 +++ [0527 10:08:34] Building go targets for linux/amd64 k8s.io/api (non-static) $ make test WHAT=./staging/src/k8s.io/api +++ [0527 10:09:41] Setting GOMAXPROCS: 12 +++ [0527 10:09:41] Running tests without code coverage and with -race code in directory /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/staging/src/k8s.io/api expects import "k8s.io/api" make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/api +++ [0527 10:09:50] Setting GOMAXPROCS: 12 !!! [0527 10:09:50] specified test path '${GOPATH}/src/k8s.io/api' does not exist make: *** [Makefile:184: test] Error 1 ```
Remove vendor'ed symlinks, run updated script. The edits to a few go.mod files wrt code-generator are unexplained, except that Go broke something that used to work (golang/go#59186) which forced me to comment stuff out. This depends on gotip (gotip download 495801). Results: `go build` and `go test` work: ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ go build ./cmd/kubectl $ go build k8s.io/kubernetes/cmd/kubectl $ go test ./cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go test k8s.io/kubernetes/cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go build ./staging/src/k8s.io/api $ go build k8s.io/api $ go test ./staging/src/k8s.io/api ok k8s.io/api 3.225s $ go test k8s.io/api ok k8s.io/api (cached) ``` `make` and `make test` sometimes work (not surprising): ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ export FORCE_HOST_GO=true $ make kubectl +++ [0527 09:51:20] Setting GOMAXPROCS: 12 +++ [0527 09:51:20] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make WHAT=./cmd/kubectl/ +++ [0527 09:55:55] Setting GOMAXPROCS: 12 +++ [0527 09:55:55] Building go targets for linux/amd64 k8s.io/kubernetes/./cmd/kubectl/ (non-static) $ make WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:05:42] Setting GOMAXPROCS: 12 +++ [0527 10:05:42] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make test WHAT=./cmd/kubectl +++ [0527 10:07:00] Setting GOMAXPROCS: 12 +++ [0527 10:07:00] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:07:25] Setting GOMAXPROCS: 12 +++ [0527 10:07:25] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make WHAT=./staging/src/k8s.io/api +++ [0527 10:08:18] Setting GOMAXPROCS: 12 +++ [0527 10:08:18] Building go targets for linux/amd64 k8s.io/kubernetes/./staging/src/k8s.io/api (non-static) cannot find module providing package k8s.io/kubernetes/staging/src/k8s.io/api: import lookup disabled by -mod=vendor (Go version in go.work is at least 1.14 and vendor directory exists.) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: /home/thockin/src/kubernetes/hack/lib/golang.sh:783 kube::golang::build_some_binaries(...) !!! [0527 10:08:18] 2: /home/thockin/src/kubernetes/hack/lib/golang.sh:942 kube::golang::build_binaries_for_platform(...) !!! [0527 10:08:18] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) make: *** [Makefile:92: all] Error 1 $ make WHAT=k8s.io/api +++ [0527 10:08:34] Setting GOMAXPROCS: 12 +++ [0527 10:08:34] Building go targets for linux/amd64 k8s.io/api (non-static) $ make test WHAT=./staging/src/k8s.io/api +++ [0527 10:09:41] Setting GOMAXPROCS: 12 +++ [0527 10:09:41] Running tests without code coverage and with -race code in directory /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/staging/src/k8s.io/api expects import "k8s.io/api" make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/api +++ [0527 10:09:50] Setting GOMAXPROCS: 12 !!! [0527 10:09:50] specified test path '${GOPATH}/src/k8s.io/api' does not exist make: *** [Makefile:184: test] Error 1 ```
Remove vendor'ed symlinks, run updated script. This depends on gotip (gotip download 495801). PATH="$(gotip env GOROOT)/bin:$PATH \ FORCE_HOST_GO=true \ ./hack/update-vendor.sh TODO: The edits to a few go.mod files wrt code-generator are unexplained, except that Go broke something that used to work (golang/go#59186) which forced me to comment stuff out. This depends on gotip (gotip download 495801). Results: `go build` and `go test` work: ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ go build ./cmd/kubectl $ go build k8s.io/kubernetes/cmd/kubectl $ go test ./cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go test k8s.io/kubernetes/cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go build ./staging/src/k8s.io/api $ go build k8s.io/api $ go test ./staging/src/k8s.io/api ok k8s.io/api 3.225s $ go test k8s.io/api ok k8s.io/api (cached) ``` `make` and `make test` sometimes work (not surprising): ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ export FORCE_HOST_GO=true $ make kubectl +++ [0527 09:51:20] Setting GOMAXPROCS: 12 +++ [0527 09:51:20] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make WHAT=./cmd/kubectl/ +++ [0527 09:55:55] Setting GOMAXPROCS: 12 +++ [0527 09:55:55] Building go targets for linux/amd64 k8s.io/kubernetes/./cmd/kubectl/ (non-static) $ make WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:05:42] Setting GOMAXPROCS: 12 +++ [0527 10:05:42] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make test WHAT=./cmd/kubectl +++ [0527 10:07:00] Setting GOMAXPROCS: 12 +++ [0527 10:07:00] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:07:25] Setting GOMAXPROCS: 12 +++ [0527 10:07:25] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make WHAT=./staging/src/k8s.io/api +++ [0527 10:08:18] Setting GOMAXPROCS: 12 +++ [0527 10:08:18] Building go targets for linux/amd64 k8s.io/kubernetes/./staging/src/k8s.io/api (non-static) cannot find module providing package k8s.io/kubernetes/staging/src/k8s.io/api: import lookup disabled by -mod=vendor (Go version in go.work is at least 1.14 and vendor directory exists.) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: /home/thockin/src/kubernetes/hack/lib/golang.sh:783 kube::golang::build_some_binaries(...) !!! [0527 10:08:18] 2: /home/thockin/src/kubernetes/hack/lib/golang.sh:942 kube::golang::build_binaries_for_platform(...) !!! [0527 10:08:18] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) make: *** [Makefile:92: all] Error 1 $ make WHAT=k8s.io/api +++ [0527 10:08:34] Setting GOMAXPROCS: 12 +++ [0527 10:08:34] Building go targets for linux/amd64 k8s.io/api (non-static) $ make test WHAT=./staging/src/k8s.io/api +++ [0527 10:09:41] Setting GOMAXPROCS: 12 +++ [0527 10:09:41] Running tests without code coverage and with -race code in directory /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/staging/src/k8s.io/api expects import "k8s.io/api" make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/api +++ [0527 10:09:50] Setting GOMAXPROCS: 12 !!! [0527 10:09:50] specified test path '${GOPATH}/src/k8s.io/api' does not exist make: *** [Makefile:184: test] Error 1 ```
Remove vendor'ed symlinks, run updated script. This depends on gotip (gotip download 495801). PATH="$(gotip env GOROOT)/bin:$PATH \ FORCE_HOST_GO=true \ ./hack/update-vendor.sh TODO: The edits to a few go.mod files wrt code-generator are unexplained, except that Go broke something that used to work (golang/go#59186) which forced me to comment stuff out. This depends on gotip (gotip download 495801). Results: `go build` and `go test` work: ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ go build ./cmd/kubectl $ go build k8s.io/kubernetes/cmd/kubectl $ go test ./cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go test k8s.io/kubernetes/cmd/kubectl ? k8s.io/kubernetes/cmd/kubectl [no test files] $ go build ./staging/src/k8s.io/api $ go build k8s.io/api $ go test ./staging/src/k8s.io/api ok k8s.io/api 3.225s $ go test k8s.io/api ok k8s.io/api (cached) ``` `make` and `make test` sometimes work (not surprising): ``` $ export PATH=/home/thockin/sdk/gotip/bin:$PATH $ export FORCE_HOST_GO=true $ make kubectl +++ [0527 09:51:20] Setting GOMAXPROCS: 12 +++ [0527 09:51:20] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make WHAT=./cmd/kubectl/ +++ [0527 09:55:55] Setting GOMAXPROCS: 12 +++ [0527 09:55:55] Building go targets for linux/amd64 k8s.io/kubernetes/./cmd/kubectl/ (non-static) $ make WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:05:42] Setting GOMAXPROCS: 12 +++ [0527 10:05:42] Building go targets for linux/amd64 k8s.io/kubernetes/cmd/kubectl (static) $ make test WHAT=./cmd/kubectl +++ [0527 10:07:00] Setting GOMAXPROCS: 12 +++ [0527 10:07:00] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/kubernetes/cmd/kubectl +++ [0527 10:07:25] Setting GOMAXPROCS: 12 +++ [0527 10:07:25] Running tests without code coverage and with -race cmd/kubectl/kubectl.go:25:2: cannot find package "k8s.io/client-go/plugin/pkg/client/auth" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/plugin/pkg/client/auth (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/client-go/plugin/pkg/client/auth (from $GOPATH) cmd/kubectl/kubectl.go:20:2: cannot find package "k8s.io/component-base/cli" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/component-base/cli (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/component-base/cli (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/component-base/cli (from $GOPATH) cmd/kubectl/kubectl.go:21:2: cannot find package "k8s.io/kubectl/pkg/cmd" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd (from $GOPATH) cmd/kubectl/kubectl.go:22:2: cannot find package "k8s.io/kubectl/pkg/cmd/util" in any of: /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/kubectl/pkg/cmd/util (vendor tree) /home/thockin/sdk/gotip/src/k8s.io/kubectl/pkg/cmd/util (from $GOROOT) /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubectl/pkg/cmd/util (from $GOPATH) make: *** [Makefile:184: test] Error 1 $ make WHAT=./staging/src/k8s.io/api +++ [0527 10:08:18] Setting GOMAXPROCS: 12 +++ [0527 10:08:18] Building go targets for linux/amd64 k8s.io/kubernetes/./staging/src/k8s.io/api (non-static) cannot find module providing package k8s.io/kubernetes/staging/src/k8s.io/api: import lookup disabled by -mod=vendor (Go version in go.work is at least 1.14 and vendor directory exists.) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: /home/thockin/src/kubernetes/hack/lib/golang.sh:783 kube::golang::build_some_binaries(...) !!! [0527 10:08:18] 2: /home/thockin/src/kubernetes/hack/lib/golang.sh:942 kube::golang::build_binaries_for_platform(...) !!! [0527 10:08:18] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0527 10:08:18] Call tree: !!! [0527 10:08:18] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) make: *** [Makefile:92: all] Error 1 $ make WHAT=k8s.io/api +++ [0527 10:08:34] Setting GOMAXPROCS: 12 +++ [0527 10:08:34] Building go targets for linux/amd64 k8s.io/api (non-static) $ make test WHAT=./staging/src/k8s.io/api +++ [0527 10:09:41] Setting GOMAXPROCS: 12 +++ [0527 10:09:41] Running tests without code coverage and with -race code in directory /home/thockin/src/kubernetes/_output/local/go/src/k8s.io/kubernetes/staging/src/k8s.io/api expects import "k8s.io/api" make: *** [Makefile:184: test] Error 1 $ make test WHAT=k8s.io/api +++ [0527 10:09:50] Setting GOMAXPROCS: 12 !!! [0527 10:09:50] specified test path '${GOPATH}/src/k8s.io/api' does not exist make: *** [Makefile:184: test] Error 1 ```
What version of Go are you using (
go version
)?tip (go1.21-4d9beb2052)
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?darwin/amd64
What did you do?
Having a module with two packages
a
andb
.b
is a main package.a
importsb
(erroneously).go.mod
a/a.go
b/b.go
Run
go list ./a ./b
.What did you expect to see?
Report the error for importing a non-importable package, like
What did you see instead?
No error, with 0 exit code.
Interestingly,
go list -test ./a ./b
reports the error, although the error has nothing to do with test files (there is none). The documentation doesn't seem to mention that the-test
flag can cause different behavior for error reporting.There are also some other errors not being reported with
go list
, but reported withgo list -test
. https://cs.opensource.google/go/go/+/master:src/cmd/go/testdata/script/vendor_import.txt is one example.bad.go
andinvalid.go
contains some errors, but thego list
command succeeded.It looks like the different behavior is related to that this code https://cs.opensource.google/go/go/+/master:src/cmd/go/internal/list/list.go;l=736-788 runs when
-test
is specified.Found while working on CL https://golang.org/cl/474236.
cc @bcmills
The text was updated successfully, but these errors were encountered: