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

Update grpc.version to v1.33.1 #967

Merged
merged 4 commits into from Dec 4, 2020
Merged

Update grpc.version to v1.33.1 #967

merged 4 commits into from Dec 4, 2020

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 29, 2020

This PR contains the following updates:

Package Update Change
io.grpc:grpc-stub minor 1.27.1 -> 1.33.1
io.grpc:grpc-protobuf minor 1.27.1 -> 1.33.1

Release Notes

grpc/grpc-java

v1.33.1

Compare Source

v1.33.0

Compare Source

This release broke ABI in a non-planned way for NettyServerBuilder, NettyChannelBuilder, and similar. See #​7552. If you are impacted, please use an earlier version until v1.33.1 is available. A future ABI breakage may be necessary, but will be communicated explicitly at that time.

API Changes

  • netty: The class io.grpc.netty.NettyServerBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractServerImplBuilder
  • netty: The class io.grpc.netty.NettyChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • okhttp: The class io.grpc.okhttp.OkhttpChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • core: The class io.grpc.inprocess.InProcessChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • cronet: The class io.grpc.cronet.CronetChannelBuilder is no longer a subclass of the internal class io.grpc.internal.AbstractManagedChannelImplBuilder
  • api: Add ForwardingServerBuilder: a ServerBuilder that delegates to another builder by default
  • core: Add accessor for bare method name in MethodDescriptor (#​7339)
  • stub: On server-side when an RPC is cancelled, only throw StatusRuntimeException: CANCELLED from onNext() for streaming responses. Previously the exception was also thrown from onNext() for unary responses and from onComplete(), which didn’t help the server avoid unnecessary processing
  • okhttp: OkHttpChannelBuilder made final and can no longer be anonymous
  • api, core: delete io.grpc.LoadBalancer.loadBalancingConfig attribute (#​7440). The attribute was deprecated in v1.27.0, now it is completely deleted.

New Features

  • netty: Add support for IBMJSSE2 (#​7422)

Documentation

  • API documentation (Javadoc) for Server and Channel builders now correctly displays inherited methods and the class hierarchy

Bug Fixes

  • grpclb: Fixed a bug that RPC might be hanging when using grpclb balancer as a child balancer in a hierarchical load balancer tree (#​7434)
  • netty: TCP close during TLS handshake should be UNAVAILABLE, not UNKNOWN
  • netty: BDP ping accounting should occur after flow control. This resolves an incompatibility issue introduced in v1.30.0 and could be worked around via GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false introduced later. The symptom was a GOAWAY with “too_many_pings” without an aggressive keepalive configured. The environment variable is still available, but will be removed in the future

Behavior Changes

  • xds: Xds server channel credential option will be required in the xDS bootstrap file. Use {"type":"insecure"}” for plaintext (#​7396)

Dependencies

  • benchmarks: Removed -javaagent jvm option in CreateStartScripts, to allow running the benchmarks without building from source
  • Upgrade Conscrypt to 2.5.1
  • bazel: Remove Maven repositories from repositories.bzl, in favor of maven_install. v1.27.0 introduced support for maven_install and encouraged users to migrate. See examples/WORKSPACE for an example. maven_install dramatically reduces the boilerplate for maven dependencies and properly handles transitive dependencies and version selection. gRPC is not yet using the @maven workspace, so it is still possible to use other dependency tools.
  • Update protobuf gradle plugin version to 0.8.13 (#​7355)

Acknowledgements

@​codeblooded Benjamin Reed
@​kiwi1969 Russell Shaw
@​pkern Philipp Kern

v1.32.2

Compare Source

Bug Fixes
  • netty: TCP close during TLS handshake should be UNAVAILABLE, not UNKNOWN
  • netty: BDP ping accounting should occur after flow control. This resolves an incompatibility issue introduced in v1.30.0 and could be worked around via GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false introduced later. The symptom was a GOAWAY with “too_many_pings” without an aggressive keepalive configured. The environment variable is still available, but will be removed in the future
  • alts: Reverted workaround for Conscrypt cipher performance. Conscrypt 2.5.0 has significantly improved performance and the workaround now decreases performance. Note that grpc-alts itself still depends on Conscrypt 2.2.1 to remain stable for this bug fix release, but users are encouraged to use newer a version of Conscrypt. The gains from Conscrypt 2.5.0 are significantly greater than what the workaround provided

v1.32.1

Compare Source

API Changes
  • api: Removed deprecated method ChannelBuilder.blockingExecutor() (#​7242). There should not be any users as it was deprecated the first release it was available and was renamed offloadExecutor().
  • grpclb: Make ATTR_LB_ADDRS public (#​7230). This is necessary to configure grpclb from a custom NameResolver
New Features
  • xds: perform header matching on concatenated multi-valued headers (#​7215)
  • xds: add header matching special cases for hiding/exposing some gRPC headers (#​7224). The only gRPC header available for header matching is “content-type”.
  • xds: support load reporting all clusters option and fix actual report interval measurement (#​7209). If the LRS response enables send_all_clusters, the client side will report loads for all clusters it is currently using.
Bug Fixes
  • core, alts, cronet: Fix ByteBuffer covariant method usages (#​7349). When built with Java 9+, internal usages of ByteBuffer APIs may cause runtime breakage for dependent applications running with Java 8. This is fixed now.
  • core: Fixed a bug that RPC may hang when hedging is enabled with a throttling configuration (#​7337)
  • netty: The environment variable GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false will now disable the BDP monitoring introduced in v1.30.0. This is intended to help diagnose a “too_many_pings” compatibility issue and will be removed once it is resolved. If you need to use the variable, please file an issue
  • benchmarks: Use correct classpath for scripts (the ones in the bin/ folder of the tar/zip), fixing NoClassDefFoundErrors. The classpath was probably broken starting in v1.30.
  • xds: routing policy should immediately update a picker that selects base on updated config (#​7233)
Dependencies
  • netty: Upgrade to Netty 4.1.51 and tcnative 2.0.31
  • android, cronet: Drop support for android SDK versions older than 16 (#​7253). The minimum supported Android SDK version is 16.
Acknowledgements

@​susinmotion
@​trustin
@​wanyingd1996

v1.31.1

Compare Source

Bug Fixes
  • netty: The environment variable GRPC_EXPERIMENTAL_AUTOFLOWCONTROL=false will now disable the BDP monitoring introduced in v1.30.0. This is intended to help diagnose a “too_many_pings” compatibility issue and will be removed once it is resolved. If you need to use the variable, _please_ file an issue
  • examples: some gRPC artifacts are missing in JCenter causing Android examples to sometimes fail to build. Now we are adding mavenCentral as fallback for the Android examples. See #​5782
  • xds: meshCA protocol buffers added in v1.31.0 are now properly shaded in an internal package
  • xds: fixed some internal breakage for traffic splitting

v1.31.0

Compare Source

API Changes
  • api: ManagedChannelBuilder.nameResolverFactory is now marked deprecated. It has long been our plan to remove the function, but was not communicated. Most usages should be able to globally register via the SPI mechanism or NameResolverRegistry.register(). There is a plan to add a method to ManagedChannelBuilder to specify the default target scheme for the channel. If your use-case is not covered, please inform us on #​7133
New Features
  • The following new xDS functionality is added in this release:
    • Requests matching based on path (prefix, full path and safe regex) and headers.
    • Requests routing to multiple clusters based on weights.
    • The xDS features supported in a given release are documented here.
  • api: Added LoadBalancer.Helper.createResolvingOobChannelBuilder(). It is similar to LoadBalancer.Helper.createResolvingOobChannel() except allows configuring the channel (#​7136)
Bug Fixes
  • netty: return status code unavailable when netty channel has unresolved InetSocketAddress (#​7023)
  • core: fix a bug that a call may hang when using manual flow control and gRPC retry is enabled (#​6817)
Documentation
  • stub: Documented more behavior of ClientCalls and ServerCalls, with regard to ClientResponseObserver, ClientCallStreamObserver, ServerCallStreamObserver, and exceptions
  • api: Documented how Providers may be used in their respective class documentation. Previously you “just had to know” the SPI mechanism was available
Dependencies
Examples
  • examples: Add client/server retrying example via service config #​7111
Acknowledgements

@​alexanderscott
@​AnarSultanov
@​cindyxue
@​d-reidenbach
@​elharo
@​gsharma
@​reggiemcdonald

v1.30.2

Compare Source

Bug Fixes
  • xds: disable code for a future xds feature

v1.30.1

Compare Source

Bug Fixes
  • all: remove grpc-rls from grpc-all dependencies (#​7118). grpc-rls is not intended to be published yet, projects depending on grpc-all gets a "failed to collect dependencies at io.grpc:grpc-all:jar:1.30.0 -> io.grpc:grpc-rls:jar:1.30.0" error. This is fixed here.
  • core: fix a bug that a call may hang when using manual flow control and gRPC retry is enabled. (#​6817)

v1.30.0

Compare Source

Behavioral Changes
  • netty: Bandwidth delay product (BDP) is enabled by default (#​6979). BDP dynamically adjusts flow control window to optimize the network bandwidth utilization. To disable this feature, build channel/server with NettyChannelBuilder#flowControlWindow or NettyServerBuilder#flowControlWindow. Existing flowControlWindow users need to use initialFlowWindowSize to enable BDP. The default initial window size has remained unchanged, so most users should not see a performance difference. In the future we plan to reduce the default size, which may briefly (up to 4 RTT) slow down new connections as they determine an appropriate BDP.
New Features
  • This release adds an xDS URI scheme called xds. This is the stable version of the scheme xds-experimental that was introduced in v1.28.0. xds-experimental scheme will be removed in subsequent releases so you must switch to xds scheme instead. xds scheme is a client side implementation of xDSv2 APIs. This allows a gRPC client written in Java to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching, default path (“” or “/”) matching and cluster route action are supported. The features supported in a given release are documented here.
  • core: ManagedChannel provides LoadBalancer#Helper with implemented createResolvingOobChannel (#​6923).
  • stub: Add ClientCallStreamObserver.disableAutoRequestWithInitial(int) and ServerCallStreamObserver.disableAutoRequest() that disables all automatic inbound flow-control requests. These methods are intended to replace the existing CallStreamObserver.disableAutoInboundFlowControl(). There may still be some tweaks to the API, so disableAutoInboundFlowControl() is not yet deprecated.
  • inprocess: Add InprocessChannelBuilder.propagateCauseWithStatus(true) to propagate exceptions from the server within status.getCause() (#​6968). This is intended for unit tests to ease debugging test failures.
  • netty: support setting options of boss in NettyServer (#​6947). Adds a new API on NettyServerBuilder to allow passing channel options for the boss ELG.
Bug Fixes
  • okhttp: use new APIs to configure TLS in Android (roll forward of #​6959) (#​6960). Starting from Android 10, there is a new set of public APIs for configuring TLS, where we were previously invoking hidden methods in SSLSocket. Some of those hidden methods are no longer allowed (will be removed in the future) in Android 11. We migrate to use public APIs whenever possible.
  • netty: Using classloader to isolate grpc without isolating netty can cause exceptions when creating netty channel/server is fixed (#​7048).
  • api, core, services: make ProtoReflectionService interceptor compatible (#​6967). Previously intercepting the ProtoReflectionService breaks the internal hack of passing the server instance to the service. Now we change the way of how it obtains the server instance so that applying interceptors to it doesn’t break its functionality. This change also allows multiple servers to use a shared ProtoReflectionService instance.
  • netty: Reduce race window size between GOAWAY and new streams. This should greatly reduce the number of calls that fail with errors similar to “UNAVAILABLE: HTTP/2 error code: NO_ERROR Received Goaway.” Although note that these errors have multiple sources, and it only addresses one of them
  • core: Delay transport shutdown when changing a subchannel’s addresses. This should prevent users from seeing errors saying “UNAVAILABLE: InternalSubchannel closed transport due to address change,” which should have already been rare
Documentation
  • For Java 9+ users, we now recommend using org.apache.tomcat:annotations-api for the @Generated annotation instead of javax.annotation:javax.annotation-api, as it has a more appropriate license
  • SECURITY.md: add instruction for disabling Conscrypt's default TrustManager (#​6962). By default, Conscrypt delegates hostname verification to the platform's default HostNameVerifier, which in OpenJDK is a deny-all implementation. You can configure the Conscrypt provider to not use its TrustManager.
Dependencies
  • Starting from this version, some transitive dependencies of gRPC artifacts are changed from compile scope to runtime scope. Users may experience their application can not rebuild once the gRPC version is upgraded, because some other component of the project may require a dependency that is no longer transitively provided by gRPC artifacts at compile time; and if that happens, users should explicitly add that dependency for the other component. This change does not affect running the application at runtime.
  • Bumped protobuf to 3.12.0
Examples
  • Deleted example-kotlin (#​6936). grpc-kotlin was officially released and examples can be found in its own repository.
Acknowledgements

@​agasparovic-sabre
@​AgentK20
@​apolcyn
@​asdf2014
@​ashithasantosh
@​chalin
@​bogdandrutu
@​DRayX
@​hojongs
@​Nextproc
@​plaflamme
@​reggiemcdonald
@​RiyaTyagi

v1.29.0

Compare Source

Behavioral Changes
  • core, grpclb: change policy selection strategy for Grpclb policy (move logic of querying SRV into Grpclb's own resolver) (#​6723). System property io.grpc.internal.DnsNameResolverProvider.enable_grpclb is eliminated, grpc-grpclb dependency implicitly enables querying SRV records since v1.24.2
New Features
  • core: ServerInterceptors.useInputStreamMessages() now preserves the KnownLength interface when wrapping InputStream (#​6852). This should prevent certain optimizations from being disabled when using useInputStreamMessages
  • core: ServerInterceptors.useInputStreamMessages() and useMarshalledMessages() now preserve the SchemaDescriptor, so the methods are now compatible with the reflection service (#​6851)
Bug Fixes
  • core: Fix IllegalStateException if remote-specified decompressor is unknown (#​6864)
  • core: keep round_robin lb subchannel in TRANSIENT_FAILURE until becoming READY (#​6657). This avoids RPC being indefinitely queued when subchannels are bouncing back and forth between CONNECTING and TRANSIENT_FAILURE
  • netty: fixed a bug when grpc-netty and grpc-netty-shaded were both used, which could result in "ClassCastException: io.netty.util.AsciiString cannot be cast to io.grpc.netty.shaded.io.netty.util.AsciiString" (#​6765)
  • netty: Prevent thread interruption during server start from leaking socket (#​6867)
  • core: A Java 9+ ABI compatibility issue with java.nio.ByteBuffer is fixed (#​6839). This only impacted users manually compiling grpc-java with JDK 9+ and then using it as a library for applications that run with JDK 8- (e.g., on Android). This does not impact the pre-built JARs on Maven Central
  • core: fixed a bug in health check config propagation. (#​6804)
  • benchmarks: some netty benchmarks failed to start and are now fixed (#​6877). This was a regression introduced in v1.23.0
Documentation
Dependencies
  • Bump guava to 28.2-android (#​6772)
  • Bump netty to 4.1.48.Final, bump tcnative to 2.0.30.Final (#​6845)
  • Bump truth version to 1.0.1 (#​6754)
Compiling
  • android: add grpc-android into main build (#​6793). Compiling with -PskipAndroid=false (default) includes building grpc-android module, which requires Android SDK
Acknowledgements

@​chrisschek
@​elharo Elliotte Rusty Harold
@​herbyderby Chris Nokleberg
@​markb74
@​ST-DDT

v1.28.1

Compare Source

This patch is mainly for the experimental xDS-related features.

Bug Fixes
  • xds: implement more clear specifications for locality filtering (allow localities with 0 endpoint, ignore localities with 0 weight, check for locality priority continuity). (#​6875)

v1.28.0

Compare Source

API Changes
  • core: service config parsing now validates the final config object via LoadBalancerProvider#parseLoadBalancingPolicyConfig. LoadBalancer developers should use parsed config(loadBalancingPolicyConfig) in ResolvedAddresses instead of deprecated attribute io.grpc.LoadBalancer.ATTR_LOAD_BALANCING_CONFIG.
  • core: remove stickiness from round robin (#​6698)
Behavioral Changes
  • core, grpclb: change policy selection strategy for Grpclb policy (take one: eliminate special logic for deciding grpclb policy in core) (#​6637)
    • gRPCLB policy selection is being stabilized according to this gRFC. gRPCLB policy will not be automatically selected even if there are SRV addresses resolved. You need to explicitly specify the selection by service config (in TXT records, or via ManagedChannelBuilder#defaultServiceConfig or ManagedChannelBuilder#defaultLoadBalancingPolicy).
New Features
  • This release adds an experimental client side implementation of xDSv2 APIs. This allows a gRPC client written in Java to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching and cluster route action is supported. More features will be added in future.
Bug Fixes
  • netty: fix a deadlock on start gRPC server (#​6601)
  • netty: negotiated application level protocol is now checked against the correct ALPN list in the SslContext settings
  • okhttp: fix incorrect connection-level flow control handling at beginning of connection (#​6742). This only impacted users of OkHttpChannelBuilder.flowControlWindow(), who seem to be few since this bug was not reported sooner
  • alts: Fix using the wrong way of checking if Conscrypt is available (#​6672)
  • grpclb: grpclb can handle empty address from LoadBalancer instead of throwing exception
  • alts: do not exclude opencensus-api from google-oauth2's transitive dependencies (#​6607)
    • grpc-alts was broken since 1.27.0 release for missing opencensus-api used in google-oauth2. This was due to opencensus-api dependency was eliminated from grpc-core. Now it should be included.
Documentation
  • stub,examples: Clarify CallStreamObserver's Javadoc (#​6561)
Dependencies
  • Bump Netty to 4.1.45.Final and tcnative to 2.0.28.Final
  • Bump okhttp to 2.7.4
  • Bump google-auth-library-credentials and google-auth-library-oauth2-http to 0.20.0
Acknowledgements

@​chrisschek
@​cushon Liam Miller-Cushon
@​elharo Elliotte Rusty Harold
@​gfelbing Georg Welzel
@​hatahet Ziad Hatahet
@​leventov Roman Leventov
@​sourabhsparkala Sourabh Sarvotham Parkala
@​ZhenLian Zhen Lian

v1.27.2

Compare Source

Bug Fixes
  • grpclb: grpclb can handle empty address from LoadBalancer instead of throwing exception

Renovate configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Enabled.

♻️ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

@codecov
Copy link

codecov bot commented Jul 29, 2020

Codecov Report

Merging #967 (74dec87) into master (702001b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #967   +/-   ##
=======================================
  Coverage   84.28%   84.28%           
=======================================
  Files         236      236           
  Lines        4608     4608           
  Branches      321      321           
=======================================
  Hits         3884     3884           
  Misses        624      624           
  Partials      100      100           

@renovate renovate bot force-pushed the renovate/grpc.version branch 5 times, most recently from 09e4b0b to 09dc321 Compare August 3, 2020 11:59
@renovate renovate bot force-pushed the renovate/grpc.version branch 3 times, most recently from 66547af to 6f8667a Compare August 12, 2020 22:51
@renovate renovate bot changed the title Update grpc.version to v1.31.0 Update grpc.version to v1.31.1 Aug 12, 2020
@renovate renovate bot force-pushed the renovate/grpc.version branch 7 times, most recently from 8c2dfde to 49dcac4 Compare August 20, 2020 19:34
@renovate renovate bot force-pushed the renovate/grpc.version branch 9 times, most recently from 74c12f1 to 7feb01c Compare August 28, 2020 16:51
@renovate renovate bot force-pushed the renovate/grpc.version branch 3 times, most recently from 160816a to f24e3e0 Compare August 30, 2020 18:59
@renovate renovate bot force-pushed the renovate/grpc.version branch 3 times, most recently from 0ca77b0 to cc26d6b Compare October 12, 2020 21:20
@renovate renovate bot changed the title Update grpc.version to v1.32.1 Update grpc.version to v1.32.2 Oct 12, 2020
@renovate renovate bot force-pushed the renovate/grpc.version branch 18 times, most recently from b52f50c to 90e3fe3 Compare October 20, 2020 13:11
@renovate renovate bot changed the title Update grpc.version to v1.32.2 Update grpc.version to v1.33.1 Oct 31, 2020
@uweschaefer uweschaefer merged commit 5618d29 into master Dec 4, 2020
@uweschaefer uweschaefer deleted the renovate/grpc.version branch December 4, 2020 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants