Commit Graph

6679 Commits

Author SHA1 Message Date
yifeizhuang 2129078dee
core: fix test flakiness in retriableStream hedging deadlock test (#11606) 2024-10-08 17:44:40 -07:00
Vindhya Ningegowda 2e9c3e19fb
xds: Update error handling for ADS stream close and failure scenarios (#11596)
When an ADS stream in closed with a non-OK status after receiving a response, new status will be updated to OK status. This makes the fail behavior consistent with gRFC A57.
2024-10-08 17:28:14 -07:00
yifeizhuang e59ae5fad0
rename grpc-context-override-opentelemetry and publish artifact (#11599) 2024-10-08 17:00:33 -07:00
Riya Mehta 9d252c2466
Don't use Utils.pickUnusedPort. (#11601) 2024-10-08 10:57:32 -07:00
Riya Mehta 0a3c03446c
s2a: Correct type of exception thrown (#11588)
* throw IllegalArgumentException in ProtoUtil.

* throw exception in TrustManager in more standard way.

* handle IllegalArgumentException in SslContextFactory.

* Don't throw error on unknown TLS version.
2024-10-08 10:56:43 -07:00
yifeizhuang 2aae68e117
report uncompressed message size when it does not need compression (#11598) 2024-10-07 10:44:27 -07:00
Kannan J 1ded8aff81
On result2 resolution result have addresses or error (#11330)
Combined success / error status passed via ResolutionResult to the NameResolver.Listener2 interface's onResult2 method - Addresses in the success case or address resolution error in the failure case now get set in ResolutionResult::addressesOrError by the internal name resolvers.
2024-10-07 17:55:56 +05:30
vinodhabib 94a0a0d1c7
example-gauth: Use application default creds instead of file argument (#11595)
Also removed unnecessary refreshAccessToken() and fixed the reference to README.md.

Fixes #5677
2024-10-04 11:42:25 +05:30
Riya Mehta 35f0d56894
s2a: don't use reflection to load token manager (#11590) 2024-10-03 14:45:01 -07:00
Larry Safran 9bb06af963
Change PickFirstLeafLoadBalancer to only have 1 subchannel at a time (#11520)
* Change PickFirstLeafLoadBalancer to only have 1 subchannel at a time if environment variable GRPC_SERIALIZE_RETRIES == true.

Cache serializingRetries value so that it doesn't have to look up the flag every time.

Clear the correct task when READY in processSubchannelState and move the logic to cancelScheduledTasks

Cleanup based on PR review

remove unneeded checks for shutdown.

* Fix previously broken tests

* Shutdown previous subchannel when run off end of index.

* Provide option to disable subchannel retries to let PFLeafLB take control of retries.

* InternalSubchannel internally goes to IDLE when sees TF when reconnect is disabled.
Remove an extra index.increment in LeafLB
2024-10-02 17:03:47 -07:00
Eric Anderson 6f3542297c okhttp: Don't warn about missing Conscrypt
When running on the JDK, it is quite normal for Conscrypt not to be
present. We'll end up using the JDK 9 ALPN API and everything will be
fine. On Android, it would be extremely rare for someone to completely
remove the default Android security providers, so the warning was almost
never going to trigger on that platform anyway.
2024-10-02 16:03:53 -07:00
Riya Mehta 959060a824
s2a: Address comments on S2A channel + stub (#11584)
* delete HandshakerServiceChannel.

* remove usage of S2AGrpcChannelPool + avoid creating Channel ref per conn.
2024-10-02 16:01:23 -07:00
Riya Mehta b8a0ba44af
s2a: clean up usage of certs (#11583)
* use CertificateUtils.

* Different names for each ec cert.

* Generate rsa certs with ::1 IP + delete CSRs.

* try.
2024-10-02 12:55:21 -07:00
Eric Anderson 9ab35a761b
util: Store only a list of children in MultiChildLB
A map of children is still needed, but is created temporarily on update.
The order of children is currently preserved, but we could use regular
HashMaps if that is not useful.
2024-10-02 11:03:44 -07:00
Riya Mehta 927d21541d
s2a: Move s2a implementation to internal package 2024-10-01 08:24:18 -07:00
MV Shiva f9ff526885
Update README etc to reference 1.67.1 2024-10-01 08:09:24 -07:00
Kannan J fa26a8bc5e
Make address resolution error use the default service config (#11577)
Fixes #11040.
2024-10-01 11:21:08 +05:30
Riya Mehta 50e442fea6
s2a: Include full exception in IOException 2024-09-30 15:05:14 -07:00
Riya Mehta 7b4b109309
s2a: remove channelPool from S2AChannelCredentials builder. (#11573) 2024-09-30 12:55:42 -07:00
Riya Mehta a140e1bb0c
s2a: Combine MtlsToS2ChannelCredentials and S2AChannelCredentials. (#11544)
* Combine MtlsToS2ChannelCredentials and S2AChannelCredentials.

* Check if file exists.

* S2AChannelCredentials API requires credentials used for client-s2a channel.

* remove MtlsToS2A library in BUILD.

* Don't check state twice.

* Don't check for file existence in tests.
2024-09-30 09:49:09 -07:00
Eric Anderson 795e2cc3ff util: Simplify MultiChildLB.getChildLbState()
Tests were converted to use getChildLbStateEag() if the argument was an
EAG, so the instanceof was no longer necessary.
2024-09-30 08:17:24 -07:00
Eric Anderson 8c3496943c xds: Have ClusterManagerLB use child map for preserving children
Instead of doing a dance of supplementing config so the later
createChildAddressesMap() won't delete children, just look at the
existing children and don't delete any that shouldn't be deleted.
2024-09-30 08:17:10 -07:00
Eric Anderson a908b5e40d android: For UDS, use fake IP instead of localhost
This avoids a DNS lookup, which can be slow and fail.

Fixes #11442
2024-09-30 08:16:42 -07:00
yifeizhuang d169a5de6f
interop-test: add opentelemetry tracing context propagation test (#11538) 2024-09-27 17:22:38 -07:00
Riya Mehta fa18fec36e
s2a: Address minor comments on PR#11113 (#11540)
* Use StandardCharsets in FakeS2AServerTest.
* Use add instead of offer in S2AStub.
* remove dead code in ProtoUtil.java.
* Mark convertTlsProtocolVersion as VisibleForTesting.
* S2AStub doesn't return responses at front of queue.
* Remove global SHARED_RESOURCE_CHANNELS.
* Don't suppress RethrowReflectiveOperationExceptionAsLinkageError.
* Update javadoc.
* Make clear which certs are used in tests + add how to regenerate.
2024-09-27 08:47:56 -07:00
Eric Anderson 9faa0f4eb0 xds: Update ClusterImpl test to work with PFLeafLB 2024-09-26 09:54:04 -07:00
erm-g 1c069375ce
core: SpiffeId parser (#11490)
SpiffeId parser compliant with [official spec](https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE-ID.md)
2024-09-26 12:01:11 -04:00
Kannan J 64e3801538
Update RELEASING.md (#11559)
1. Removing $ when looking for the commit 'Start of  development cycle...' because it produces empty result with the $. It seems how the squash was done may influence whether $ will work or not.

2. Added an explicit git push instruction at step 5 of tagging and what base branch to use, since it will cause conflict with the default base branch used of master.
2024-09-26 21:04:57 +05:30
Eric Anderson 5dbca0e80c xds: Improve ClusterImpl's FakeSubchannel to verify state changes
The main goal was to make sure subchannels went CONNECTING only after a
connection was requested (since the test doesn't transition to
CONNECTING from TF). That helps guarantee that the test is using the
expected subchannel.

The missing ClusterImplLB.requestConnection() doesn't actually matter
much, as cluster manager doesn't propagate connection requests.
2024-09-25 11:11:44 -07:00
Vindhya Ningegowda 3e8ef8cf0c
xds: Check for validity of xdsClient in ClusterImplLbHelper (#11553)
* Added null check for xdsClient in onSubChannelState. This avoids NPE
for xdsClient when LB is shutdown and onSubChannelState is called later
as part of listener callback. As shutdown is racy and eventually consistent,
this check would avoid calculating locality after LB is shutdown.
2024-09-24 16:18:34 -07:00
Eric Anderson c92453fb14
s2a: Disabling publishing until it is ready for users 2024-09-24 15:40:40 -07:00
Mark S. Lewis 2ff837ab60 Update protobuf-java to address CVE-2024-7254
Signed-off-by: Mark S. Lewis <Mark.S.Lewis@outlook.com>
2024-09-24 07:39:50 -07:00
John Cormie 99be6e9852
Address Android 11's package visibility rules. (#11551) 2024-09-23 20:37:09 -07:00
Riya Mehta d8f73e0456
s2a: Address comments on PR#11113 (#11534)
* Mark S2A public APIs as experimental.

* Rename S2AChannelCredentials createBuilder API to newBuilder.

* Remove usage of AdvancedTls.

* Use InsecureChannelCredentials.create instead of Optional.

* Invoke Thread.currentThread().interrupt() in a InterruptedException block.
2024-09-20 15:53:14 -07:00
Riya Mehta e75a044107
s2a,netty: S2AHandshakerServiceChannel doesn't use custom event loop. (#11539)
* S2AHandshakerServiceChannel doesn't use custom event loop.

* use executorPool.

* log when channel not shutdown.

* use a cached threadpool.

* update non-executor version.
2024-09-20 12:32:54 -07:00
yifeizhuang 782a44ad62
Implement ContextStorageOverride for opentelemetry context bridge (#11523) 2024-09-19 09:52:38 -07:00
Eric Anderson 9b0c19e698 s2a: Cleanups to IntegrationTest
Move unused and unimportant fields to local variables. pickUnusedPort()
is inherently racy, so avoid using it when unnecessary. The channel's
default executor is fine to use, but if you don't like it
directExecutor() would be an option too. But blocking stub doesn't even
use the executor for unary RPCs. Thread.join() does not propagate
exceptions from the Thread; it just waits for the thread to exit.
2024-09-18 09:52:03 -07:00
Larry Safran bdc0530e1d
Fix slow tests that took 40 seconds to get through tearDown. (#11530) 2024-09-17 11:12:27 -07:00
Eric Anderson ce33df4a6f s2a: Use new-style syntax for plugins and remove unused deps
There may be more unused deps, but #11527 makes it far too painful for
me to bother to clean it up more.
2024-09-16 15:44:34 -07:00
yifeizhuang 5bec9096a2
Otel server context interceptor (#11500)
Add opentelemetry tracing API, guarded by environmental variable(disabled by default).
Use server interceptor to explicitly propagate span to the application thread.
2024-09-16 14:43:27 -07:00
MV Shiva 3a6be9ca1e
Detect transport executors with no remaining threads (#11503)
Detect misconfigured transport executors with too few threads that could further throttle the transport.

Fixes #11271
2024-09-16 16:32:52 +05:30
Riya Mehta b8c1aa517a
s2a: Add gRPC S2A (#11113) 2024-09-13 17:11:17 -07:00
Vindhya Ningegowda f3cf7c3c75
xds: Add xDS node ID in few control plane errors (#11519) 2024-09-12 15:40:20 -07:00
Eric Anderson 15cd2f9443 buildscripts: OS X env should be in macos.sh
unix.sh is shared by multiple OSes and environments. Clear JAVA_HOME,
since we never want to use that as PATH is more reliable, better
supported, and more typical.
2024-09-12 11:01:56 -07:00
Larry Safran 5de65a6d50
use an attribute from resolved addresses IS_PETIOLE_POLICY to control whether or not health checking is supported (#11513)
* use an attribute from resolved addresses IS_PETIOLE_POLICY to control whether or not health checking is supported so that top level versions can't do any health checking, while those under petiole policies can.

Fixes #11413
2024-09-06 11:43:07 -07:00
Vindhya Ningegowda f6d2f20fcd
Fix assertion to resolve flakiness in upstreamLocalityStatsList order (#11514) 2024-09-06 09:15:14 -07:00
Eric Anderson 721d063d55 core: touch() buffer when detach()ing
Detachable lets a buffer outlive its original lifetime. The new lifetime
is application-controlled. If the application fails to read/close the
stream, then the leak detector wouldn't make clear what code was
responsible for the buffer's lifetime. With this touch, we'll be able to
see detach() was called and thus know the application needs debugging.

Realized when looking at b/364531464, although I think the issue is
unrelated.
2024-09-05 14:39:33 -07:00
MV Shiva 8adfbf9ac5
Start 1.68.0 development cycle (#11507) 2024-09-04 19:33:28 +05:30
Vindhya Ningegowda 1dae144f0a
xds: Fix load reporting when pick first is used for locality-routing. (#11495)
* Determine subchannel's network locality from connected address, instead of assuming that all addresses for a subchannel are in the same locality.
2024-08-31 16:07:53 -07:00
yifeizhuang 421e2371e9
add OpenTelemetryTracingModule (#11477) 2024-08-30 12:17:28 -07:00