Commit Graph

10 Commits

Author SHA1 Message Date
Aaron Gable 89213f9214
Use generic types for gRPC stream implementations (#7501)
Update the version of protoc-gen-go-grpc that we use to generate Go gRPC
code from our proto files, and update the versions of other gRPC tools
and libraries that we use to match. Turn on the new
`use_generic_streams` code generation flag to change how
protoc-gen-go-grpc generates implementations of our streaming methods,
from creating a wholly independent implementation for every stream to
using shared generic implementations.

Take advantage of this code-sharing to remove our SA "wrapper" methods,
now that they have truly the same signature as the SARO methods which
they wrap. Also remove all references to the old-style stream names
(e.g. foopb.FooService_BarMethodClient) and replace them with the new
underlying generic names, for the sake of consistency. Finally, also
remove a few custom stream test mocks, replacing them with the generic
mocks.ServerStreamClient.

Note that this PR does not change the names in //mocks/sa.go, to avoid
conflicts with work happening in the pursuit of
https://github.com/letsencrypt/boulder/issues/7476. Note also that this
PR updates the version of protoc-gen-go-grpc that we use to a specific
commit. This is because, although a new release of grpc-go itself has
been cut, the codegen binary is a separate Go module with its own
releases, and it hasn't had a new release cut yet. Tracking for that is
in https://github.com/grpc/grpc-go/issues/7030.
2024-05-24 13:54:25 -07:00
Aaron Gable 617b6edea4
Update google.golang.org/grpc to v1.59.0 (#7130)
This version contains mitigations for the HTTP/2 rapid-reset DoS vector.
See https://github.com/advisories/GHSA-m425-mq94-257g for details.

Changelog: https://github.com/grpc/grpc-go/compare/v1.54.0...v1.59.0
2023-11-02 10:20:14 -04:00
Matthew McPherrin 5f0d2ae002
Upgrade Opentelemetry dependencies (#6855)
This upgrades otel to v1.15.0, and the /contrib/ packages to v0.41.0.
Several dependencies are upgraded as dependencies, notably grpc.

This contains a change to grpc, only mapping some grpc.Errors into span
errors if it's Unknown, DeadlineExceeded, Unimplemented, Internal,
Unavailable, or DataLoss, which should be helpful for us as we use grpc
errors semantically in Boulder, especially NotFound.
2023-05-03 15:40:11 -07:00
Aaron Gable c706609e79
Update grpc from v1.36.1 to v1.49.0 (#6336)
Changelog: https://github.com/grpc/grpc-go/compare/v1.36.1...v1.49.0

The biggest change for us is that grpc.WithBalancerName has
transitioned from deprecated to fully removed. The fix is to replace
it with a JSON-formatted "default config" object, as demonstrated in
https://github.com/grpc/grpc-go/pull/5232#issuecomment-1106921140.

This should unblock updating other dependencies which want to
transitively update gRPC as well.
2022-09-01 13:29:06 -07:00
Jacob Hoffman-Andrews 7194624191
Update grpc and protobuf to latest. (#5369)
protoc now generates grpc code in a separate file from protobuf code.
Also, grpc servers are now required to embed an "unimplemented"
interface from the generated .pb.go file, which provides forward
compatibility.

Update the generate.go files since the invocation for protoc has changed
with the split into .pb.org and _grpc.pb.go.

Fixes #5368
2021-04-01 17:18:15 -07:00
Daniel McCarney 77a9330eeb deps: update google.golang.org/grpc 1.20.0->1.25.1 (#4629)
Note: This dep bump introduces a harmless, but annoying, error log
to our service startup output of the form:

> E203318 boulder-ra 2PvBvwg [AUDIT] ccResolverWrapper: error parsing service config: no JSON service config provided

We previously addressed this with the upstream project
(30f4150eec)
but the problem has returned. Filed https://github.com/letsencrypt/boulder/issues/4628
as a follow-up to chase this down.

Unit tests are confirmed to pass:

```
~/go/src/google.golang.org/grpc$ git log --pretty=format:'%h' -n 1
1a3960e

~/go/src/google.golang.org/grpc$ go test ./...
ok  	google.golang.org/grpc	18.163s
?   	google.golang.org/grpc/backoff	[no test files]
?   	google.golang.org/grpc/balancer	[no test files]
?   	google.golang.org/grpc/balancer/base	[no test files]
ok  	google.golang.org/grpc/balancer/grpclb	15.491s
?   	google.golang.org/grpc/balancer/grpclb/grpc_lb_v1	[no test files]
ok  	google.golang.org/grpc/balancer/roundrobin	0.349s
?   	google.golang.org/grpc/balancer/weightedroundrobin	[no test files]
?   	google.golang.org/grpc/benchmark	[no test files]
?   	google.golang.org/grpc/benchmark/benchmain	[no test files]
?   	google.golang.org/grpc/benchmark/benchresult	[no test files]
?   	google.golang.org/grpc/benchmark/client	[no test files]
ok  	google.golang.org/grpc/benchmark/flags	0.001s
?   	google.golang.org/grpc/benchmark/grpc_testing	[no test files]
ok  	google.golang.org/grpc/benchmark/latency	1.005s
ok  	google.golang.org/grpc/benchmark/primitives	0.001s [no tests to run]
?   	google.golang.org/grpc/benchmark/server	[no test files]
?   	google.golang.org/grpc/benchmark/stats	[no test files]
?   	google.golang.org/grpc/benchmark/worker	[no test files]
?   	google.golang.org/grpc/binarylog/grpc_binarylog_v1	[no test files]
?   	google.golang.org/grpc/channelz/grpc_channelz_v1	[no test files]
ok  	google.golang.org/grpc/channelz/service	0.009s
ok  	google.golang.org/grpc/codes	0.002s
?   	google.golang.org/grpc/connectivity	[no test files]
ok  	google.golang.org/grpc/credentials	0.017s
ok  	google.golang.org/grpc/credentials/alts	0.003s
?   	google.golang.org/grpc/credentials/alts/internal	[no test files]
ok  	google.golang.org/grpc/credentials/alts/internal/authinfo	0.003s
ok  	google.golang.org/grpc/credentials/alts/internal/conn	0.079s
ok  	google.golang.org/grpc/credentials/alts/internal/handshaker	0.039s
ok  	google.golang.org/grpc/credentials/alts/internal/handshaker/service	0.007s
?   	google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp	[no test files]
?   	google.golang.org/grpc/credentials/alts/internal/testutil	[no test files]
?   	google.golang.org/grpc/credentials/google	[no test files]
ok  	google.golang.org/grpc/credentials/internal	0.005s
?   	google.golang.org/grpc/credentials/oauth	[no test files]
?   	google.golang.org/grpc/encoding	[no test files]
?   	google.golang.org/grpc/encoding/gzip	[no test files]
ok  	google.golang.org/grpc/encoding/proto	0.025s
?   	google.golang.org/grpc/examples/features/authentication/client	[no test files]
?   	google.golang.org/grpc/examples/features/authentication/server	[no test files]
?   	google.golang.org/grpc/examples/features/cancellation/client	[no test files]
?   	google.golang.org/grpc/examples/features/cancellation/server	[no test files]
?   	google.golang.org/grpc/examples/features/compression/client	[no test files]
?   	google.golang.org/grpc/examples/features/compression/server	[no test files]
?   	google.golang.org/grpc/examples/features/deadline/client	[no test files]
?   	google.golang.org/grpc/examples/features/deadline/server	[no test files]
?   	google.golang.org/grpc/examples/features/debugging/client	[no test files]
?   	google.golang.org/grpc/examples/features/debugging/server	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/ALTS/client	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/ALTS/server	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/TLS/client	[no test files]
?   	google.golang.org/grpc/examples/features/encryption/TLS/server	[no test files]
?   	google.golang.org/grpc/examples/features/errors/client	[no test files]
?   	google.golang.org/grpc/examples/features/errors/server	[no test files]
?   	google.golang.org/grpc/examples/features/interceptor/client	[no test files]
?   	google.golang.org/grpc/examples/features/interceptor/server	[no test files]
?   	google.golang.org/grpc/examples/features/keepalive/client	[no test files]
?   	google.golang.org/grpc/examples/features/keepalive/server	[no test files]
?   	google.golang.org/grpc/examples/features/load_balancing/client	[no test files]
?   	google.golang.org/grpc/examples/features/load_balancing/server	[no test files]
?   	google.golang.org/grpc/examples/features/metadata/client	[no test files]
?   	google.golang.org/grpc/examples/features/metadata/server	[no test files]
?   	google.golang.org/grpc/examples/features/multiplex/client	[no test files]
?   	google.golang.org/grpc/examples/features/multiplex/server	[no test files]
?   	google.golang.org/grpc/examples/features/name_resolving/client	[no test files]
?   	google.golang.org/grpc/examples/features/name_resolving/server	[no test files]
?   	google.golang.org/grpc/examples/features/proto	[no test files]
?   	google.golang.org/grpc/examples/features/proto/echo	[no test files]
?   	google.golang.org/grpc/examples/features/reflection/server	[no test files]
?   	google.golang.org/grpc/examples/features/retry/client	[no test files]
?   	google.golang.org/grpc/examples/features/retry/server	[no test files]
?   	google.golang.org/grpc/examples/features/wait_for_ready	[no test files]
?   	google.golang.org/grpc/examples/helloworld/greeter_client	[no test files]
?   	google.golang.org/grpc/examples/helloworld/greeter_server	[no test files]
?   	google.golang.org/grpc/examples/helloworld/helloworld	[no test files]
ok  	google.golang.org/grpc/examples/helloworld/mock_helloworld	0.003s
?   	google.golang.org/grpc/examples/route_guide/client	[no test files]
ok  	google.golang.org/grpc/examples/route_guide/mock_routeguide	0.005s
?   	google.golang.org/grpc/examples/route_guide/routeguide	[no test files]
?   	google.golang.org/grpc/examples/route_guide/server	[no test files]
ok  	google.golang.org/grpc/grpclog	0.003s
?   	google.golang.org/grpc/grpclog/glogger	[no test files]
ok  	google.golang.org/grpc/health	0.063s
?   	google.golang.org/grpc/health/grpc_health_v1	[no test files]
?   	google.golang.org/grpc/internal	[no test files]
?   	google.golang.org/grpc/internal/backoff	[no test files]
?   	google.golang.org/grpc/internal/balancerload	[no test files]
ok  	google.golang.org/grpc/internal/binarylog	0.026s
ok  	google.golang.org/grpc/internal/buffer	0.002s
ok  	google.golang.org/grpc/internal/cache	0.653s
ok  	google.golang.org/grpc/internal/channelz	0.005s
?   	google.golang.org/grpc/internal/envconfig	[no test files]
?   	google.golang.org/grpc/internal/grpcrand	[no test files]
ok  	google.golang.org/grpc/internal/grpcsync	0.002s
ok  	google.golang.org/grpc/internal/grpctest	0.002s
ok  	google.golang.org/grpc/internal/leakcheck	4.083s
ok  	google.golang.org/grpc/internal/proto/grpc_service_config	0.002s
ok  	google.golang.org/grpc/internal/resolver/dns	1.620s
?   	google.golang.org/grpc/internal/resolver/passthrough	[no test files]
?   	google.golang.org/grpc/internal/syscall	[no test files]
ok  	google.golang.org/grpc/internal/testutils	0.002s
ok  	google.golang.org/grpc/internal/transport	81.078s
ok  	google.golang.org/grpc/internal/wrr	0.008s
?   	google.golang.org/grpc/interop	[no test files]
?   	google.golang.org/grpc/interop/alts/client	[no test files]
?   	google.golang.org/grpc/interop/alts/server	[no test files]
?   	google.golang.org/grpc/interop/client	[no test files]
?   	google.golang.org/grpc/interop/fake_grpclb	[no test files]
?   	google.golang.org/grpc/interop/grpc_testing	[no test files]
?   	google.golang.org/grpc/interop/http2	[no test files]
?   	google.golang.org/grpc/interop/server	[no test files]
?   	google.golang.org/grpc/keepalive	[no test files]
ok  	google.golang.org/grpc/metadata	0.004s
ok  	google.golang.org/grpc/naming	0.156s
?   	google.golang.org/grpc/peer	[no test files]
ok  	google.golang.org/grpc/reflection	0.010s
?   	google.golang.org/grpc/reflection/grpc_reflection_v1alpha	[no test files]
?   	google.golang.org/grpc/reflection/grpc_testing	[no test files]
?   	google.golang.org/grpc/reflection/grpc_testingv3	[no test files]
?   	google.golang.org/grpc/resolver	[no test files]
?   	google.golang.org/grpc/resolver/dns	[no test files]
?   	google.golang.org/grpc/resolver/manual	[no test files]
?   	google.golang.org/grpc/resolver/passthrough	[no test files]
?   	google.golang.org/grpc/serviceconfig	[no test files]
ok  	google.golang.org/grpc/stats	0.046s
?   	google.golang.org/grpc/stats/grpc_testing	[no test files]
ok  	google.golang.org/grpc/status	0.008s
?   	google.golang.org/grpc/stress/client	[no test files]
?   	google.golang.org/grpc/stress/grpc_testing	[no test files]
?   	google.golang.org/grpc/stress/metrics_client	[no test files]
?   	google.golang.org/grpc/tap	[no test files]
ok  	google.golang.org/grpc/test	30.190s
ok  	google.golang.org/grpc/test/bufconn	0.204s
?   	google.golang.org/grpc/test/codec_perf	[no test files]
?   	google.golang.org/grpc/test/go_vet	[no test files]
?   	google.golang.org/grpc/test/grpc_testing	[no test files]
?   	google.golang.org/grpc/xds/experimental	[no test files]
ok  	google.golang.org/grpc/xds/internal	0.003s
ok  	google.golang.org/grpc/xds/internal/balancer	5.113s
ok  	google.golang.org/grpc/xds/internal/balancer/edsbalancer	1.264s
ok  	google.golang.org/grpc/xds/internal/balancer/lrs	0.246s
ok  	google.golang.org/grpc/xds/internal/balancer/orca	0.002s
ok  	google.golang.org/grpc/xds/internal/client	0.004s
?   	google.golang.org/grpc/xds/internal/proto	[no test files]
?   	google.golang.org/grpc/xds/internal/proto/udpa/data/orca/v1	[no test files]
?   	google.golang.org/grpc/xds/internal/proto/udpa/service/orca/v1	[no test files]
?   	google.golang.org/grpc/xds/internal/proto/udpa/type/v1	[no test files]
ok  	google.golang.org/grpc/xds/internal/resolver	0.004s
```

Updates https://github.com/letsencrypt/boulder/issues/4548
2020-01-06 11:03:28 -08:00
Jacob Hoffman-Andrews 44c0b11981 Update x/text, grpc, and genproto. (#4158)
This is part of #4116 since the modules system wants higher versions of these.

golang.org/x/text -> v0.3.0
google.golang.org/grpc -> v1.20.0
google.golang.org/genproto -> master

$ go test google.golang.org/genproto/googleapis/rpc/status
?       google.golang.org/genproto/googleapis/rpc/status        [no test
files]

$ go test golang.org/x/text/{secure/bidirule,transform,unicode/bidi,unicode/norm}
-count=1
ok      golang.org/x/text/secure/bidirule       0.016s
ok      golang.org/x/text/transform     0.041s
ok      golang.org/x/text/unicode/bidi  0.007s
ok      golang.org/x/text/unicode/norm  1.800s

$ go test google.golang.org/grpc/{,balancer{,/base,/roundrobin},codes,connectivity,credentials,encoding,encoding/proto,grpclog,internal{,/backoff,/channelz,/envconfig,/grpcrand,/transport},keepalive,metadata,naming,peer,resolver{,/dns,/passthrough},stats,status,tap}
ok      google.golang.org/grpc  22.494s
?       google.golang.org/grpc/balancer [no test files]
?       google.golang.org/grpc/balancer/base    [no test files]
ok      google.golang.org/grpc/balancer/roundrobin      (cached)
ok      google.golang.org/grpc/codes    (cached)
?       google.golang.org/grpc/connectivity     [no test files]
ok      google.golang.org/grpc/credentials      0.015s
?       google.golang.org/grpc/encoding [no test files]
ok      google.golang.org/grpc/encoding/proto   0.056s
ok      google.golang.org/grpc/grpclog  0.001s
?       google.golang.org/grpc/internal [no test files]
?       google.golang.org/grpc/internal/backoff [no test files]
ok      google.golang.org/grpc/internal/channelz        0.034s
?       google.golang.org/grpc/internal/envconfig       [no test files]
?       google.golang.org/grpc/internal/grpcrand        [no test files]
ok      google.golang.org/grpc/internal/transport       81.123s
?       google.golang.org/grpc/keepalive        [no test files]
ok      google.golang.org/grpc/metadata 0.005s
ok      google.golang.org/grpc/naming   0.187s
?       google.golang.org/grpc/peer     [no test files]
?       google.golang.org/grpc/resolver [no test files]
ok      google.golang.org/grpc/resolver/dns     1.594s
?       google.golang.org/grpc/resolver/passthrough     [no test files]
ok      google.golang.org/grpc/stats    0.036s
ok      google.golang.org/grpc/status   0.002s
?       google.golang.org/grpc/tap      [no test files]
2019-04-16 14:25:19 -07:00
Roland Bracewell Shoemaker 876c727b6f Update gRPC (#3817)
Fixes #3474.
2018-08-20 10:55:42 -04:00
Jacob Hoffman-Andrews 26de87dfa2 Update grpc dep and regenerate caa-checker. (#1761)
* Update grpc dep and regenerate caa-checker.

The latest version generates a different format. This is a precursor to running
go generate in Travis.
2016-04-21 11:05:17 -07:00
Jacob Hoffman-Andrews e6c17e1717 Switch to new vendor style (#1747)
* Switch to new vendor style.

* Fix metrics generate command.

* Fix miekg/dns types_generate.

* Use generated copies of files.

* Update miekg to latest.

Fixes a problem with `go generate`.

* Set GO15VENDOREXPERIMENT.

* Build in letsencrypt/boulder.

* fix travis more.

* Exclude vendor instead of godeps.

* Replace some ...

* Fix unformatted cmd

* Fix errcheck for vendorexp

* Add GO15VENDOREXPERIMENT to Makefile.

* Temp disable errcheck.

* Restore master fetch.

* Restore errcheck.

* Build with 1.6 also.

* Match statsd.*"

* Skip errcheck unles Go1.6.

* Add other ignorepkg.

* Fix errcheck.

* move errcheck

* Remove go1.6 requirement.

* Put godep-restore with errcheck.

* Remove go1.6 dep.

* Revert master fetch revert.

* Remove -r flag from godep save.

* Set GO15VENDOREXPERIMENT in Dockerfile and remove _worskpace.

* Fix Godep version.
2016-04-18 12:51:36 -07:00