Commit Graph

7 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
dependabot[bot] 1053352d1f
build(deps): bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from 0.46.1 to 0.51.0 (#7467)
Bumps
[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib)
from 0.46.1 to 0.51.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaron Gable <aaron@letsencrypt.org>
2024-05-20 12:14:27 -04:00
Matthew McPherrin e8d382aec0
Upgrade the protobuf and grpc dependencies in Boulder (#7232)
Protobuf v1.32 fixes a potential stack overflow crash. Boulder doesn't
expose grpc externally so the risk is minimal, but it seems prudent to
upgrade on a regular cadence.  IE, this is not a security fix for Boulder.
2024-01-08 11:23:23 -08: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
Jacob Hoffman-Andrews 6354cccd03 Update gRPC to v1.16.0. (#3901)
Fixes #3837

```
$ go test google.golang.org/grpc/...
ok      google.golang.org/grpc  24.275s
?       google.golang.org/grpc/balancer [no test files]
?       google.golang.org/grpc/balancer/base    [no test files]
ok      google.golang.org/grpc/balancer/grpclb  7.271s
?       google.golang.org/grpc/balancer/grpclb/grpc_lb_v1       [no test files]
ok      google.golang.org/grpc/balancer/roundrobin      0.427s
ok      google.golang.org/grpc/benchmark        0.006s [no tests to run]
?       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]
?       google.golang.org/grpc/benchmark/grpc_testing   [no test files]
ok      google.golang.org/grpc/benchmark/latency        1.012s
ok      google.golang.org/grpc/benchmark/primitives     0.036s [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.024s
ok      google.golang.org/grpc/codes    0.006s
?       google.golang.org/grpc/connectivity     [no test files]
ok      google.golang.org/grpc/credentials      0.014s
ok      google.golang.org/grpc/credentials/alts 0.009s
?       google.golang.org/grpc/credentials/alts/internal        [no test files]
ok      google.golang.org/grpc/credentials/alts/internal/authinfo       0.006s
ok      google.golang.org/grpc/credentials/alts/internal/conn   0.133s
ok      google.golang.org/grpc/credentials/alts/internal/handshaker     0.045s
ok      google.golang.org/grpc/credentials/alts/internal/handshaker/service     0.013s
?       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]
?       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.075s
?       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.011s
?       google.golang.org/grpc/examples/oauth/client    [no test files]
?       google.golang.org/grpc/examples/oauth/server    [no test files]
?       google.golang.org/grpc/examples/route_guide/client      [no test files]
ok      google.golang.org/grpc/examples/route_guide/mock_routeguide     0.039s
?       google.golang.org/grpc/examples/route_guide/routeguide  [no test files]
?       google.golang.org/grpc/examples/route_guide/server      [no test files]
?       google.golang.org/grpc/examples/rpc_errors/client       [no test files]
?       google.golang.org/grpc/examples/rpc_errors/server       [no test files]
ok      google.golang.org/grpc/grpclog  0.007s
?       google.golang.org/grpc/grpclog/glogger  [no test files]
ok      google.golang.org/grpc/health   0.005s
?       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]
ok      google.golang.org/grpc/internal/binarylog       0.006s
ok      google.golang.org/grpc/internal/channelz        0.012s
?       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.013s
ok      google.golang.org/grpc/internal/leakcheck       4.052s
?       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.968s
?       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.006s
ok      google.golang.org/grpc/naming   0.159s
?       google.golang.org/grpc/peer     [no test files]
ok      google.golang.org/grpc/reflection       0.016s
?       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]
ok      google.golang.org/grpc/resolver/dns     1.370s
?       google.golang.org/grpc/resolver/manual  [no test files]
?       google.golang.org/grpc/resolver/passthrough     [no test files]
ok      google.golang.org/grpc/stats    0.104s
?       google.golang.org/grpc/stats/grpc_testing       [no test files]
ok      google.golang.org/grpc/status   0.017s
?       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     33.866s
ok      google.golang.org/grpc/test/bufconn     0.005s
?       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]
```
2018-10-25 12:19:40 -07:00
Roland Bracewell Shoemaker 876c727b6f Update gRPC (#3817)
Fixes #3474.
2018-08-20 10:55:42 -04:00