Commit Graph

6548 Commits

Author SHA1 Message Date
Eric Anderson f458f229c6
gradle: Update plugins 2023-05-08 10:45:13 -07:00
Eric Anderson 29c2de0d42 okhttp: Fix signed-byte comparison 2023-05-08 10:43:49 -07:00
Eric Anderson 424ddcee8d compiler: configureEach instead of each+configure
each+configure serves no purpose, because the task has already been
realized with the each. This was just a faulty conversion in 0ff9f37b9e,
although it was because I thought the each was specialized API from the
protobuf plugin, not the normal container each.
2023-05-08 10:37:57 -07:00
Eric Anderson 180b3e9092 xds: Avoid default locale and reset()
Found via linter
2023-05-05 15:23:18 -07:00
Eric Anderson 22366891de
binder: Use Channel-based blockingUnaryCall()
The Channel-based overload can change the CallOptions to use
ThreadlessExecutor, so avoids using extra threads.
2023-05-05 15:22:54 -07:00
Terry Wilson 0005029328
android,binder,cronet: .aar file when publishing (#10138) 2023-05-05 15:21:26 -07:00
Eric Anderson 94dec7c020 xds: Avoid WRR config synchronization 2023-05-05 14:43:26 -07:00
yifeizhuang 5a121ebb83
binder: fix test error prone (#10132) 2023-05-05 10:55:58 -07:00
Eric Anderson e560c6206c gcp-observability: Avoid non-shadow configurations of xds, alts, netty
We have two versions of multiple projects, the non-shadow and the
shadow. When using project() references, things are mostly fine,
although we may test with a different version than our users would use.
However, when a dependency from Maven Central depends on a grpc
artifact, it pulls in the non-shadow configuration and messes up
gradle's tracking. We shouldn't be using the non-shadow configuration,
so this issue is sort of a blessing to improve the test reliability.

Gradle 7 will notice that there's a missing dependency, but it is not
deterministic and is very slow to test. Starting in Gradle 8 it is much
more reliably triggered which greatly helped the testing efforts. The
error in Gradle 7 looks like:
```
> Task :grpc-gcp-observability:interop:startScripts
Execution optimizations have been disabled for task ':grpc-gcp-observability:interop:startScripts' to ensure correctness due to the following reasons:
  - Gradle detected a problem with the following location: 'grpc-java/netty/shaded/build/libs/grpc-netty-shaded-1.54.0-SNAPSHOT-original.jar'. Reason: Task ':grpc-gcp-observability:interop:startScripts' uses this output of task ':grpc-netty-shaded:jar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.6/userguide/validation_problems.html#implicit_dependency for more details about this problem.
```

Fixes #9992
2023-05-05 09:01:17 -07:00
Eric Anderson 0bef2b2ef3 interop-testing: Stop using Shadow Gradle Plugin
This essentially reverts 3624d59b. In 6609f11f we removed the reference
to OrcaLoadReport, which meant shadow has no longer been necessary.
2023-05-05 09:00:46 -07:00
Terry Wilson 21ff7a010a
api: Stabilize the SynchronixationContext class (#10130) 2023-05-04 11:27:35 -07:00
Terry Wilson b5800edd76
Importing latest xDS protos from envoyproxy/envoy (#10123) 2023-05-03 11:57:52 -07:00
sanjaypujare f24a5a7d0d
xds: handle the handlerRemoved callback to skip updateSslContext processing (#10118)
* xds: handle the handlerRemoved callback to skip updateSslContext processing
     In handlerAdded we submit a callback to updateSslContext but before the
     callback is executed the handler could be removed (e.g. bad connection)
     in which case the callback should skip all of the processing.
     Also added a unit test to check there is no exception.
2023-05-03 07:41:15 -07:00
Eric Anderson 545e982afd googleapis: Enable ignore_resource_deletion in bootstrap 2023-05-02 15:16:33 -07:00
Eric Anderson 95207d2ac2 examples: Add missing start scripts for JSON example 2023-05-02 15:15:54 -07:00
Kaloyan Simitchiyski 572a7af426
protobuf,protobuf-lite: configurable protobuf recursion limit (#10094) 2023-05-02 14:52:22 -07:00
Terry Wilson 3c01bfe77f
core: Optional address shuffle in PickFirstLoadBalancer (#10110)
If provided with the new PickFirstLoadBalancerConfig,
PickFirstLoadBalancer will shuffle the list of addresses it receives
from the name resolver.

PickFirstLoadBalancerProvider will now support the new config
if enabled by an env variable.
2023-04-28 15:50:18 -07:00
yifeizhuang b249a5340e
services: allow cpu utilization greater than 1 (#10107) 2023-04-28 11:59:10 -07:00
yifeizhuang fe53346697
xds: fix flaky xds test (#10109) 2023-04-28 11:17:49 -07:00
Terry Wilson fbc8679f7a
core: Sticky TRANSIENT_FAILURE in PickFirstLoadBalancer (#10106)
When the subchannel is transitioning from TRANSIENT_FAILURE to either
IDLE or CONNECTING we will not update the LB state. Additionally, if
the subchannel becomes idle we request a new connection so that the
subchannel will keep on trying to establish a connection.
2023-04-27 15:43:27 -07:00
chenwei321 c5b825aa7d
xds: fix matchRoute in RoutingUtils and clean up implementations in XdsNameResolver. (#10095) 2023-04-27 13:28:44 -07:00
Larry Safran 9d1e089c27
stub: Add null check for responseObserver (#10083)
* stub:Add null check for responseObserver

Fixes #10064
2023-04-25 13:35:39 -07:00
Larry Safran e89e0ccfee
Refactor so that calculation happens in constructor rather than checking for a null value to lazily initialize it. (#10101)
Fixes b/277276312
2023-04-25 10:26:13 -07:00
yifeizhuang c4c9939887
xds: enable wrr env variable (#10100) 2023-04-25 10:15:24 -07:00
John Cormie 87fe41046a
Handle unexpected exceptions on binder threads (#10092)
All BinderTransport transactions are oneway which means uncaught
Exceptions during processing are merely logged locally and not
propagated to the peer. Instead, we add a top level catch block
that handles the unexpected by shutting down the whole transport. This
makes our peer aware of the problem immediately (instead of relying on a
deadline) and gives clients a fresh transport instance to handle any
retries.
2023-04-25 09:11:06 -07:00
Terry Wilson a384c16e8c
xds,googleapis: Default GRPC_EXPERIMENTAL_XDS_FEDERATION to true (#10093) 2023-04-24 11:01:32 -07:00
Terry Wilson 68b67b616e
xds: Allow child of cluster_impl LB to change (#10091)
Under normal conditions the child LB of `ClusterImplLoadBalancer` does
not fluctuate, based on the field used to configure load balancing in
the xDS `Cluster` proto it is either:

1. `WrrLocalityLoadBalancer` if the newer `load_balancing_policy` field
   is used
2. `WeightedTargetLoadBalancer` if the legacy `lb_policy` field is used

`ClusterImplLoadBalancer` currently assumes that this child does not
change and so does not change the child LB when the name resolver sends an
update. If the control plane does switch to using a different field for
LB config, that update will have an LB config meant for the other child
LB type. This will result in a ClassCastException and a channel panic.

To address this, `ClusterImplLoadBalancer` will now use
`GracefulSwitchLoadBalancer` and makes sure if the child policy changes
the correct LB implementation is switched to.
2023-04-24 11:00:56 -07:00
Eric Anderson 8ca99f661d core: Pass Locality to toLowerCase() in GrpcUtil
We pretty much never want to use the system locality, across all our
code.
2023-04-24 10:53:12 -07:00
apolcyn 708497b6ed
interop-testing: add googleapis and rls as interop client dependencies
The internal build rule for this client already adds these dependencies, and is what related tests for these dependencies have been relying on for a while.

We're starting to use the per-release published interop client docker images for those tests too now, and these use the gradle build rules.
2023-04-24 07:54:32 -07:00
Eric Anderson 27edab007d Start 1.56.0 development cycle 2023-04-21 15:56:00 -07:00
Eric Anderson 8054b20325
authz: Add missing ExperimentalApi annotation
It was missed in b43ddc28
2023-04-20 13:09:53 -07:00
Eric Anderson c35870bce0 interop-testing: Start mgmt server before xds server
The xds server can take a really long time to start if the xds resources
are slow to load. Ideally the management server would be available
during this time so we can inspect the server. The server health still
won't go to SERVING until the xds server starts, which is appropriate.
2023-04-20 11:49:17 -07:00
Larry Safran 9204223c16
alts:Remove character dropped from error message (#10068)
The DECRYPTION_FAILURE_RE matcher had an exclamation point that was dropped from the related error message between Java 11 and 19.

Fixes #10011
2023-04-20 11:05:36 -07:00
Eric Anderson 8aa25476e9
SECURITY.md: Update/modernize docs
There's still plenty more that could be done, but I want to keep this on
the simpler/less-invasive side and it'd just delay these changes for no
real benefit.
2023-04-20 08:20:52 -07:00
Eric Anderson 3c89aa191b android-interop-testing: Avoid JRE Guava from Protobuf 22.3 upgrade
This fixes the interop test on API levels 19-23
2023-04-20 06:40:12 -07:00
yifeizhuang 8b9ae27cdf
xds: remove environmental variables (#10055) 2023-04-19 17:26:26 -07:00
Eric Anderson ebc84c209f api: Stabilize Detachable and HasByteBuffer
Fixes #7387
2023-04-19 14:31:06 -07:00
Larry Safran 7255c8dfa8
retries:Remove early commit for transparent retries with none remaining. (#10066)
* retries:Remove early commit for transparent retries when no retries or no hedging remain.

Fixes #10011
2023-04-19 13:42:59 -07:00
Ashitha Santhosh b43ddc2886
authz: File Watcher Authorization Server Interceptor (#9775) 2023-04-19 10:50:19 -07:00
Sergii Tkachenko c9fcd46e84
buildscripts: increase PSM Security test timeout to 4h (#10065)
The total time PSM Security takes to run was getting close to 3h lately.
Adding an extra hour to allow for a larger margin of error.

ref b/259690410
2023-04-19 10:35:12 -07:00
yifeizhuang 111ff60e1c
xds: fix wrr stuck in rr mode (#10061) 2023-04-18 16:39:51 -07:00
Eric Anderson 35852130d9 buildscripts: Cross-compile in Docker
Previously builds were done with Ubuntu 16.04, and now we are using
18.04. Thus the generated binaries will no longer work for
Ubuntu 16.04 and Debian 9 users, both of which are outside of their
support window and aren't supported by Abseil. RHEL users are
unaffected, as the binaries already didn't work on RHEL 7 and they will
remain working with RHEL 8. FWIW, Ubuntu 18.04 will leave its support
window in June.
2023-04-18 16:16:35 -07:00
Eric Anderson 4fec5bbb83
examples: grpc-level proxy 2023-04-18 15:41:09 -07:00
Carl Mastrangelo 4e3ee4471e
all: use PerfMark.traceTask (#9950)
* all: use PerfMark.traceTask

* make linter happy
2023-04-18 10:46:54 -07:00
Eric Anderson 2e5cc84c51 examples: Reduce boilerplate and sort scripts
The point of the sorting is to reduce the chances of merge conflicts. I
greatly prefer verboseness over cleverness in examples, but the tasks
can only be sorted manually and there's so many of them.

It is counter-productive to do this for the examples that have their own
project folder, as there's so few tasks in that case that they don't
need to be ordered.
2023-04-18 09:54:22 -07:00
Eric Anderson 1551cc7403 Upgrade Protobuf Java to 3.22.3 (aka 22.3)
The version used by protoc-gen-grpc-java will be upgraded separately,
because of large C++ build changes necessary. But that won't impact
users at all. We are upgrading to protoc 22.3; only the grpc plugin is
not upgraded.

Bazel is upgraded for both Java and C++.
2023-04-17 13:16:20 -07:00
Larry Safran bcbdb205b5
Update README etc to reference 1.54.1 (#10058) 2023-04-17 13:13:04 -07:00
Terry Wilson 6e54ceb2d1
rls: Refresh name resolution on rejected addresses (#10032)
If a child load balancer rejects the addresses it if given all we can do
is to trigger a name resolution refresh and hope for a better set of
addresses.
2023-04-14 16:27:17 -07:00
Eric Anderson be2a2fc3b8 Avoid repeating grpc version in Android documentation
This removes some steps from the release process. These two locations
aren't special enough in way that deserves manually changing the version
each release.
2023-04-14 15:06:53 -07:00
yifeizhuang 14ba959545
census: add delayed name resolution tracing annotation (#10044) 2023-04-14 11:44:50 -07:00