aws-otel-java-instrumentation
aws-otel-java-instrumentation copied to clipboard
Bump io.grpc:grpc-api from 1.56.1 to 1.75.0
Bumps io.grpc:grpc-api from 1.56.1 to 1.75.0.
Release notes
Sourced from io.grpc:grpc-api's releases.
v1.75.0
Behavior Changes
- binder: Introduce server pre-authorization (#12127). grpc-binder clients authorize servers by checking the UID of the sender of the SETUP_TRANSPORT Binder transaction against some SecurityPolicy. But merely binding to an unauthorized server to learn its UID can enable "keep-alive" and "background activity launch" abuse, even if security policy ultimately causes the grpc connection to fail. Pre-authorization mitigates this kind of abuse by resolving addresses and authorizing a candidate server Application's UID before binding to it. Pre-auth is especially important when the server's address is not fixed in advance but discovered by PackageManager lookup.
Bug Fixes
core:
grpc-timeoutshould always be positive (#12201) (6dfa03c51). There is a local race between when the deadline is checked before sending the RPC and when the timeout is calculated to put on-the-wire. The code replaced negative timeouts with 0 nanoseconds. gRPC’s PROTOCOL-HTTP2 spec states that timeouts should be positive, so now non-positive values are replaced with 1 nanosecondcore: Improved DEADLINE_EXCEEDED message for delayed calls (6ff8ecac0). Delayed calls are the first calls on a Channel before name resolution has resolved addresses. Previously you could see confusing errors saying the deadline “will be exceeded in” X time. The message tense was simply wrong, and now will be correct: deadline “was exceeded after” X time.
xds: PriorityLB now only uses the failOverTimer to start additional priorities, not fail RPCs (c4256add4). You should no longer see “Connection timeout for priority” errors.
Improvements
netty: Count sent RST_STREAMs against
NettyServerBuilder.maxRstFramesPerWindow()limit (#12288). This extends the Rapid Reset tool to also cover MadeYouReset. the reset stream count will cause a 420 "Enhance your calm response" to be sent. This depends on Netty 4.1.124 for a bug fix to actually call the encoder by the frame writer.xds: Convert CdsLb to
XdsDepManager(297ab05ef). This is part of gRFC A74 to have atomic xDS config updates. This is an internal change, but does change the error description seen in certain cases, especially DEADLINE_EXCEEDED on a brand-new channel.census: APIs for stats and tracing (#12050) (919370172). Client channel and server builders with interceptors and factories respectively for stats and tracing.
stub: simplify
BlockingClientCallinfinite blocking (#12217) (ba0a7329d). Move deadline computation into overloads with finite timeouts. Blocking calls without timeouts now do not have to read the clock.xds: Do RLS fallback policy eagar start (#12211) (42e1829b3). In gRPC-Java, the xDS clusters were lazily subscribed, which meant the fallback target which is returned in the RLS config wasn’t subscribed until a RPC actually falls back to it. The delayed resource subscription process in gRPC Java made it more susceptible to the effects of the INITIAL_RESOURCE_FETCH_TIMEOUT compared to other programming languages. It also had impact beyond the RLS cache expiration case, for example, when the first time the client initialized the channel, we couldn't fallback when the intended target times out, because of the lazy subscription. This change starts the fallback LB policy for the default target at the start of RLS policy instead of only when falling back to the default target, which fixes the above mentioned problems.
xds: Aggregate cluster fixes (A75) (#12186) (7e982e48a). The earlier implementation of aggregate clusters concatenated the priorities from the underlying clusters into a single list, so that it could use a single LB policy defined at the aggregate cluster layer to choose a priority from that combined list. However, it turns out that aggregate clusters don't actually define the LB policy in the aggregate cluster; instead, the aggregate cluster uses a special cluster-provided LB policy that first chooses the underlying cluster and then delegates to the LB policy of the underlying cluster. This change implements that.
api: set size correctly for sets and maps in handling
Metadatavalues to be exchanged during a call (#12229) (80217275d)xds: xdsClient cache transient error for new watchers (#12291). When a resource update is NACKed, cache the error and update new watchers that get added with that error instead of making them hang.
xds: Avoid PriorityLb re-enabling timer on duplicate CONNECTING (#12289). If a LB policy gives extraneous updates with state CONNECTING, then it was possible to re-create
failOverTimerwhich would then wait the 10 seconds for the child to finish CONNECTING. We only want to give the child one opportunity after transitioning out of READY/IDLE.xds: Use a different log name for
XdsClientImplandControlPlaneClient(#12287).ControlPlaneClientuses "xds-cp-client" now instead of "xds-client" while logging.Dependencies Changes
Upgrade to Netty 4.1.124.Final (#12286). This implicitly disables
NettyAdaptiveCumulator(#11284), which can have a performance impact. We delayed upgrading Netty to give time to rework the optimization, but we've gone too long already without upgrading which causes problems for vulnerability tracking.bazel: Use
jar_jarto avoid xds deps (#12243) (8f09b9689). The //xds and //xds:orca targets now usejar_jarto shade the protobuf generated code. This allows them to use their own private copy of the protos and drop direct Bazel dependencies on cel-spec, grpc, rules_go, com_github_cncf_xds, envoy_api, com_envoyproxy_protoc_gen_validate, and opencensus_proto. This mirrors the shading of protobuf messages done for grpc-xds provided on Maven Central and should simplify dependency managementDocumentation
Clarify requirements for creating a cross-user Channel. (#12181). The
@SystemApiruntime visibility requirement isn't really new. It has always been implicit in the required INTERACT_ACROSS_USERS permission, which can only be held by system apps in production. Now deprecatedBinderChannelBuilder#bindAsUserhas always required SDK_INT >= 30. This change just copies that requirement forward to its replacement APIs inAndroidComponentAddressand the TARGET_ANDROID_USERNameResolver.Args.api: Add more Javadoc for
NameResolver.Listener2interface (#12220) (d352540a0)Thanks to
@benjaminp@werkt@kilink@vimanikagv1.74.0
... (truncated)
Commits
3abc0e6Bump version to 1.75.0cbfe6c1Update README etc to reference 1.75.0a0f3520Revert "Release v1.75.0 (#12294)" (#12295)7ef13f4Release v1.75.0 (#12294)14fd8efxds: xdsClient caches transient error for new watchers (v1.75.x backport) (#1...653d076xds: Avoid PriorityLb re-enabling timer on duplicate CONNECTING (#12289)a5c2b1anetty: Count sent RST_STREAMs against limit (1.75.x backport) (#12288)0d3e828xds: Use a different log name for XdsClientImpl and ControlPlaneClient (1.75....d750e9dUpgrade to Netty 4.1.124.Final (v1.75.x backport) (#12286)19c579eBump versions of dependencies (#12252)- Additional commits viewable in compare view
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot will merge this PR once CI passes on it, as requested by @thpierce.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
@dependabot merge
One of your CI runs failed on this pull request, so Dependabot won't merge it.
Dependabot will still automatically merge this pull request if you amend it and your tests pass.
A newer version of io.grpc:grpc-api exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged.