Go: x/exp: depends on unreliable repository

Created on 28 Oct 2019  ·  10Comments  ·  Source: golang/go

Our current CI builds are failing because https://dmitri.shuralyov.com/gpu/mtl is not online enough. Investigating this I can see that x/exp depends on it.

Is it possible to only add reliable dependencies to the core golang library? This causes a lot of lost time due to CI breakage and folk having to investigate this.

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

$ go version 1.12

Does this issue reproduce with the latest release?

It is intermittent - CI builds break with

go: dmitri.shuralyov.com/gpu/[email protected]: unrecognized import path "dmitri.shuralyov.com/gpu/mtl" (https fetch: Get https://dmitri.shuralyov.com/gpu/mtl?go-get=1: dial tcp 172.93.50.41:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)

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

go env Output

$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/mic/.cache/go-build"
GOENV="/home/mic/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/mic/go/"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go-1.13"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.13/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/mic/projects/velociraptor/go.mod"
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 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build251680876=/tmp/go-build -gno-record-gcc-switches"

What did you do?

What did you expect to see?

CI builds succeeding

What did you see instead?

Flakey breakage

Most helpful comment

me too. I'm using AppEngine 1st gen still, It uses Go 1.11 ... We wanna move into 2nd gen. But it's not easy for our teams.

All 10 comments

a) x/exp is experimental.

b) if you're using proxy.golang.org or another module proxy/cache, then it doesn't matter whether something is up or not.

/cc @dmitshur

Im acutally not using x/exp directly - go mod graph shows that it is used by cloud.google.com/[email protected]

Perhaps they should not be using x/exp.

Thank @bradfitz - setting GOPROXY: https://proxy.golang.org in our appveyor.yaml environment block fixed the issue.

Thanks again for your help!

It's fixed now, this was https://twitter.com/dmitshur/status/1188949522724073472.

I would've made the same suggestion as @bradfitz to use https://proxy.golang.org. Glad it worked well for you.

@dmitshur Looks like the server https://dmitri.shuralyov.com/gpu/mtl failed again to day. Could you help check?

go: dmitri.shuralyov.com/gpu/[email protected]: unrecognized import path "dmitri.shuralyov.com/gpu/mtl" (https fetch: Get https://dmitri.shuralyov.com/gpu/mtl?go-get=1: dial tcp 172.93.50.41:443: i/o timeout)

Setting GOPROXY: https://proxy.golang.org will block us from using Go private library since go 1.12 does not allow for multiple proxy sources in GOPROXY (using comma).
Only go1.13 allow comma separated list in GOPROXY (https://github.com/golang/go/issues/33725)

Does the Go team has any plan or checklist or document on using non reliable source (for both release and experimental packages)? If yes then could you help direct me to it? I need it for our company's incident report since this issue block our CI/CD pipeline. Thanks a lot.

Can anyone advise how to set GOPROXY when deploying to Google AppEngine Standard?

me too. I'm using AppEngine 1st gen still, It uses Go 1.11 ... We wanna move into 2nd gen. But it's not easy for our teams.

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.

For asking questions, see:

Thank you @davecheney!

Was this page helpful?
0 / 5 - 0 ratings