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

Build error with google.golang.org/grpc v1.30.0 #2195

Closed
bartle-stripe opened this issue Jul 14, 2020 · 5 comments
Closed

Build error with google.golang.org/grpc v1.30.0 #2195

bartle-stripe opened this issue Jul 14, 2020 · 5 comments
Assignees
Labels
dependencies Pull requests that update a dependency file
Projects

Comments

@bartle-stripe
Copy link

It looks like grpc-go removed google.golang.org/grpc/naming:

../../go/pkg/mod/go.etcd.io/etcd@v0.0.0-20200513171258-e048e166ab9c/clientv3/naming/grpc.go:25:2: module google.golang.org/grpc@latest found (v1.30.0), but does not contain package google.golang.org/grpc/naming

@AlCutter
Copy link
Member

Yeah, this has been the source of some headache trying to keep deps up-to-date, and is why we're still pinned to v1.29.1 in the go.mod file.

@Martin2112 is more familiar with this than I am, but I think we're kinda stuck until upstream {etcd, grpc, proto} do something which works together and we can bump.

@Martin2112
Copy link
Contributor

Yes I don't think etcd can build with this version of gRPC. It looks like they're considering solutions: etcd-io/etcd#12124

Unfortunately, grpc/naming tends to leak into usages of clientv3/naming e.g. in the CTFE main.go. I can see further compatibility headaches resulting from whatever changes are made upstream.

@Martin2112 Martin2112 added the dependencies Pull requests that update a dependency file label Jul 15, 2020
ilyatikhonov added a commit to vchain-dev/trillian that referenced this issue Sep 25, 2020
bors bot pushed a commit to spacemeshos/go-spacemesh that referenced this issue Nov 6, 2020
## Motivation
Closes #2133 
Closes #2104 

## Changes
- Upgrade to spacemesh API v1.0.0. Major API changes include:
  - split account state into current/projected (spacemeshos/api#111)
  - align node error types with zapcore error types (spacemeshos/api#102)
  - harmonize layernum type as uint32 (spacemeshos/api#120)
  - add an unimplemented SmesherService endpoint (EstimatedRewards) (spacemeshos/api#101)
- Upgrade google modules (required by API)

## Test Plan
No new tests are needed. No new functionality has been added to the API. Existing tests have been updated.

## Documentation
There are no docs to update. Master API docs live in the API repository and have already been updated. Implementation docs are still a work in progress in #2083.

## TODO
- [x] Finish upgrading API code

Note: Google modules were upgraded because cmd/sync imports google.golang.org/api/option, and the version it was importing was incompatible with google.golang.org/grpc >= v1.30.0. More info here:

- google/trillian#2195
- etcd-io/etcd#12124

Here's the error I was getting:

```
> go mod tidy
go: finding module for package google.golang.org/grpc/naming
github.com/spacemeshos/go-spacemesh/cmd/sync imports
        google.golang.org/api/option imports
        google.golang.org/api/internal imports
        google.golang.org/grpc/naming: module google.golang.org/grpc@latest found (v1.32.0), but does not contain package google.golang.org/grpc/naming
```

For reference here are the API changes: spacemeshos/api@49b94a5...v1.0.0
@mhutchinson
Copy link
Contributor

I looked into this last week but without some invasive (and breaking-change) refactoring to move our etcd integration into a separate (optional) Trillian Go module, we're stuck until etcd push out a release which fixes this.

Even if we take this refactoring work on, anyone that wants to deploy with this optional etcd module will still find themselves in the same situation. My understanding is that a significant number (most?) Trillian deployments use etcd so this is hard to justify. If etcd usage was the exception rather than the norm for Trillian I could be persuaded to take on this side quest.

@paulmattei paulmattei added this to Needs triage in Trillian Jan 21, 2021
lrettig added a commit to spacemeshos/go-spacemesh that referenced this issue Feb 3, 2021
Closes #2133
Closes #2104

- Upgrade to spacemesh API v1.0.0. Major API changes include:
  - split account state into current/projected (spacemeshos/api#111)
  - align node error types with zapcore error types (spacemeshos/api#102)
  - harmonize layernum type as uint32 (spacemeshos/api#120)
  - add an unimplemented SmesherService endpoint (EstimatedRewards) (spacemeshos/api#101)
- Upgrade google modules (required by API)

No new tests are needed. No new functionality has been added to the API. Existing tests have been updated.

There are no docs to update. Master API docs live in the API repository and have already been updated. Implementation docs are still a work in progress in #2083.

- [x] Finish upgrading API code

Note: Google modules were upgraded because cmd/sync imports google.golang.org/api/option, and the version it was importing was incompatible with google.golang.org/grpc >= v1.30.0. More info here:

- google/trillian#2195
- etcd-io/etcd#12124

Here's the error I was getting:

```
> go mod tidy
go: finding module for package google.golang.org/grpc/naming
github.com/spacemeshos/go-spacemesh/cmd/sync imports
        google.golang.org/api/option imports
        google.golang.org/api/internal imports
        google.golang.org/grpc/naming: module google.golang.org/grpc@latest found (v1.32.0), but does not contain package google.golang.org/grpc/naming
```

For reference here are the API changes: spacemeshos/api@49b94a5...v1.0.0
@mhutchinson mhutchinson self-assigned this Mar 1, 2021
@mhutchinson
Copy link
Contributor

I'm looking into this today. I think I'm making some progress.

mhutchinson added a commit to mhutchinson/trillian that referenced this issue Mar 1, 2021
Trillian has been stuck on grpc < 1.30 - google#2195. This uses the v3 version of etcd which isn't using the experimental (and now deleted) grpc APIs

I've deleted the prometheus etcdiscover tool in this commit. This can be re-added if we believe it's used, and we can find a way to test it. The upgrade path for this looks non-trivial.
mhutchinson added a commit that referenced this issue Mar 2, 2021
Trillian has been stuck on grpc < 1.30 - #2195. This uses the v3 version of etcd which isn't using the experimental (and now deleted) grpc APIs

I've deleted the prometheus `etcdiscover` tool in this commit. This can be re-added if it is used, and we can find a way to test it. The upgrade path for this looks non-trivial (the etcd watcher API has changed significantly).
@mhutchinson
Copy link
Contributor

This is fixed in #2376.

Trillian automation moved this from Needs triage to Closed Mar 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
Trillian
  
Closed
Development

No branches or pull requests

4 participants