go: x/sys/unix: broken on Go 1.6

Please answer these questions before submitting your issue. Thanks!

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

go version go1.6.4 linux/amd64

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

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/travis/gopath"
GORACE=""
GOROOT="/home/travis/.gimme/versions/go1.6.4.linux.amd64"
GOTOOLDIR="/home/travis/.gimme/versions/go1.6.4.linux.amd64/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

What did you do?

Some of our CI builds on Go 1.6 suddenly started failing (builds are successful on other Go version)

google.golang.org/grpc/balancer
google.golang.org/grpc/balancer/base
google.golang.org/grpc/balancer/roundrobin
google.golang.org/grpc/codes
google.golang.org/grpc/encoding
google.golang.org/grpc/encoding/proto
google.golang.org/grpc/internal
google.golang.org/grpc/internal/grpcrand
google.golang.org/grpc/internal/backoff
golang.org/x/sys/unix
# golang.org/x/sys/unix
../../golang.org/x/sys/unix/ioctl.go:18: undefined: runtime.KeepAlive
../../golang.org/x/sys/unix/ioctl.go:28: undefined: runtime.KeepAlive
google.golang.org/grpc/internal/envconfig
github.com/golang/protobuf/ptypes/any
google.golang.org/genproto/googleapis/rpc/status
google.golang.org/grpc/keepalive
google.golang.org/grpc/metadata
google.golang.org/grpc/peer
google.golang.org/grpc/stats
github.com/golang/protobuf/ptypes/duration
github.com/golang/protobuf/ptypes/timestamp
github.com/golang/protobuf/ptypes
google.golang.org/grpc/status
google.golang.org/grpc/tap
google.golang.org/grpc/naming
google.golang.org/grpc/resolver/dns
google.golang.org/grpc/resolver/passthrough
google.golang.org/api/iterator
golang.org/x/net/context/ctxhttp
golang.org/x/oauth2/jws
golang.org/x/oauth2/internal
cloud.google.com/go/compute/metadata
google.golang.org/api/googleapi/transport
golang.org/x/oauth2
github.com/golang/protobuf/ptypes/empty
github.com/golang/protobuf/ptypes/struct
github.com/golang/protobuf/ptypes/wrappers
golang.org/x/oauth2/jwt
github.com/golang/protobuf/protoc-gen-go/descriptor
golang.org/x/oauth2/google
google.golang.org/genproto/googleapis/api/annotations
google.golang.org/grpc/credentials/oauth
google.golang.org/genproto/googleapis/type/latlng
cloud.google.com/go/internal/atomiccache
cloud.google.com/go/internal/btree
cloud.google.com/go/internal/fields
google.golang.org/api/googleapi/internal/uritemplates
cloud.google.com/go/internal/optional
cloud.google.com/go/internal/trace
google.golang.org/api/googleapi
google.golang.org/api/gensupport
google.golang.org/api/identitytoolkit/v3
google.golang.org/api/storage/v1
The command "go get -t -v $(go list ./... | grep -v integration)" failed and exited with 2 during .

Issue seems to have been caused by https://github.com/golang/sys/commit/e072cadbbdc8dd3d3ffa82b8b4b9304c261d9311

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 25 (16 by maintainers)

Commits related to this issue

Most upvoted comments

The Google stuff broken by this was fixed, so closing this issue. The Go project itself has no plans to change our support policy to support things older than the past two releases.

Will no one rid of us of this meddlesome 1.6 release?

@jadekler that indeed fixes the issue for us. Much appreciated 👍

https://travis-ci.org/firebase/firebase-admin-go/jobs/407811247

I think it should be fine, but this sounds like kicking the can down the road to me. When will our next dependency break support for Go 1.6?

Vendoring is the only reasonable solution here. It isn’t sustainable to support so many versions of Go. If App Engine was not a Google product, I know what we would do.

@jba, do we have that documented somewhere?

Let’s agree on something and write something down.

We can’t have some invisible policy that non-Google Go contributors don’t know about.

Please document somewhere what’s expected of the Go App Engine libraries and what’s expected of the Go libraries (and which). And for which environments. (Standard? Flex? Go 1.6 only? which packages?)

Also, we have no build & test infrastructure setup for older releases anymore.

You never replied to https://github.com/golang/go/issues/26302 either, which is about removing Go 1.8 and older support in x/net/http2, which has become a mess of +build tags and files:

https://github.com/golang/net/tree/master/http2

screen shot 2018-07-25 at 7 48 35 am

… such messes hinder development. It’s just not sustainable to keep supporting Go 1.6.

Perhaps y’all need to vendor old copies of certain golang.org/x/* packages to keep App Engine libraries working, if that’s what you’ve promised.

But I’m not sure what the constraints are. Please document it somewhere.

Once we see & agree upon a policy, then we can move forward with this bug.

Not quite, Brad. There is a difference between supporting 1.9 and dropping support for 1.6.

Please put this change behind a build tag.