Commit Graph

2358 Commits

Author SHA1 Message Date
Mark D. Roth 81a4ea444e
xds: remove legacy EDS-only workflow (#28274)
* xds: remove legacy EDS-only workflow

* remove unused constants

* remove unused data member
2021-12-06 08:00:15 -08:00
Yash Tibrewal 3689072979
xDS: Add graceful shutdown for old connections on listener resource update (#28154)
* xDS: Add graceful shutdown for old connections on listener resource update

* Add TODOs for review

* Reviewer comments

* Reviewer comments

* Fix merge

* Fix comment

* s/GRPC_ARG_DRAIN_GRACE_TIME_MS/GRPC_ARG_SERVER_CONFIG_CHANGE_DRAIN_GRACE_TIME_MS
2021-12-02 15:42:47 -08:00
Mark D. Roth 9722651156
xds_end2end_test: remove num_balancers from test suite and remove dependence on fake resolver for xDS channel (#28245)
* xds_end2end_test: remove num_balancers from test suite

* fix clang-tidy
2021-12-01 16:28:15 -08:00
Yash Tibrewal 25446c468a
Support RDS updates on the server (#27851)
* Port changes from #27388

* Reviewer comments

* Fix resource timeout issue

* Cleanup

* Fix clang-tidy

* Revert benchmark

* Restructure

* clang-tidy

* Automated change: Fix sanity tests

* Partial commit

* Reviewer comments

* Fixes

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* clang-format

* Fix FaultInjection tests

* clang-tidy

Co-authored-by: yashykt <yashykt@users.noreply.github.com>
2021-11-18 16:10:31 -08:00
Esun Kim 11f440775b
Fix xds_end2end_test dyld (#28133) 2021-11-18 16:08:41 -08:00
Mark D. Roth 1050eedb87
enable clang-tidy readability-static-definition-in-anonymous-namespace check (#28033) 2021-11-17 07:48:43 -08:00
Mark D. Roth fff84402ac
Second attempt: XdsClient: fix resource timeout behavior (#28088)
* Revert "Revert "XdsClient: fix resource timeout behavior (#27860)" (#28032)"

This reverts commit 817eed0928.

* use the right status code enum
2021-11-15 14:53:15 -08:00
Craig Tiller a629c9a03e
Reland resource quota work (#28017)
* Check if memory owner available prior to polling it

The transport may drop the memory owner during its destruction sequence

* tcp_fix

* Revert "Revert "New resource quota integration (#27643)" (#28014)"

This reverts commit 0ea2c37263.

* clang-format

* fix-path

* fix
2021-11-15 08:23:51 -08:00
Craig Tiller 817eed0928
Revert "XdsClient: fix resource timeout behavior (#27860)" (#28032)
This reverts commit 7fdb40d8b8.
2021-11-12 19:58:16 -08:00
Mark D. Roth 7fdb40d8b8
XdsClient: fix resource timeout behavior (#27860)
* XdsClient: fix resource timeout behavior

* fix clang-tidy

* more clang-tidy fixes

* yet more clang-tidy
2021-11-12 12:17:45 -08:00
Craig Tiller 0ea2c37263
Revert "New resource quota integration (#27643)" (#28014)
This reverts commit 39f0877d25.
2021-11-11 14:26:19 -08:00
Craig Tiller 39f0877d25
New resource quota integration (#27643)
* new resource quota integration

* Automated change: Fix sanity tests

* fix

* fix

* fixes

* fixes

* fixes

* Automated change: Fix sanity tests

* fixes

* fixes

* Automated change: Fix sanity tests

* fixes

* fix

* fixes

* windows-fix

* fixes

* fixes

* fix

* fix-asan

* banned

* banned

* fixes

* clang-tidy-fix

* Automated change: Fix sanity tests

* fix-cronet

* review feedback

* review feedback

* Automated change: Fix sanity tests

* fixes

* bug fix

* fixes

* compile fix

* exclude megabyte size payloads from 1byte tests

* windows fix

* start moving ios

* keep moving windows

* Get windows compilation working.

* Automated change: Fix sanity tests

* better

* fixes

* remove slice buffer from memory_allocator.h

* Revert "remove slice buffer from memory_allocator.h"

This reverts commit 234a63b6e3.

* ugh

* #fixtests

* pthread tls fixes

* Automated change: Fix sanity tests

* fixfixfix

* xxx

* add reset

* review feedback

* fix

* fix

* fixes

* fix

* mac progress

* cpp-impl-of

* rename ptr

* Automated change: Fix sanity tests

* memory-owner-is-a-memory-allocator

* fixes

* fix

* fix from prod

* fix

* Fix issue leading to bad pointers being returned on Windows.

* Automated change: Fix sanity tests

* fix multislice bug

* argh

* hyrums law fixes

* hyrums law fixes

* clang-format

* hyrums law fixes

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-11-10 22:53:04 -08:00
ZhenLian 2e14f6fa70
Support Custom Post-handshake Verification in TlsCredentials (#25631)
* custom verification refactoring - post-handshake verification
2021-11-10 13:45:52 -08:00
Yash Tibrewal 00e8a2d085
xds_end2end_test: Only start backends when needed (#27911)
* xds_end2end_test: Fix flakiness on WaitForLdsNack

* xds_end2end_test: Only start the server when we want

* Revert WaitForNack changes

* Fixes

* Fix CsdsShortAdsTimeoutTest

* Fix sanity
2021-11-04 14:35:25 -07:00
Mark D. Roth 3bde8305cc
Second attempt: Don't build RLS on mobile (#27878)
* Revert "revert changes to not build RLS on mobile (#27875)"

This reverts commit 73ad459c51.

* new approach using multiple select() calls
2021-11-01 10:26:01 -07:00
Mark D. Roth 73ad459c51
revert changes to not build RLS on mobile (#27875)
* Revert "fix mobile builds to properly exclude xDS (#27855)"

This reverts commit 64d026e234.

* Revert "don't build RLS on mobile (#27838)"

This reverts commit 2a69c525b8.
2021-10-29 12:00:00 -07:00
Mark D. Roth 08c7b254bd
provide more slack in RLS end2end tests (#27842) 2021-10-27 15:49:54 -07:00
Mark D. Roth 2a69c525b8
don't build RLS on mobile (#27838)
* don't build RLS on mobile

* buildifier

* fix build rules to avoid "Illegal ambiguous match" bazel error
2021-10-27 15:46:00 -07:00
Mark D. Roth 06b5061d35
change CSDS to populate new generic_xds_configs field (#27794) 2021-10-26 13:24:27 -07:00
Yash Tibrewal 9ac9a013fc
Update RDS parsing for use on servers (#27715)
* Update RDS parsing for use on servers

* Unused variable

* Reviewer comments

* Automated change: Fix sanity tests

* Fix tests

* Reviewer comments

* Reviewer comments

* clang-tidy

* Reviewer comments

* Fix test

* Reviewer comments

* Reviewer comments

Co-authored-by: yashykt <yashykt@users.noreply.github.com>
2021-10-26 00:32:35 -07:00
Mark D. Roth 5406048ef6
Second attempt: RLS LB policy (#27748)
* allow connectivity state watching to work on lame channels

* Revert "Revert RLS LB policy (#27738)"

This reverts commit 4567af504e.

* fix build

* fix lame_client_test
2021-10-20 07:41:07 -07:00
Craig Tiller f1f3ac7f02
Revert "Revert "allow connectivity state watching to work on lame channels (#27747)" (#27766)" (#27774)
This reverts commit 790ce5c97f.
2021-10-19 15:28:31 -07:00
Craig Tiller 790ce5c97f
Revert "allow connectivity state watching to work on lame channels (#27747)" (#27766)
This reverts commit a2bd7b8440.
2021-10-19 08:16:29 -07:00
Mark D. Roth d6a0c0b8b5
xds_end2end_test: allow setting Listener to use in SetRouteConfiguration() (#27756)
* xds_end2end_test: allow setting Listener to use in SetRouteConfiguration()

* clang-format
2021-10-19 07:36:54 -07:00
Mark D. Roth a2bd7b8440
allow connectivity state watching to work on lame channels (#27747)
* allow connectivity state watching to work on lame channels

* fix build

* fix lame_client_test
2021-10-18 14:47:47 -07:00
Mark D. Roth 4567af504e
Revert RLS LB policy (#27738)
* Revert "fix for import of RLS LB policy (#27736)"

This reverts commit cfcdbc4905.

* Revert "RLS LB policy (#27352)"

This reverts commit 84ddc3289f.
2021-10-15 12:19:57 -07:00
Mark D. Roth cfcdbc4905
fix for import of RLS LB policy (#27736) 2021-10-15 07:56:48 -07:00
Mark D. Roth 84ddc3289f
RLS LB policy (#27352)
* RLS LB policy plugin implementation

* Add RLS tests

* rls proto

* generate projects

* Fix adding child policy to child policy map

* Fix issues

* Fix rotten bits

* generate projects

* revert some strange changes

* First batch of fixes

* second batch of addressing comments

* generate_projects

* 3rd batch of fixes

* generate_projects

* 4th batch of fix

* 5th batch of fix

* Empty commit to trigger github PR refresh

* Add insecure build

* generate project

* update picker in a closure

* mutex guard audit

* clang-format

* Aggregate child policy states

* Use OrphanablePtr on ChildPolicyOwner()

* More fixes on comments

* Remove include grpc_security from rls.cc

* Fix key builder test as we removed RlsFindPathFromMetadata

* Update rls proto and add multi-target capability

* code changes to fix build after merging master

* remove support for insecure builds

* WIP

* add LB policy metadata lookup API

* add API for creating errors from C++ strings

* add missing include

* finished updating JSON parsing

* use DualRefCounted<> for ChildPolicyWrapper

* use grpc_core::Mutex instead of std::recursive_mutex

* add lock annotations and fix some lifetime issues

* misc fixes and cleanups

* simplify child policy connectivity state machine

* add comment about hopping into ExecCtx

* don't use wait_for_ready for RLS call

* extraKeys and constantKeys support

* add lock annotations for child policy wrapper connectivity state

* improve logging

* simplify child policy state handling in picker

* use C++ style comments

* remove rls_config.proto, since it's not needed

* rewrote tests

* fix build

* fix copyright headers

* clang-format

* appease clang-tidy

* remove unnecessary dependendency on grpclb

* buildifier

* remove illegal term

* remove unneeded includes

* clang-format

* fix clang-tidy

* fix build

* move class declaration into .cc file

* clang-tidy again

* fix build

* reorganize code and misc cleanups

* clang-format

* fixed a bunch of asan bugs; still some left to debug

* fix asan problem

* make test work on IPv6-only machines

* move LRU list handling into Cache::Entry and add lock annotations

* use preincrement instead of postincrement

* fix deadlock

* add more FIXMEs

* clean up backoff timer logic

* fix build from merge

* clang-format

* fix include path to work on podspec builds

* clean up picker logic

* clang-format

* update rls.proto

* populate reason and stale_header_data in RLS request

* improve logging and fix some cache size type issues

* clang-format

* add some TODOs about a better way to expose channel creds to LB policies

* centralize handling of channel's default authority

* clang-format

* fix backup poller bug

* fix handling of call creds and authority on RLS channel

* remove unused params

* clang-format

* use two-phase update for child policies to avoid deadlocks

* fix portability issue

* minor cleanups

* update for change in grpc_error_get_status() API

* change test to store RLS requests and responses in proto form

* clang-format

* account for test slowdown factor in timeouts

* fix tsan failure and channelz linkage

* fix RLS authority death test

* fix test to not try to connect to target that should not work

* remove illegal term

* cacheSizeBytes is a required field

* add missing BUILD deps from merge

* add tests for connectivity state reporting and fix bugs found

* fix BUILD sanity

* buildifier

* fix BUILD package path

* fix bugs related to child policy lifetime and updates

* remove unnecessary srand() call from grpc_init()

* add test for two cache entries with the same target

* update rls.proto

* change RLS config parser test to support GRPC_ERROR_IS_ABSEIL_STATUS

* update upb codegen

* fix include path

* add env var guard

* avoid duplication of CountedService

* generate_projects

* add upper limit for cacheSizeBytes

* fix build

Co-authored-by: Muxi Yan <mxyan@google.com>
2021-10-14 12:53:46 -07:00
Mark D. Roth 6339b03ada
Revert "Revert "start splitting up xds_end2end_test (#27702)" (#27725)" (#27726)
This reverts commit 9177c5324a.
2021-10-14 11:41:45 -07:00
Mark D. Roth 464c1c519f
switch to new location of TypedStruct and ORCA protos (#27700)
* upgrade xDS protos

* switch to new location of TypedStruct and ORCA protos

* fix sanity
2021-10-14 10:28:24 -07:00
Mark D. Roth 9177c5324a
Revert "start splitting up xds_end2end_test (#27702)" (#27725)
This reverts commit 69a978231b.
2021-10-14 08:47:17 -07:00
Mark D. Roth 69a978231b
start splitting up xds_end2end_test (#27702)
* move test xDS server to its own library

* move xds_end2end_test to xds subdir, and refactor CountedService

* add TODO

* fix sanity
2021-10-13 13:11:53 -07:00
Mark D. Roth 2b813d2bff
grpclb: implement subchannel caching (#27657)
* grpclb: implement subchannel caching

* code review changes

* fix clang tidy

* code review changes
2021-10-13 12:14:00 -07:00
Yash Tibrewal a61bb8ed5b
Move service config code out of client_client to its own target (#27683)
* Move service config code out of client_client to its own target

* Fix BUILD

* Fix test build

* Reviewer comments

* Reviewer comments

* Automated change: Fix sanity tests

* Reviewer comments

Co-authored-by: yashykt <yashykt@users.noreply.github.com>
2021-10-12 18:30:04 -07:00
Ashitha Santhosh a1db97be90
Revert "Revert "Revert "Revert "File watcher authorization policy provider implementation"" (#27605)" (#27644)" (#27645)
This reverts commit b8e01f73a0.
2021-10-08 15:52:13 -07:00
AJ Heller b8e01f73a0
Revert "Revert "Revert "File watcher authorization policy provider implementation"" (#27605)" (#27644)
This reverts commit 5912aedb2b.
2021-10-07 16:45:30 -07:00
Esun Kim ec4c61a3ae
Various fixes on absl::Status migration (#27557) 2021-10-07 14:49:59 -07:00
Ashitha Santhosh 5912aedb2b
Revert "Revert "File watcher authorization policy provider implementation"" (#27605)
* Revert "Revert "File watcher authorization policy provider implementation (#26779)" (#27591)"

This reverts commit a1ad74f7af.

* Remove license comment
2021-10-07 09:54:23 -07:00
Mark D. Roth 3d83dd3776
Revert "Revert "centralize handling of channel's default authority (#27544)" (#27616)" (#27624)
This reverts commit 0611f7c9b3.
2021-10-06 12:15:55 -07:00
Mark D. Roth 0611f7c9b3
Revert "centralize handling of channel's default authority (#27544)" (#27616)
This reverts commit f0a0628795.
2021-10-06 07:26:24 -07:00
Mark D. Roth f0a0628795
centralize handling of channel's default authority (#27544)
* centralize handling of channel's default authority

* clang-format

* fix backup poller bug
2021-10-05 11:57:47 -07:00
Craig Tiller a1ad74f7af
Revert "File watcher authorization policy provider implementation (#26779)" (#27591)
This reverts commit 310accd077.
2021-10-05 09:12:08 -07:00
Craig Tiller ce0aba2577
Increase XDS e2e shard count (#27582)
Provides a 40% reduction in runtime for this test internally, and since
it's on our critical path for landing changes, this is significant.
2021-10-04 17:22:13 -07:00
Ashitha Santhosh 310accd077
File watcher authorization policy provider implementation (#26779)
* File watcher authorization policy provider implementation
2021-10-04 14:22:45 -07:00
Lidi Zheng 9cd68439a2
Change the time-getting logic in xds test to what ExecCtx does (#27467) 2021-09-24 10:38:15 -07:00
Esun Kim 47586fb36e
Revert "Revert "Added absl::Status support to error_utils (#27358)" (#27418)" (#27429)
This reverts commit 933676c56c.
2021-09-21 14:42:57 -07:00
Craig Tiller 933676c56c
Revert "Added absl::Status support to error_utils (#27358)" (#27418)
This reverts commit 9b3f75d322.
2021-09-21 09:48:57 -07:00
Esun Kim 9b3f75d322
Added absl::Status support to error_utils (#27358) 2021-09-20 18:03:17 -07:00
donnadionne 1caff522e4
Adding a log to make logging in WaitForAllBackends and WaitForBackend (#27365)
consistent.

This helps to uncover a case where the first test in the shard seems to
encounter longer delays than the rest of the tests.
2021-09-20 11:48:43 -07:00
Alisha Nanda 0a502d8f2e
Fix race between Read and ServerContext::IsCancelled in Sync API (#27056)
* Fix OOM issues in qps tests

* Add more verbose logging.

* Fix clang error

* Fix race between IsCancelled and Read

* Fix build errors from using bool in C code
2021-09-15 12:29:02 -07:00
donnadionne 10f218030d
xDS retry policy should be considered present even if there are no supported policies in retry_on (#27315)
* Ensure that per route retry policy (even when there are no supported
retry_on statuses) still takes precedence over virtual host level retry
policy.

Added a test to guard this case.

* Taking care of code review comments and removing unnecessary block
2021-09-13 18:13:45 -07:00
Lidi Zheng 15184d30ad
Fix injected abort error not recorded after injected delay (#27215)
* Fix injected abort error not recorded after injected delay

* Add the abort after delay test case

* Make Kokoro's clang_format happy
2021-09-13 09:52:20 -07:00
Mark D. Roth 3763be8796
add APIs for creating errors from C++ strings (#27310)
* add API for creating errors from C++ strings

* add missing include
2021-09-10 16:15:36 -07:00
Yash Tibrewal 72171a3326
De-experimentalize XdsCredentials and XdsServerCredentials API (#26544)
* De-experimentalize XdsCredentials and XdsServerCredentials API

* Use GRPC_DEPRECATED
2021-09-09 16:22:25 -07:00
Yash Tibrewal 362aff3458
xDS: Remove environmental variable guard for security (#27290) 2021-09-09 16:21:15 -07:00
Yash Tibrewal 7fd731f704
De-experimentalize XdsServerBuilder (#27296) 2021-09-09 14:14:11 -07:00
Yash Tibrewal 1a009cf4e5
xDS Security: Use new way to fetch certificate provider plugin instance config (#27264)
* xDS Security: Use new way to fetch certificate provider plugin instance
config

* Reviewer comments

* Additional fields to NACK

* Move NACKing tests for tls_certificates and tls_certificate_sds_securet_configs to client-side
2021-09-09 14:12:05 -07:00
Yash Tibrewal f26c107651
xDS server serving status: Use a struct to allow more fields to be added in the future (#27242) 2021-09-09 11:11:57 -07:00
Mark D. Roth f3497eb790
implement improved xDS NACK semantics (#27276)
* refactor xDS response parsing

* fix build

* implement improved xDS NACK semantics

* fix clang-tidy

* fix test
2021-09-08 13:37:07 -07:00
Craig Tiller ea389c00c2
Adjust include order per style guide (#27175)
Introduce clang-format configuration to sort includes closer to our rules.
2021-09-08 12:14:44 -07:00
Mark D. Roth e468b00c56
refactor xDS response parsing (#27272)
* refactor xDS response parsing

* fix build
2021-09-08 07:57:38 -07:00
Mark D. Roth 2cb3831c83
fix retry code to fail batches instead of creating attempt if previously cancelled from surface (#27217)
* fix retry code to fail batches instead of creating attempt if previously cancelled from surface

* add xDS end2end tests covering the FI use-case that triggered the bug

* fix memory leak
2021-09-01 15:47:16 -07:00
Yash Tibrewal cb2e7554a3
xds_end2end_test: Fix UnsupportedHttpFilter test on aws (#27147) 2021-08-27 09:10:46 -07:00
Ta-Wei Tu 7dd1da9e1d
Break after WriteLast() (#27165)
If we continue to call `Write()` after `WriteLast()` (because client is still sending us data and thus `Read()` returns `true`), the buffer might become invalid and results in assertion failures.
2021-08-27 23:19:12 +08:00
Ashitha Santhosh 1ff1f8fd83
SDK authorization filter. (#26468)
* SDK authorization filter.
2021-08-25 21:00:35 -07:00
donnadionne 59fc02a94b
Enabling Ring Hash by default. (#27111) 2021-08-24 19:59:19 -07:00
Yash Tibrewal 6da9eb9f3f
xDS PSM Server Security: Nack unsupported require_sni and ocsp_staple_policy values (#26878)
* Nack unsupported require_sni and ocsp_staple_policy values

* Reviewer comments
2021-08-24 10:50:08 -07:00
AJ Heller 6ba4a92af7
Reorder gtest/gmock headers (#27070)
Per the style guide (or spirit thereof), these should be placed with the other external/third_party headers.
2021-08-20 14:36:08 -07:00
Yash Tibrewal 0ab13090e7
Nack certain unsupported fields in CertificateValidationContext (#26880)
* Nack certain unsupported fields in CertificateValidationContext

* Regenerate projects

* Reviewer comments
2021-08-20 11:03:20 -07:00
AJ Heller d10617edb5
Move resource_user ownership into chttp2 transport/server/connector v2 (#27032)
Reintroducing PR #26643, which was reverted in #27029

Fixed a memory leak and added a test that would have caught it (ASAN build): ca0c8c4
2021-08-18 17:04:00 -07:00
AJ Heller 4ba3fa52b9
Clean up some instances of -Wunreachable-code-aggressive (#27054)
See https://github.com/grpc/grpc/pull/26951 for why this is not enforced
at the moment.
2021-08-18 11:43:46 -07:00
AJ Heller 58f8f5ced3
Add macro to define gtest death_test_style using an older syntax (#27042)
This temporarily unblocks a related gtest upgrade. The ultimate goal is
to upgraade our gtest dependencies, but I don't have the cycles to
manage a potentially messy migration until at least next week. This PR
is coordinated with an internal change.
2021-08-17 17:12:28 -07:00
Yash Tibrewal 533f02642d
Disable xds_credentials_test on iOS (#27043) 2021-08-17 13:33:05 -07:00
Mark D. Roth 9f782faa34
xds: remove env var protection for retries (#27039) 2021-08-17 13:23:25 -07:00
Craig Tiller f5d3ed2db1
Revert "Move resource_user ownership into chttp2 transport/server/connector (#26643)" (#27029)
This reverts commit d1935a65a1. Will be rolled forward with a fix.
2021-08-16 19:07:39 -07:00
AJ Heller d1935a65a1
Move resource_user ownership into chttp2 transport/server/connector (#26643) 2021-08-16 13:50:56 -07:00
Tamir Duberstein 34338e5798
Avoid undefined behavior in pthread TLS (#26999)
See code commentary for an explanation.

Add an additional constructor to allow `log_linux.cc` to compile with
GPR_PTHREAD_TLS. Without it:

```
../../third_party/grpc/src/core/lib/gpr/log_linux.cc:78:33: error: no viable conversion from 'int' to 'grpc_core::PthreadTlsImpl<long>'
  static GPR_THREAD_LOCAL(long) tid = 0;
                                ^     ~
../../third_party/grpc/src/core/lib/gpr/tls.h:64:3: note: candidate constructor not viable: no known conversion from 'int' to 'const grpc_core::PthreadTlsImpl<long> &' for 1st argument
  PthreadTlsImpl(const PthreadTlsImpl&) = delete;
  ^
1 error generated.
```
2021-08-12 19:25:38 -07:00
Tamir Duberstein 00c03c55ff
Implement type safety for TLS (#26942)
* Implement type safety for TLS

This is mostly free when compiler support is available, but requires
careful templating when implemented using pthread.

Significantly slimmed the tls.h interface; it now only defines the "TLS
keyword" for each supported compiler, delegating enforcement of correct
usage (i.e. must be static) to the compiler itself.

Implemented implicit conversion for the pthread wrapper so it can be
used (mostly) the same as native support. Notable exception to this is
that static_cast<void*> is needed when printing a pointer stored in TLS
as %p.

* Use GPR_THREAD_LOCAL macros consistently
2021-08-11 13:24:26 -07:00
Yash Tibrewal 404e56b2d9
Fix XdsEnabledServerTest (#26956) 2021-08-10 10:47:12 -07:00
Tamir Duberstein 3fd01fabae
Add thread safety annotations (#26871)
This exposes a bug in clang, reported upstream as
https://bugs.llvm.org/show_bug.cgi?id=51368.

The clang bug is mitigated using a fake scoped lock; that allows the
current code to compile while also serving as a change detector to
prevent it from going stale; if the compiler bug is fixed, the compiler
will see an overlapping locking requirement, and reject this code, which
will prompt a human being to remove this workaround.
2021-08-06 15:44:22 -07:00
Yash Tibrewal 29d220a0ef
Re-experimentalize XdsServerBuilder (#26892)
* Re-experimentalize XdsServerBuilder

* Fix compiler issue
2021-08-06 10:29:28 -07:00
Tamir Duberstein 013e67a029
Deprecate grpc{_core,::internal}::WaitUntil (#26866)
It is not possible for such a function to be implemented in a way that
is understood by annotalysis. Mark it deprecated and replace instances
of its use with direct mutex/condvar usage.

Add a bunch of missing thread safety annotations while I'm here.
2021-08-04 17:03:25 -07:00
Mark D. Roth 639b7acdfa
fix client_lb_end2end_test ClientLbPickArgsTest.Basic flakiness (#26868)
* fix client_lb_end2end_test ClientLbPickArgsTest.Basic flakiness

* clang-format
2021-08-04 09:46:47 -07:00
Tamir Duberstein 86c9de8231
Remove `grpc_core::WaitUntilWith{Deadline,Timeout}` (#26867)
These functions are essentially unused.
2021-08-03 15:46:36 -07:00
Mark D. Roth 6b71ec3704
LB policy API improvements (#26481)
* LB policy API improvements

* clang-format

* fix build

* a bit more cleanup

* use absl::variant<> for pick result

* fix retry_lb_drop test

* clang-format

* fix grpclb_end2end_test

* fix xds_end2end_test

* try to make variant code a bit cleaner

* clang-format

* fix memory leak

* fix build

* clang-format

* fix error refcount bug

* remove PickResult factory functions

* clang-format

* add ctors to structs

* clang-format

* fix clang-tidy

* update comments

* move LB recv_trailing_metadata callback instead of copying it

* use Match() instead of providing PickResult::Handle()

* don't use Match() for now, since it breaks lock annotations

* update retry_lb_fail test
2021-08-03 09:43:07 -07:00
Yash Tibrewal 49b5f9c420
Fix XdsServerSecurityTest (#26817) 2021-07-29 13:28:18 -07:00
donnadionne 7eaf37bce5
Adding retry policy (#26566) 2021-07-23 12:17:17 -07:00
Mark D. Roth 3104a9964c
xds: validate that terminal filters come at the end of the filter chain (#26742)
* xds: validate that terminal filters come at the end of the filter chain

* clang-format
2021-07-23 08:06:58 -07:00
Craig Tiller 4f9828fe0b
Remove unnecessary include (#26761) 2021-07-22 16:19:34 -07:00
Mark D. Roth 246c57829b
xds: notify watchers when NACKing resource updates (#26757)
* xds: notify watchers when NACKing resource updates

* check status of failed RPC when waiting for NACK
2021-07-22 13:12:19 -07:00
Alisha Nanda d73ec07fe7
Fix small typo in xds end2end test (#26685) 2021-07-14 10:53:55 -07:00
Yash Tibrewal c52005c161
NACK xDS updates when certificate provider instace names are unrecognized (#26614)
* NACK xDS updates when certificate provider instace names are unrecognized

* Reviewer comments

* Reviewer comments

* Clang format

* Fix compilation error
2021-07-11 22:10:04 -07:00
Lidi Zheng b97693d572
[Roll Forward] Tighten the error tolerance requirement by 100x (#26626)
* Tighten the error tolerance requirement by 10x

* Make it 5 sigma instead of 4.5

* Rewrap comments

* Loosen the max concurrent requests in certain test cases
2021-07-09 10:33:43 -07:00
Yash Tibrewal 670a26caef
NACK xDS updates where transport_name is not recognized (#26612)
* NACK xDS updates where transport_name is not recognized

* Reviewer comments
2021-07-08 11:14:07 -07:00
Yash Tibrewal 095045b31c
NACK xds updates requiring client certificates when no validation certificate provider instance is mentioned (#26613) 2021-07-07 13:22:13 -07:00
Yash Tibrewal 8b5fbf8900
TLS Security Connector: Add an always-fail-handshaker when certificates are not ready (#26561)
* TLS Security Connector: Add an always-fail-handshaker when certificates are not ready

* Reviewer suggestion

* Add test
2021-07-04 12:39:29 -07:00
Yash Tibrewal 4daedf0233
De-experimentalize XdsServerBuilder (#26543) 2021-07-02 19:33:15 -07:00
Lidi Zheng f198fb5b41
Revert "Tighten the error tolerance requirement by 100x (#26588)" (#26593)
This reverts commit f835f3f97c.
2021-07-01 16:21:12 -07:00
Lidi Zheng f835f3f97c
Tighten the error tolerance requirement by 100x (#26588)
* Tighten the error tolerance requirement by 10x

* Make it 5 sigma instead of 4.5

* Rewrap comments
2021-07-01 09:48:37 -07:00
Mark D. Roth 34bf26357b
Change StringMatcher to not support case-insensitive regex matching. (#26567)
* Change StringMatcher to not support case-insensitive regex matching.

* clang-format

* clang-tidy
2021-06-29 09:25:33 -07:00
Vijay Pai cf1ebf7387
Remove experimental tag from uses of the C++ callback API (#26495) 2021-06-20 00:47:07 -07:00
Yash Tibrewal bb994526ba
Fix ExistingRpcsOnResourceDeletion flakiness (#26419) 2021-06-02 18:48:44 -07:00
Lidi Zheng a36199b2d5
Tighten the probability requirement from 99.99% to 99.995% (#26408)
* Tighten the probability requirement from 99.99% to 99.995%

* Update comments
2021-06-01 17:14:00 -07:00
Vijay Pai 8aff94558c
De-experimentalize C++ callback API (#25728)
* De-experimentalize callback API

* Make FromServerContext based on ServerContextBase

* Fix lambda

* Fix headers

* De-experimentalize tests

* clang-format

* Fix consistency checks

* wip

* Fix const-ness of callback client read RPC requests

* Fix golden file

* Give full route_guide callback client example with Hold etc

* Complete example route-guide server

* De-experimentalize test services

* Omit unneeded using

* Remove some uses of non-experimental macro from test

* clang-format examples

* De-experimentalize async stub calls

* Remove experimental namespace use in qps, ubms

* De-experimentalize alarms, generic stubs, and context allocator

* De-experimentalize SetContextAllocator

* clang-format

* Fix conflicts

* Leave obsolete API in place until users can be migrated
2021-05-27 14:55:25 -07:00
Vijay Pai 153bc67f45
Revert "Revert "Revert "Revert "Expose trailers-only response status through C++ callback API"" (#26365)" (#26375)" (#26379)
This reverts commit 259a74c0e6.
2021-05-27 09:16:05 -07:00
Yash Tibrewal 259a74c0e6
Revert "Revert "Revert "Expose trailers-only response status through C++ callback API"" (#26365)" (#26375)
This reverts commit 66253c521a.
2021-05-26 22:20:23 -07:00
donnadionne e22fefb39a
Ring hash implementation (#26356)
* Ring hash implementation

* Fixing an error caught during import:
ipv6 addresses need small modifications when creating the ring entry.

* fixing an error

* removing debugs

* Remove unnecssary hashing

* small cleanup
2021-05-26 00:03:42 -07:00
Vijay Pai 66253c521a
Revert "Revert "Expose trailers-only response status through C++ callback API"" (#26365)
* Revert "Revert "Expose trailers-only response status through C++ callback API (#26249)" (#26363)"

This reverts commit 05c3b30ea0.

* Move the trailers_only check from ClientContext to ClientReactor

* Remove unneeded change in client_context.cc
2021-05-25 17:43:21 -07:00
Yash Tibrewal 05c3b30ea0
Revert "Expose trailers-only response status through C++ callback API (#26249)" (#26363)
This reverts commit 393bae7e88.
2021-05-25 13:44:10 -07:00
Mark D. Roth edae7450f5
fix LOGICAL_DNS semantics (#26147)
* WIP: fix LOGICAL_DNS semantics

* fix tests and address FIXME

* clang-format

* add "dns:" prefix before creating resolver
2021-05-24 09:59:20 -07:00
Vijay Pai 393bae7e88
Expose trailers-only response status through C++ callback API (#26249)
* Expose trailers-only response status through callback API

* Fix change-detector test

* Address reviewer comment about trailers_only headers

* Add TODO requested by markdroth

* Move variable in struct to improve space efficiency

* Don't instantiate ExecCtx in channel_args destructor unless needed
2021-05-21 14:42:41 -07:00
donnadionne 2bb20d25a4
Revert "ring_hash LB policy implementation (#26285)" (#26303)
This reverts commit c55c7c065e.
2021-05-19 14:24:52 -07:00
Vijay Pai 0f80378a21
Resolve race between OnReadDone(ok=false) and IsCancelled (#26245)
* Resolve and test race between OnReadDone(ok=false) and IsCancelled

* Fix retry case

* Fix health check case

* Address reviewer comments.

* ADD TODO requested by markdroth
2021-05-19 14:05:46 -07:00
donnadionne c55c7c065e
ring_hash LB policy implementation (#26285)
* ring_hash LB policy (#25697)

* Ring Hash Policy implementation

* Code review comment fixing

* Fixing code review comments.

* Code review comment fixing

* Fixing reconnect logic

* adding helper method for pick

* Holding on to ref to parent

* first attempt at calling AttemptToConnect

* Fixing state change

* Fixing code review comments

* Fixing the reconnect from channel watcher code

* Fixing the BUILD to include new policy

* Fixing major code review suggestion

* Fixing code review comments

* Fixing code review suggestions

* Initial 2 tests.

* Adding channel id case.

* Fixing code review comments.

* Small change to get the spread of backends

* Add header hashing tests

* Added more tests and debugging

* Fixing Header hash

* Added more tests

* cleanup

* removing debugs

* Fixing code review comments.

* code review fixing

* combining code and match design

* fixing code review comments.

* Fixed IDLE case

* Moving tests

* Fixing code review comments

* Adding more tests according to code review comments.

* Added tests with differetn types of weights

* Adding terminal policy case

* Remove hash_func as there is only 1

* Added nack invalid hash function

* Added NACK cases

* fixing build error

* fixing build

* small warning

* adding regex test

* Adding policy tests

* fixing warning

* fixing warning

* fixing code reivew comments.

* fixing IDLE case

* Code review comments.

* fixing code review comments

* Making a helper function

* fixing reattempt case

* Added afew more tests.

* Adding more tests

* Added backward compatible test

* FIxing the reattempt test

* Clean up

* fixing clang error

* fixing clang error

* Fix logic discovered during code review

* code review comments

* code review comments

* code review comment

* clean up tests

* fixing code review comments

* clean up tests

* Separated test

* Fixing test

* fixing test

* fixing clang error

* Addressing code review suggestions

* Fixing last bit of code review comments

* Fixing flaky tests

* Fixing last bit of code review comments

* clean debugs

* Remove a verbose log

* Relaxing deadline exceeded for 1st RPC until ring is optimized.
Making Hash more efficient for random case.
2021-05-18 16:00:06 -07:00
Mark D. Roth 467c0d742c
fix xds resolver to add XdsClient to channel args even on errors (#26282) 2021-05-18 13:55:34 -07:00
donnadionne f36a31b6aa
Revert "ring_hash LB policy (#25697)" (#26238)
This reverts commit 2aefb26f5d.
2021-05-14 08:52:21 -07:00
donnadionne 2aefb26f5d
ring_hash LB policy (#25697)
* Ring Hash Policy implementation

* Code review comment fixing

* Fixing code review comments.

* Code review comment fixing

* Fixing reconnect logic

* adding helper method for pick

* Holding on to ref to parent

* first attempt at calling AttemptToConnect

* Fixing state change

* Fixing code review comments

* Fixing the reconnect from channel watcher code

* Fixing the BUILD to include new policy

* Fixing major code review suggestion

* Fixing code review comments

* Fixing code review suggestions

* Initial 2 tests.

* Adding channel id case.

* Fixing code review comments.

* Small change to get the spread of backends

* Add header hashing tests

* Added more tests and debugging

* Fixing Header hash

* Added more tests

* cleanup

* removing debugs

* Fixing code review comments.

* code review fixing

* combining code and match design

* fixing code review comments.

* Fixed IDLE case

* Moving tests

* Fixing code review comments

* Adding more tests according to code review comments.

* Added tests with differetn types of weights

* Adding terminal policy case

* Remove hash_func as there is only 1

* Added nack invalid hash function

* Added NACK cases

* fixing build error

* fixing build

* small warning

* adding regex test

* Adding policy tests

* fixing warning

* fixing warning

* fixing code reivew comments.

* fixing IDLE case

* Code review comments.

* fixing code review comments

* Making a helper function

* fixing reattempt case

* Added afew more tests.

* Adding more tests

* Added backward compatible test

* FIxing the reattempt test

* Clean up

* fixing clang error

* fixing clang error

* Fix logic discovered during code review

* code review comments

* code review comments

* code review comment

* clean up tests

* fixing code review comments

* clean up tests

* Separated test

* Fixing test

* fixing test

* fixing clang error

* Addressing code review suggestions

* Fixing last bit of code review comments

* Fixing flaky tests

* Fixing last bit of code review comments

* clean debugs

* Remove a verbose log
2021-05-13 12:55:23 -07:00
Mark D. Roth 4c40ee3f78
move parse_address and sockaddr_utils out of iomgr directory (#26077)
* move parse_address and sockaddr_utils out of iomgr directory

* clang-format

* fix python

* fix for import

* fix build file for import
2021-04-30 08:21:58 -07:00
Alisha Nanda 1b26c897c1
Fix build failures in xds_end2end_test (#26127) 2021-04-29 13:55:24 -07:00
donnadionne a994aad0b8
xds_end2end_test test infra: Eds Args refactoring and enhancing WaitForBackend (#26093)
* Refactoring EdsResourceArgs::Locality to have a vector of Endpoints:
port, health_status, and lb_weight.

As well, Adding RpcOption to WaitForBackend()

* Update WaitForBackend

* Modified WaitForBackend default param

* reuse SeenBackend

* Code review comments

* refactor WaitForAllBackend parameter list

* Fixing tests to ensure they are more strict;
Fixing test code according to code review comments.

* Fixing code review suggestions

* Increasing timeout for StressTest
2021-04-29 11:54:58 -07:00
Lidi Zheng 13e04b4b9c
Reduce xds_end2end_test's error tolerance to 0.05 (#25738)
* WIP sync API with 1.6k threads doesn't work

* Please don't fail

* Fix the tests

* Spread to DropTest

* Code clean-up and extend delay RPC timeout

* Address comments

* Address comments

* Deflake MSAN

* Make MSAN more robust && normal runs faster

* Address comments

* Remove the clock change in fault injection filter

* Polish comments && stricten the connection timeout
2021-04-28 17:47:09 -07:00
mkruskal-google 2bf75aa68a
Add optional suffix to client-side stub objects (#25996)
* Adding suffix for stats handling to gRPC

* Fixing typo

* Fixing codegen, adding tests

* Fixing test failures

* Adding nullptr default in StubOptions

* Updating golden test file

* Replacing std::make_unique with absl::make_unique for pre-C++14 compatibility

* Fixing clang format  errors

* Reuse stub options for generic stubs

* Cleaning up compiler warnings in GenericStub
2021-04-26 17:19:43 -07:00
Yash Tibrewal 4768210ec8
s/OnServingStatusChange/OnServingStatusUpdate (#26010)
* s/OnServingStatusChange/OnServingStatusUpdate

* Update python files
2021-04-26 15:36:35 -07:00
Esun Kim 460898f11c
Migrated from grpc_error_string to grpc_error_std_string (#26068)
* Added grpc_error_std_string
* Migrated to grpc_error_std_string
2021-04-23 16:31:54 -07:00
Esun Kim ca945a58e9
Introduced grpc_error_handle (#25902)
- Define grpc_error_handle
- Replace grpc_error* with grpc_error_handle
2021-04-22 12:00:28 -07:00
donnadionne 89f7e53dbc
Fixing flake in AllServerUnavailbleFailFast by increasing the RPC (#26015)
timeout from 1 second to 5: this ensures there is enough time for
communication with xDS server to get established.
2021-04-21 10:35:00 -07:00
donnadionne 5bce484c35
Fixing a buildifier warning, helping with future imports. (#26036) 2021-04-21 10:34:47 -07:00
Mark D. Roth feff79abc7
add test-only channel arg to set per-channel xDS bootstrap config (#25936)
* pass XdsClient to LB policies via channel args

* add channel arg for overriding bootstrap config on a per-channel basis

* change tests to use new channel arg approach -- currently failing for server-side tests

* use the same channel args approach on the server side

* clang-format

* fix CircuitBreakingMultipleChannelsShareCallCounter test

* fix XdsEnabledServerTest test

* add TODO

* clang-format

* generate_projects

* fix clang-tidy

* fix build

* attempt to fix python
2021-04-21 10:16:33 -07:00
Lidi Zheng 3a19648100
Increase RPCs in fault injection tests (#25984) 2021-04-16 14:37:28 -07:00
Lidi Zheng 2210819f85
Remove _xds suffix Bazel rules completely (#25980)
* Reduce the usage of _xds Bazel rules

* Inject DISABLED_XDS_PROTO_IN_CC to admin_services_end2end_test

* Remove _xds suffix Bazel rules completely

* Remove the _xds rules from imports

* Simplify the ifndef usage in admin_services_end2end_test
2021-04-15 12:50:00 -07:00
Yash Tibrewal 8028cc874d Reduce XdsServerFilterChainMatchTest flakiness (#25956) 2021-04-13 14:31:07 -07:00
Yash Tibrewal 3409eddcd1
xds-end2end-test server-side LDS updates cleanup (#25906) 2021-04-07 12:29:47 -07:00
Lidi Zheng 8eaaa3d7b6
Make ADS timeout increase from 500 to 2000 (#25844) 2021-04-01 12:03:55 -07:00
Yash Tibrewal 67886fbffa
xds_end2end_test ipv6 address format fix (#25837)
* xds_end2end_test ipv6 address format fix

* Update expected error string
2021-03-29 15:40:11 -07:00
Yash Tibrewal da6cf22e29
Increase the retry count for XdsServerSecurityTest (#25830) 2021-03-29 14:43:04 -07:00
Yash Tibrewal 53ba4a101e
Implement FilterChainMatch algorithm (#25757)
* Implement FilterChainMatch logic

* Add tests for transport protocol too

* Tests for duplicate NACKing

* Introduce ConnectionManager as an interface for config fetchers

* Do not parameterize IncrementIfNonZero

* Some formatting

* Reviewer comments

* Add filter chain match information for duplicate match error

* Reviewer comments

* Some cleanup

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Clang-tidy
2021-03-25 14:12:46 -07:00
Lidi Zheng 3652ec5db9
Apply the xds-specific Bazel rule to admin API (#25799) 2021-03-23 17:55:33 -07:00
donnadionne 4350d18d0f
Removing circuit_breaking and timeout environment variable guard to (#25793)
enable these features by default.
2021-03-23 17:04:46 -07:00
Lidi Zheng 4baf35f314
Remove fault injection environmental variable guard (#25792)
* Remove fault injection env guard

* Add the RejectsHttpFilterWithoutConfig test back
2021-03-23 16:49:30 -07:00
Lidi Zheng b457f43227
Implement C++ Admin Interface API (#25753)
* Implement C++ Admin Interface API

* Address reviewer's requests

* Remove static asserts for raw pointers

* Make sanity tests happy

* Windows: pacify conflict between ifndef and macros

* Disable admin services test on iOS

* Make iOS happy by:

* Letting grpcpp_admin conditionally depend on grpcpp_csds

* Fix an unexpected side-effect of dependency update
2021-03-23 09:53:12 -07:00
Lidi Zheng 1040fbdb9f
Re-introduce "CSDS Implementation" (#25762)
* Revert "Revert "CSDS Implementation (#25038)" (#25745)"

This reverts commit 98fd4e1e36.

* Add xDS special Bazel build rules

* Add 2 todos to remove the added rules
2021-03-22 13:14:19 -07:00
Lidi Zheng 98fd4e1e36
Revert "CSDS Implementation (#25038)" (#25745)
This reverts commit 27de24a38e.
2021-03-17 13:38:47 -07:00
donnadionne 26fd0ce3c9
Generating hash for ring_hash policy (#25415) 2021-03-16 18:24:35 -07:00
Lidi Zheng 27de24a38e
CSDS Implementation (#25038)
* Implement the xDS Config Dump as CSDS in Core

* Revemp the logic of caching and constructing the CSDS response
* Unref created error
* Fix the clang tidy complains
* Resolve comments about symbol preload and Json ctor
* Improve readability
* Merge with new ADS logic && support latest CSDS
  * Refactor the version/client_status logic
  * Add support for error_state
  * Add support for does_not_exist
  * Add node information
* Fix the ProtoBuf segfault
* More test cases
* Refactor to use bytes as cache instead of JSON

* Apply clang_tidy's suggestion

* Resolve reviewer's requests

* Tiny stylish fixes && make sanity test happy

* WIP: still working on the matchers

* Update a bunch of matchers

* Improve readability a bit

* Resolve reviewer's suggestions

* Resolve reviewer's comments

* Make Unpack fail fast
2021-03-16 18:17:37 -07:00
Yash Tibrewal a622fe2c97
xDS LDS parsing changes: NACK on use_original_dst (#25687)
* xDS LDS parsing changes: NACK on use_original_dst

* Reviewer comments

* Unused variable
2021-03-16 10:36:04 -07:00
Yash Tibrewal 7021b72d1f
Revert Revert Xds Status Notifier (#25718)
* Revert "Revert "xDS status notifier (#25321)" (#25702)"

This reverts commit 3c9f3972e3.

* Remove connection from map when OnClose is not registered

* Reviewer comments
2021-03-15 14:29:06 -07:00
Yash Tibrewal 3c9f3972e3
Revert "xDS status notifier (#25321)" (#25702)
This reverts commit 81e90432e1.
2021-03-12 08:54:34 -08:00
Mark D. Roth d2c2d66a03
xds: Ignore HTTP filters if LDS resource is v2. (#25694) 2021-03-11 17:05:16 -08:00
Lidi Zheng e34b0a73c6
Fix a typo in fault injection (#25693) 2021-03-11 14:47:39 -08:00
Yash Tibrewal e7536952a3
Filters parsing logic for servers (#25609)
* Filters parsing logic for servers
2021-03-10 21:30:37 -08:00
Yash Tibrewal 0e0bc355ce
xDS changes for server listener resource name template (#24965)
* xDS: Server listener resource name template changes

* Reviewer comments
2021-03-10 15:35:41 -08:00
Yash Tibrewal 8d95aad50c
Channelz security changes - Follow up from #25593 (#25624) 2021-03-10 10:36:11 -08:00
Esun Kim a41a206b8c
Fix readability-const-return-type,readability-delete-null-pointer,readability-simplify-boolean-expr (#25628) 2021-03-09 21:30:35 -08:00
Lidi Zheng 3b067c9f3f
Implement xDS client-side fault injection filter (#24354)
* Refactored with dynamic filters
* Error-tolerance tuned
* Fix leak of grpc_error and data race of canceller
* Adopt the latest xDS HTTP filter framework
* Fix fault injection tests' conflict with router filter
* Test alternative setup (override, no-override) without copy
* Refactor file strcutures of fault injection filter
* Rewrite the Json parsing/assembling logic again
* Added logic for aborting streaming RPC && resolve comments
2021-03-09 13:14:21 -08:00
Mark D. Roth 5d3fe59a5f
xds: Fix handling of HTTP filter that does not set typed_config. (#25651)
* xds: Fix handling of HTTP filter that does not set typed_config.

* same change for typed_per_filter_config
2021-03-09 12:37:47 -08:00
Yash Tibrewal 1c59e178f2
Some environments support only IPv6 addresses - followup from #25321 (#25656) 2021-03-09 10:32:10 -08:00
Yash Tibrewal 81e90432e1
xDS status notifier (#25321)
* Serving status notification for xds enabled servers
2021-03-08 21:47:13 -08:00
Richard Belleville d9903aa44e
Format Channelz Address.TcpIpAddress.address as packed bytes (#25629)
* Move address packing to Core

* Format

* Use absl::Base64Escape

* Update src/core/lib/channel/channelz.cc

Co-authored-by: Yash Tibrewal <yashkt@google.com>

Co-authored-by: Yash Tibrewal <yashkt@google.com>
2021-03-08 17:11:58 -08:00
Yash Tibrewal a214b52998
Disable channelz_service_test for iOS (#25639) 2021-03-05 14:27:30 -08:00
Esun Kim 377fe6095a
Upgrade clang-tidy and clang-format to 11 (#25590)
* Upgrade clang-tidy and clang-format to 11
* Reformat code
* Fix abseil-string-find-str-contains
* Fix modernize-make-unique
2021-03-04 11:54:30 -08:00
Yash Tibrewal abf1e9a3c9
Add missing security field to channelz Socket (#25593)
* Add missing security field to channelz Socket
2021-03-03 23:29:50 -08:00
Jan Tattermusch 65454866da
use linkstatic for libraries that contain main() (#25517) 2021-02-27 07:01:48 +01:00
Mark D. Roth 49601b0334
Second attempt: xDS HTTP filter support for gRPC client (#25558)
* Revert "Revert "xDS HTTP filter support for gRPC client" (#25555)"

This reverts commit 785a128a83.

* xds_end2end_test: avoid flakes from lingering shutdown from previous test
2021-02-26 07:39:27 -08:00
Mark D. Roth d482f1268a
xds_end2end_test: avoid flakes from lingering shutdown from previous test (#25561) 2021-02-26 00:29:37 -08:00
Mark D. Roth 013e339761
xds_end2end_test: improve TestType API (#25557) 2021-02-25 10:55:34 -08:00
donnadionne 785a128a83
Revert "xDS HTTP filter support for gRPC client" (#25555)
This reverts commit b2164837a8.
2021-02-25 07:18:43 -08:00
donnadionne 1835f00ef1
Revert "Revert "Made grpc_core::Mutex compatible to absl::Mutex" (#25537)" (#25549)
This reverts commit 8e268dcec8.
2021-02-24 16:49:34 -08:00
donnadionne 8e268dcec8
Revert "Made grpc_core::Mutex compatible to absl::Mutex" (#25537)
* Revert "Made grpc_core::Mutex compatible to absl::Mutex"

This reverts commit 0b53341328.

* Revert "Added thread annotation (#25486)"

This reverts commit 9d897cb1a5.

* Revert "Fix a race in resolve_address and resolve_address_posix tests"

This reverts commit 6d8e7d3819.

* Restore 25398

* restore 25398
2021-02-24 10:32:49 -08:00
Lidi Zheng fd6f0183e8
Merge pull request #25484 from lidizheng/fix-typo-in-bootstrap
Fix a typo in xDS bootstrap parsing
2021-02-17 17:58:09 -08:00
Lidi Zheng 2efd2d5216 Fix a typo in xDS bootstrap parsing 2021-02-17 16:10:34 -08:00
Vijay Pai dba8bb59a0 Implement callback CQ at C++ layer using shared thread pool if non-background iomgr 2021-02-16 16:02:23 -08:00
Esun Kim 8b2bd69ef3
Merge pull request #25387 from veblush/mutex-cpp
Made grpc::internal::Mutex compatible to absl::Mutex
2021-02-12 11:55:44 -08:00
Esun Kim 6468d8a69d Make grpcpp/mutex compatible absl/mutex 2021-02-11 15:02:42 -08:00
Mark D. Roth b2164837a8 xDS HTTP filter support for gRPC client 2021-02-11 13:17:15 -08:00
Esun Kim 8efa9f9142
Merge pull request #25404 from veblush/mutex-api2
Fix-forward: Made grpc_core::Mutex compatible to absl::Mutex
2021-02-11 10:19:33 -08:00
Yash Tibrewal 7c8defd5c9
Merge pull request #25377 from yashykt/removedisrespecfulterm2
Replace disrespectful term
2021-02-10 15:20:27 -08:00
Esun Kim 0b53341328 Made grpc_core::Mutex compatible to absl::Mutex 2021-02-10 09:56:55 -08:00
Esun Kim 6dc1748f6c
Revert "Made grpc_core::Mutex compatible to absl::Mutex" 2021-02-10 07:53:02 -08:00
Yash Tibrewal 15779f7b91
Merge pull request #25380 from yashykt/removedisrespecfulterm3
Replace disrespectful words
2021-02-09 12:07:25 -08:00
Esun Kim 6f339894f1
Merge pull request #25325 from veblush/mutex-api
Made grpc_core::Mutex compatible to absl::Mutex
2021-02-08 23:08:39 -08:00
Esun Kim 6a1518bd22 Made grpc_core::Mutex compatible to absl::Mutex 2021-02-08 16:15:53 -08:00
Yash Tibrewal f4e55b85bc Replace disrespectful term 2021-02-08 15:29:53 -08:00
Yash Tibrewal 7a5288d2a0 Replace disrespectful words 2021-02-08 14:29:18 -08:00
Donna Dionne cdd8a4ba87 Change xds_cluster_resolver LB policy config to support combined
locality and endpoint picking policies
2021-02-04 22:42:52 -08:00
Mark D. Roth 4dc84aea46
Merge pull request #25329 from markdroth/xds_ads_parsing
xds: Change ADS parsing to not stop at the first error
2021-02-03 14:59:29 -08:00
Mark D. Roth 044ea22d41
Merge pull request #25338 from markdroth/xds_v3
xds: Remove env-var protection for xDS v3 support.
2021-02-03 14:52:32 -08:00
Mark D. Roth 0f9af3c045 xds: Change ADS parsing to not stop at the first error 2021-02-03 12:27:44 -08:00
Mark D. Roth 30086244c1
Merge pull request #25335 from markdroth/xds_test_fix
Fix fake xDS server bug that caused unnecessary round trips in NACK tests
2021-02-03 12:26:48 -08:00
Mark D. Roth bfd230c29c xds: Remove env-var protection for xDS v3 support. 2021-02-03 11:23:45 -08:00
Mark D. Roth 60204d9e16 Fix fake xDS server bug that caused unnecessary round trips in NACK tests. 2021-02-03 08:29:06 -08:00
Donna Dionne 07d51a4d12 Fixing Logical DNS case:
override child policy with pick_first
set ignore_reresolution to false
ensure ExitIdleLock happens at every level of policy
2021-02-02 10:39:38 -08:00
Yash Tibrewal 88086a57a4 Fix xds_end2end_test for ipv6 only platforms 2021-01-28 13:44:48 -08:00
Mark D. Roth e6c5554b0e
Merge pull request #25283 from markdroth/xds_nack_fix
Fix NACK detection in test xDS server.
2021-01-28 07:28:50 -08:00
Mark D. Roth 958c8e15f7 Fix NACK detection in test xDS server. 2021-01-27 11:53:52 -08:00
Esun Kim be761cd430 Fixed sign-compare warnings 2021-01-27 11:16:18 -08:00
Donna Dionne 19b1f8f64a Cds Watchers changes to support aggregate Cds and Logical DNS Cds. 2021-01-21 14:25:50 -08:00
Esun Kim 669e859f7a Fix more unused-parameter warning 2021-01-21 10:30:16 -08:00
Esun Kim 9eae29f8e9
Merge pull request #25134 from veblush/fix-unused-parameter
Fix unused parameter warnings
2021-01-21 10:08:09 -08:00
donnadionne d0f46266c5
Merge pull request #25178 from donnadionne/present
Add Missing test case: present match
2021-01-20 16:15:46 -08:00
Mark D. Roth 5b5e3f84a1
Merge pull request #25214 from markdroth/xds_bootstrap_env_var
Add ability to read xDS bootstrap config from an env var.
2021-01-20 14:34:59 -08:00
Zhouyihai Ding 6f6bdd03e6
Merge pull request #25175 from ZhouyihaiDing/callback_add_context
Support ServerContext for callback API
2021-01-20 11:52:02 -08:00
Mark D. Roth 42f123efbe Add ability to read xDS bootstrap config from an env var. 2021-01-20 11:00:27 -08:00
Esun Kim 0db0ab052d Update by review 2021-01-20 10:44:14 -08:00
ZhouyihaiDing a584bc4f02 Support ServerContext for callback API 2021-01-19 22:00:10 -08:00
Esun Kim 9bd7c4917a Fix unused-parameter warning 2021-01-19 18:18:09 -08:00
Yash Tibrewal d007862824
Merge pull request #25154 from yashykt/xdsend2endtestflakefix
Fix xds_end2end_test flakiness
2021-01-19 13:03:24 -08:00
Yash Tibrewal 0406f3ba42 Fix xds_end2end_test msan flake 2021-01-19 11:18:21 -08:00
Yash Tibrewal be34f56895
Merge pull request #25179 from yashykt/xdsend2endtestfix
Fix end2end test for ipv6 only platforms
2021-01-17 13:42:11 -08:00
Yash Tibrewal 60891587bb Fix end2end test for ipv6 only platforms 2021-01-15 18:35:48 -08:00
Donna Dionne 83d6d96c86 Add Missing test case: present match
Interop reported an error for a present match and it is discovered this
case is missing from unit test.  We have test for present (false) and we
have special case test but we don't have the normal present (true) test.

We also had a bug in a our code:
if (!value.has_value()) {
    if (header_matcher.type ==
        XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::PRESENT) {
      return !header_matcher.present_match;
    } else {
      // For all other header matcher types, we need the header value to
      // exist to consider matches.
      return false;
    }
  }
  switch (header_matcher.type) {
    case XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::EXACT:
      return value.value() == header_matcher.string_matcher;
    case XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::REGEX:
      return RE2::FullMatch(value.value().data(), *header_matcher.regex_match);
    case XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::RANGE:
      int64_t int_value;
      if (!absl::SimpleAtoi(value.value(), &int_value)) {
        return false;
      }
      return int_value >= header_matcher.range_start &&
             int_value < header_matcher.range_end;
    case XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::PREFIX:
      return absl::StartsWith(value.value(), header_matcher.string_matcher);
    case XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::SUFFIX:
      return absl::EndsWith(value.value(), header_matcher.string_matcher);
    default:
      return false;
  }

Note if header has value, we will go into the swtich but there is no case
XdsApi::Route::Matchers::HeaderMatcher::HeaderMatcherType::PRESENT,
which means we would have gone into default and decleared not a match.

The same day this bug was discovered by interop test, https://github.com/grpc/grpc/pull/25122
was submitted and the refactoring fixed the bug.

Nevertheless, I added the test case for the future.
2021-01-15 17:50:29 -08:00
donnadionne d17ef6be04
Merge pull request #25139 from donnadionne/switch_bug
Fixing TryNextPrioirtyLocked to ensure we properly try higher priorities when lower ones fail
2021-01-15 17:09:55 -08:00
Ashitha Santhosh 4ca878799b Refactor [String/Header/Path]matchers in xds_api. 2021-01-15 12:32:54 -08:00
Donna Dionne 4715bbc220 Fixing TryNextPrioirtyLocked to ensure we properly try higher priorities when lower ones fail 2021-01-14 16:07:42 -08:00
Yash Tibrewal ac4f4de196 xDS server config fetcher 2021-01-14 14:27:51 -08:00
Mark D. Roth 8ddbc50272 change xDS certificate provider to contain a map by cluster 2021-01-12 10:51:50 -08:00
Donna Dionne 5c1834e8db A previous fix which changed grpc_cycle_counter_to_millis_round_down/up
was not the correct fix and caused window test issues.

The correct fix is to ensure the test uses the same time apis as the
product code: grp_get_cycle_counter (which is platform dependent) to get
current time.

Tested both in open source and patched into google3 to ensure successful
import:
https://critique-ng.corp.google.com/cl/349981071/analysis
2021-01-06 18:26:54 -08:00
Mark D. Roth 1bc2d7d1a6 Remove StringLess and src/core/lib/gprpp/map.h. 2021-01-05 09:47:42 -08:00
Yash Tibrewal 9c043baf49 Allow the channelz service test to get different listen socket sizes 2020-12-21 12:57:10 -08:00
Mark D. Roth 55154ce24c
Merge pull request #25032 from markdroth/xds_weighted_cluster_weight_0_fix
xds: Ignore WeightedCluster entries with weight 0.
2020-12-21 08:32:25 -08:00
Mark D. Roth a38d6c641f xds: Ignore WeightedCluster entries with weight 0. 2020-12-17 16:00:47 -08:00
Yash Tibrewal 4105d2ce20 XdsServerBuilder, config fetching per resolved address and delaying bind/listen till fetch is complete 2020-12-16 12:15:52 -08:00
Donna Dionne 4f8ed98f3e Xds cluster resolver
Implemented new xds cluster resolver config
Separated policy and discovery mechanism
2020-12-14 16:05:15 -08:00
Yash Tibrewal c9e99945ec Add SANs matching for xDS credentials 2020-12-08 15:15:39 -08:00
ZhenLian 551009be68
Merge pull request #24805 from ZhenLian/zhen_dynamic_file_reloading_7
refactor PemKeyCertPair to take absl::string_view
2020-12-08 10:27:58 -08:00
Adam J Heller 91c4cbd51b
Merge pull request #24701 from drfloob/null-byte-uri-components
Convert URI parser to C++
2020-12-07 15:30:31 -08:00
AJ Heller 880a854f0e Convert URI parser to C++ #24701 2020-12-07 12:13:22 -08:00
ZhenLian de4e8a4680 refactor PemKeyCertPair 2020-12-07 12:10:45 -08:00
Mark D. Roth 8c12cc80e8
Merge pull request #24919 from markdroth/client_channel_remove_get_subchannel_call
Remove grpc_client_channel_get_subchannel_call().
2020-12-07 09:27:49 -08:00
Mark D. Roth e4faf1945d Remove grpc_client_channel_get_subchannel_call(). 2020-12-05 15:44:50 -08:00
Esun Kim 53ab235fb8 Fix google-explicit-constructor 2020-12-03 15:03:39 -08:00
Esun Kim 6c440e820b
Merge pull request #24841 from veblush/tidy-google-readability-casting
[Clang-Tidy] google-readability-casting
2020-12-03 14:49:45 -08:00
Mark D. Roth 0a84a1d0c7
Merge pull request #24813 from markdroth/client_channel_split1
Use separate mutexes and call queues for resolution and load balancing
2020-12-03 14:40:07 -08:00
Mark D. Roth a9d30fece6 Use separate mutexes and call queues for resolution and load balancing 2020-12-03 11:19:35 -08:00
Yash Tibrewal a6d9e49f27
Merge pull request #24843 from yashykt/insecureservercreds
Experimental API for xDS server credentials
2020-12-03 03:05:34 -08:00
Yash Tibrewal 096b2324e1 Experimental API for XdsServerCredentials 2020-12-01 12:47:52 -08:00
Yash Tibrewal b08861b60f Register certificate provider factories after init 2020-12-01 12:17:12 -08:00
Esun Kim 2ff84ed8c2 C++ cast for void* 2020-11-30 17:29:15 -08:00
Esun Kim ec0b88a5d7 Fix google-readability-casting 2020-11-30 17:27:51 -08:00
Yash Tibrewal f635d9deeb xds_end2end_test cleanup from #24643 2020-11-30 16:10:27 -08:00
Yash Tibrewal d7907e6ba1
Merge pull request #24835 from yashykt/filewatcherprovider
Update file watcher certificate provider factory with provider implementation
2020-11-30 15:42:31 -08:00
Esun Kim 75e3e660fd Fix google-readability-todo 2020-11-25 10:09:42 -08:00
Yash Tibrewal 82b158f249 Update file watcher certificate provider factory with provider implementation 2020-11-24 23:48:18 -08:00
Esun Kim c028e2f5cd Fix bugprone-integer-division 2020-11-24 13:15:31 -08:00
Yash Tibrewal ee2480abbd Add missing check_config release 2020-11-24 00:22:37 -08:00
Yash Tibrewal 33b4911a50 xDS client security integration 2020-11-20 17:37:27 -08:00
Mark D. Roth 07016f8191 Move resource generation out of ADS impl and into test suite class. 2020-11-13 16:14:43 -08:00
Donna Dionne 2dc58be3b5 Protect timeout feature under a flag and added testing. 2020-11-10 11:15:54 -08:00
Yang Gao 4ac9c6f755
Merge pull request #24693 from yang-g/remove_log
Remove hack for Xcode 10
2020-11-09 10:59:25 -08:00
Mark D. Roth 27e1c1c56d clang-tidy: enable google-readability-braces-around-statements 2020-11-06 13:41:44 -08:00
yang-g ec074a0df9 Remove hack for Xcode 10 2020-11-06 11:16:51 -08:00
capstan 131579d52d Roll forward of commit 7883b51: Use abseil's flags in tests.
This replaces gflags. Added TODOs where use of `absl::Duration` or `absl::FlagSaver` might be preferred in follow-up cleanup. Fixes #24493.

This reverts commit da66b7d14e.

NEW:
* Adds references to `absl/flags/declare.h`, new to LTS 2020923.2 imported in commit 5b43440.
* Works around MSVC 2017 compiler error with large help text on flags by reducing the help text.
2020-11-06 16:07:19 +01:00
Esun Kim 38472186b1 Disable XdsRoutingApplyXdsTimeout under Asan too 2020-10-29 12:00:36 -07:00
Richard Belleville 2ad3c0a041 Revert "Merge pull request #24568 from veblush/test-xds-abseil"
This reverts commit 9083de5017, reversing
changes made to 913760a6a9.
2020-10-28 15:22:20 -07:00
Richard Belleville acb198b961
Merge pull request #24585 from gnossen/fix_unused_return_value
Avoid internal build failure
2020-10-28 10:11:34 -07:00
Esun Kim dc9ef8fc39 Enable XdsRoutingApplyXdsTimeout again under TSAN 2020-10-27 19:48:48 -07:00
Richard Belleville 6ec512d0f1 Avoid internal build failure 2020-10-27 16:08:11 -07:00
Nathan Herring da66b7d14e
Revert "Abseil Flags" 2020-10-24 15:19:55 -07:00
Esun Kim 3528a40fe5
Merge pull request #24506 from Capstan/absl-flags
Abseil Flags
2020-10-23 21:07:21 -07:00
Yang Gao 01596014af
Merge pull request #24521 from yang-g/ip46
Check localhost is resolved to ipv4 or ipv6 and update test accordingly.
2020-10-23 16:30:17 -07:00
yang-g 8456e2138a Check localhost is resolved to ipv4 or ipv6 and update test accordingly. 2020-10-23 14:38:36 -07:00
Esun Kim 2089785b62 Disable XdsRoutingApplyXdsTimeout test under TSAN 2020-10-23 13:50:20 -07:00
capstan 7883b5133d Use abseil's flags in tests.
This replaces gflags. Added TODOs where use of `absl::Duration` or `absl::FlagSaver` might be preferred in follow-up cleanup. Fixes #24493.
2020-10-23 19:36:33 +02:00
Mark D. Roth ededb8e173
Merge pull request #24516 from markdroth/xds_nack_status
xds: Set status code to INVALID_ARGUMENT when NACKing.
2020-10-22 13:46:02 -07:00
Mark D. Roth 1f95593de7 xds: Set status code to INVALID_ARGUMENT when NACKing. 2020-10-21 14:09:50 -07:00
Yash Tibrewal 02ca015b13 Experimental support and tests for CreateCustomInsecureChannelWithInterceptorsFromFd 2020-10-21 13:34:26 -07:00
Mark D. Roth 8e84e63a83
Merge pull request #24481 from markdroth/xds_circuit_breaking_global_atomic
Use a global atomic for circuit breaking call counter.
2020-10-20 14:22:54 -07:00
Esun Kim aae4f4cf18 Fix by misc-unused-using-decls 2020-10-19 18:12:11 -07:00
Mark D. Roth b607080400 Use a global atomic for circuit breaking call counter. 2020-10-19 15:15:32 -07:00
Esun Kim bba8facb4a
Merge pull request #24456 from veblush/tidy-readability-redundant-smartptr-get
[Clang-Tidy] readability-redundant-smartptr-get
2020-10-19 09:54:15 -07:00
Mark D. Roth 1bb28c90b2
Merge pull request #24436 from markdroth/xds_resource_version
Fix xDS resource type version to persist across stream restarts.
2020-10-19 08:41:50 -07:00
Esun Kim 84df61b31a
Merge pull request #24453 from veblush/tidy-modernize-make-unique
[Clang-Tidy] Enable modernize-make-unique
2020-10-16 16:35:08 -07:00
Esun Kim 946ed32bac
Merge pull request #24454 from veblush/tidy-modernize-use-override
[Clang-Tidy] modernize-use-override
2020-10-16 16:33:29 -07:00
Mark D. Roth bce7bc78ab Fix xDS resource type version to persist across stream restarts. 2020-10-16 14:55:28 -07:00
Mark D. Roth dbe76ce6fd
Merge pull request #24434 from markdroth/xds_resource_version_test
Fix ADS server resource type version logic and refactor code.
2020-10-16 14:52:42 -07:00
Esun Kim 3fef4e7435 Fix by readability-redundant-smartptr-get 2020-10-16 14:16:42 -07:00
Esun Kim e7434d385e Fix by tidy-modernize-use-override 2020-10-16 14:01:06 -07:00
donnadionne ad66015c85
Merge pull request #24328 from donnadionne/timeout
Setting timeout in method config.
2020-10-16 13:43:25 -07:00
Esun Kim 6ae8463500 Fix by modernize-make-unique 2020-10-16 13:30:56 -07:00
Esun Kim f3cedfd357
Merge pull request #24437 from veblush/clang-tidy-abseil
[Clang-Tidy] Enable abseil-*
2020-10-16 12:21:51 -07:00
Donna Dionne a3ce1f745a Setting timeout in method config. 2020-10-16 11:37:52 -07:00
Mark D. Roth 63546c0faf Fix ADS server resource type version logic and refactor code. 2020-10-16 11:18:49 -07:00
Esun Kim ece76ee1e8 Fix code by readability-container-size-empty 2020-10-16 09:48:20 -07:00
Esun Kim a51fe3e675 Fix abseil-* clang-tidy errors 2020-10-16 09:39:41 -07:00
Esun Kim 09ace01cc1
Merge pull request #24193 from veblush/clang-tidy
Improve clang tidy to use compilation DB
2020-10-15 15:46:13 -07:00
Donna Dionne 5a25a427b5 Protecting the circuit breaking (drop action) using environment
variable. All the logic of refcounting are left but will not result in
any actions.  Test added to test protected case.
2020-10-13 10:04:13 -07:00
Esun Kim 6d6648c7e1 Fix clang-tidy errors 2020-10-13 09:51:31 -07:00
Mark D. Roth 50ed78d1f9
Merge pull request #24395 from markdroth/xds_load_stats_refs
Use a single instance of the drop and locality stats objects.
2020-10-12 16:47:06 -07:00
Mark D. Roth a6954fe39e Use a single instance of the drop and locality stats objects. 2020-10-12 14:14:52 -07:00
Mark D. Roth caf798e9ab xds: Add support for case_sensitive option in RouteMatch. 2020-10-09 14:49:23 -07:00
Yash Tibrewal 4013fd9dc9
Merge pull request #24313 from yashykt/xdscredscpp
C++ API to create Xds channel credentials
2020-10-08 22:27:21 -07:00
Yash Tibrewal c52cb09f47 Add experimental XdsCredentials with support for insecure channel_credentials and security_connector 2020-10-08 20:37:47 -07:00
Esun Kim 8e9e895ffc Replace grpc_shutdown_blocking with grpc_shutdown 2020-10-08 10:57:05 -07:00
Vijay Pai 37a09aaae3 Remove unused experimental stub format 2020-10-06 17:41:20 -07:00
Mark D. Roth 799e805e8a Move locality load reporting to EDS policy. 2020-10-02 11:16:01 -07:00
Mark D. Roth 8c142a1d8c
Merge pull request #24299 from markdroth/xds_test_crash_fix
Don't try to use global xds channel args after they've been destroyed.
2020-10-01 09:59:17 -07:00
Mark D. Roth dcc94158ac Don't try to use global xds channel args after they've been destroyed. 2020-10-01 07:10:32 -07:00
Donna Dionne ea4cb41bd2 Remove unused variable. 2020-09-30 10:08:56 -07:00
Mark D. Roth 537467eb0e
Merge pull request #24258 from markdroth/service_config_parser_channel_args
Allow channel args to modify service config parsing behavior.
2020-09-30 08:17:46 -07:00
Donna Dionne e7d7b7de86 xDS circuit breaking support 2020-09-29 14:47:39 -07:00
Mark D. Roth b62d5c7eaa Allow channel args to modify service config parsing behavior. 2020-09-29 13:13:26 -07:00
Mark D. Roth efb38591ac
Merge pull request #24239 from markdroth/xds_client_shared
Share XdsClient between channels
2020-09-28 08:07:02 -07:00
Mark D. Roth 1ba51dcb1a Share XdsClient between channels. 2020-09-27 15:26:28 -07:00
Mark D. Roth 2fe1a5cd0a Add missing const_cast<>. 2020-09-25 10:00:32 -07:00
Mark D. Roth 5e30156069
Merge pull request #24201 from markdroth/xds_client_no_parent_channel_args
Stop propagating parent channel args into xDS channel.
2020-09-25 07:49:25 -07:00
Esun Kim 1c7d5b5299 Fix MSAN adjustment 2020-09-23 18:22:10 -07:00
Mark D. Roth 7baf55e473 Stop propagating parent channel args into xDS channel. 2020-09-23 15:09:07 -07:00
Mark D. Roth 6ea7e4dd16 Fix channel to apply new ConfigSelector even if ServiceConfig hasn't changed. 2020-09-18 18:05:37 -07:00
Mark D. Roth f7a72b040d Pass address to CreateSubchannel() and expose attributes in SubchannelInterface. 2020-09-17 14:51:25 -07:00
Mark D. Roth a11e4df082
Merge pull request #24114 from markdroth/config_selector_error_handling2
Simplify service config processing and fix config selector handling.
2020-09-16 15:04:59 -07:00
Mark D. Roth 4bb00c25c0 Fix cut-and-paste error and change test to catch this kind of bug. 2020-09-16 10:12:12 -07:00
Mark D. Roth 84c8f7051a Simplify service config processing and fix config selector handling. 2020-09-15 16:49:52 -07:00
Mark D. Roth 5107e65a93 Stop setting PROXYLESS_CLIENT_HOSTNAME node metadata in LRS request. 2020-09-15 14:55:17 -07:00
Donna Dionne fa4f131a85 Increasing failover time to avoid errors like
I0914 19:15:38.606657832 40 priority.cc:658] [priority_lb 0x611000009b40] child child2 (0x613001702bc0): failover timer fired, reporting TRANSIENT_FAILURE

Should prevent flakes in InitialUnavailable tests

Note: test had to be modified to reproduce more easily, will monitor the
test after this fix to ensure problem does not appear again.
2020-09-15 10:47:54 -07:00
Mark D. Roth ae0cc5052b
Merge pull request #24150 from markdroth/xds_eds_duplicate_update_fix
Fix EDS update equality check.
2020-09-15 07:32:52 -07:00
Mark D. Roth 414405d6ae Fix EDS update equality check. 2020-09-14 16:40:56 -07:00
Donna Dionne 5c242f0577 Fixing flake in DeadUpdate
It is observed that ADS is shutdown, but it's possible that
a request still comes in.

This request should not update the ADS resource_type_response_state_ as
they were cleared by the shutdown.

This fix ensures this.
2020-09-13 12:51:37 -07:00
Donna Dionne ffb560090a Moving XDS Routing functionalities from LB policy into XdsConfigSelector 2020-09-11 15:44:10 -07:00
Donna Dionne 2d10cd4d26 Ensure SendRpc is not called without checking return value; use
CheckRpcSendOk to wrap it.
2020-09-09 17:37:00 -07:00
Donna Dionne 1b1a41df5d New Tests to guard against regression when routing and weighted target
logic are moved from policies to XdsConfigSelector:

1. Cluster update test: we never had a test that explicitly updated
clusters multiple times.
2. A cluster update test that includes long running RPCs, in particular,
RPCs not yet committed.
2020-09-08 12:20:56 -07:00
Mark D. Roth 5adf794eec Increase polling timeout for NoMatchedDomain test. 2020-08-25 07:18:52 -07:00
Mark D. Roth 91b698d232 Revert "Merge pull request #23969 from grpc/revert-23918-xds_virtual_host_validation"
This reverts commit 13b5f0b625, reversing
changes made to 9ea2d7c89d.
2020-08-25 07:03:28 -07:00
donnadionne 4cb21ff819
Revert "xds: Don't identify the needed VirtualHost at validation time." 2020-08-24 21:46:00 -07:00
Mark D. Roth b0a8b4606c xds: Don't identify the needed VirtualHost at validation time. 2020-08-21 11:39:35 -07:00
Mark D. Roth 9a39f172a6 xds: NACK if response includes duplicate resource names. 2020-08-20 16:17:57 -07:00
Jan Tattermusch afda101854 cleanup bazel commands in test scripts (for non-RBE invocations) 2020-08-20 12:22:09 +02:00
Donna Dionne dc7f926b9e Fixing the transient failure that occurs during the case
where CDS response missing a resource that we have newly requested
(the resource will likely be contained in subsequent responses).
2020-08-19 10:25:02 -07:00
Mark D. Roth bd73844208 Move parse_address library from client_channel to iomgr. 2020-08-18 11:23:06 -07:00
Yash Tibrewal bef69db1a6 A bit of cleanup 2020-08-17 16:24:40 -07:00
Vijay Pai c2d2220ba5 Make MaybeExpect guarantee at-most-once and allow Verify reuse 2020-08-14 10:30:48 -07:00
Karthik Ravi Shankar cfd1069ae0 Fix formatting 2020-08-13 14:25:43 -07:00
Karthik Ravi Shankar 242b1b87f8 Merge branch 'master' into flaky-fix 2020-08-13 14:25:27 -07:00
Vijay Pai 6040d621bd Fix destruction order bug in nested lock test 2020-08-12 09:44:49 -07:00
Karthik Ravi Shankar 218c5fd235 Mark client_crash_test as flaky
This test fails under asan.
2020-08-11 16:00:13 -07:00
Mark D. Roth d926e1ca47 Move XdsClient code out of client_channel tree. 2020-08-07 08:21:09 -07:00
Yash Tibrewal d35c1c13cd
Merge pull request #23636 from yashykt/settingsdeadline
Receive SETTINGS frame on clients before declaring subchannel READY
2020-08-03 14:04:02 -07:00
Yash Tibrewal e310d4366c Receive SETTINGS frame on clients before declaring subchannel READY 2020-07-31 02:01:40 -07:00
ashithasantosh cd9a127502
Merge pull request #23489 from michaelywg/endpoint_local_accessor
modified grpc_endpoint vtable and implementations
2020-07-30 13:54:16 -07:00
Esun Kim 79adbe59d5
Merge pull request #23673 from veblush/msan-fix
Add TestEnvironment to tests
2020-07-29 21:20:59 -07:00
Esun Kim f2374fb591 Add TestEnvironment to tests 2020-07-29 19:29:55 -07:00
Donna Dionne 33c128e99e Fixing a flaky test in ClientLoadReportingWithDropTest 2020-07-29 17:27:23 -07:00
Mark D. Roth 60283a1085
Merge pull request #23582 from markdroth/grpclb_authority
Remove TargetAuthorityTable in favor of a per-address channel arg.
2020-07-29 15:18:13 -07:00
Michael Wang c6586f087f implemented get_local_address accessor for grpc_endpoint 2020-07-29 19:39:22 +00:00
Vijay Pai 5488e7b5cd
Merge pull request #23478 from grpc/vjpai-patch-1-1
Avoid unused variables
2020-07-28 12:51:49 -07:00
Vijay Pai 9c5a39c6db Revert "Merge pull request #23361 from vjpai/em_agnostic_core_callback_cq"
This reverts commit a46cb5e86a, reversing
changes made to b5d42e75fb.
2020-07-28 09:55:43 -07:00
Vijay Pai bcb6530717 Revert "Merge pull request #23430 from vjpai/remove_do_not_test"
This reverts commit 08d737abf8, reversing
changes made to 6dc44b33c7.
2020-07-28 09:55:17 -07:00
Mark D. Roth 181781387d xDS v3 support 2020-07-23 10:20:55 -07:00
Mark D. Roth c35a37d6c2 Remove TargetAuthorityTable in favor of a per-address channel arg. 2020-07-23 08:23:05 -07:00
Donna Dionne 0d6ee9b309 Implement fake and ignored headers.
Take care to ensure we use fake headers in testing so we don't
conflict with headers used by census.
2020-07-20 12:34:02 -07:00
Mark D. Roth e681f37054 Remove env var protection of new xds routing code. 2020-07-20 07:59:07 -07:00
Karthik Ravi Shankar d7565c37a8 Revert "Adding Fake headers for header matching."
This reverts commit 8c013bfcdc.
2020-07-17 16:39:05 -07:00
Mark D. Roth fc5bd60f16 Concatenate duplicate header keys for matching. 2020-07-15 15:48:32 -07:00
Donna Dionne 8c013bfcdc Adding Fake headers for header matching. 2020-07-15 13:14:19 -07:00
Vijay Pai 612a3dfa10
clang-format 2020-07-14 14:10:54 -07:00
Vijay Pai bec17c1dd3
Avoid unused variables 2020-07-14 14:09:09 -07:00
Vijay Pai d03daab509
Remove unused variable (fixes builder error) 2020-07-09 16:28:14 -07:00
Vijay Pai 08d737abf8
Merge pull request #23430 from vjpai/remove_do_not_test
Remove references to skipping callback API tests
2020-07-09 15:57:35 -07:00
Muxi Yan 3b2e473548
Merge pull request #22345 from muxi/grpclb-name-config
Update grpclb configuration with field "service_name"
2020-07-09 13:32:55 -07:00
Vijay Pai e1a45fb237 Remove references to skipping callback API tests 2020-07-09 11:45:01 -07:00
Muxi Yan 232756e7bf Remove unnecessary RPC 2020-07-09 09:37:05 -07:00
Vijay Pai a46cb5e86a
Merge pull request #23361 from vjpai/em_agnostic_core_callback_cq
EM-agnostic core callback CQ
2020-07-09 09:35:49 -07:00
Vijay Pai 407fdc3a36 Fix data race in RpcWithEarlyFreeRequest by using atomics 2020-07-08 22:18:40 -07:00
Vijay Pai c6c05910c2 Fix data race in RpcWithEarlyFreeRequest by using atomics 2020-07-08 22:17:54 -07:00
Muxi Yan fa28bab456 Address comments 2020-07-08 16:56:21 -07:00
Vijay Pai 7ee2bc6db5 EM-agnostic callback completion queue 2020-07-08 16:12:23 -07:00
Mark D. Roth a5120b90ba
Merge pull request #23417 from markdroth/lb_policy_path
Make request path more easily visible to LB policies.
2020-07-08 14:57:29 -07:00
Vijay Pai 17b4879677
Merge pull request #23416 from vjpai/ccet
Make sure that some test ops don't start concurrently with Finish
2020-07-08 13:39:01 -07:00
Mark D. Roth 7c3fefea3f Make request path more easily visible to LB policies. 2020-07-08 12:12:30 -07:00
Vijay Pai fe2e9d6803 Properly count messages sent 2020-07-08 09:06:47 -07:00
Mark D. Roth 3201d7f7bf
Merge pull request #23157 from markdroth/gpr_asprintf
Replace most uses of gpr_asprintf() with absl calls.
2020-07-07 16:01:48 -07:00
Vijay Pai 0ab6db4fe8 Make sure that some ops don't start concurrently with Finish 2020-07-07 14:48:12 -07:00
Donna Dionne 8dd0cb4712 Add support for xDS regex matchers. 2020-07-07 13:17:25 -07:00
Muxi Yan ec2cd96426 Address comments 2020-07-07 13:13:38 -07:00
Muxi Yan 3f684093d7 Add test for the new config field 2020-07-07 13:13:37 -07:00
Mark D. Roth 9404f66f70 Replace most uses of gpr_asprintf() with absl calls. 2020-07-07 12:01:02 -07:00
Donna Dionne 459b58ae3d Merge remote-tracking branch 'upstream/master' into matcher_new 2020-07-06 12:54:56 -07:00
Esun Kim 8d0e703393
Merge pull request #22813 from mehrdada/fix-static-initialization-crap
Fix channelz plugin initializer
2020-07-06 11:19:05 -07:00
Donna Dionne 60b878d3a5 New Matchers Implementation
- All except for Regex (which will be submitted with RE2 import PR)
2020-07-06 10:54:22 -07:00
yang-g 162fca110c Fix message_allocator_e2e_test 2020-07-01 09:39:14 -07:00
Esun Kim 165ee5007a Replaced grpc::string with std::string 2020-06-29 17:56:36 -07:00
Vijay Pai 84cf666014
Merge pull request #23229 from grpc/revert-23116-revert-23005-asyncwrite
Roll-forward: Fix StartCall: make corking work and allow concurrent Start*
2020-06-17 00:31:56 -07:00
Vijay Pai 7eebba3781 Fixes needed to make roll-forward of StartCall and corking work 2020-06-16 13:06:16 -07:00
Vijay Pai 278671072f
Revert "Revert "Fix StartCall: make corking work and allow concurrent Start*"" 2020-06-16 12:20:19 -07:00
Donna Dionne 97904d77a4 Adding the printing of error message when unexpected status returns. 2020-06-16 11:03:12 -07:00
Vijay Pai a379951943
Merge pull request #23202 from vjpai/flaky
Fix flaky_network_test
2020-06-13 01:12:06 -07:00
Vijay Pai 5a2f60d137 Allow skipping canceled check 2020-06-12 15:29:49 -07:00
Donna Dionne b35b463a08 reject RouteConfiguration with a case-insensitive RouteMatch 2020-06-12 15:19:32 -07:00
Vijay Pai 8c27a5e37e
Merge pull request #23187 from vjpai/end2end
Increase reconnect sleep time in end2end_test to 5x poller interval
2020-06-11 16:37:40 -07:00
Vijay Pai fa1c66852b Increase reconnect sleep time to 5x poller interval 2020-06-11 14:47:53 -07:00
Vijay Pai b269fdbf8b Don't mark server RPC canceled if finished with non-OK status 2020-06-11 10:15:05 -07:00
Mark D. Roth 3f0eb8ae77
Merge pull request #23117 from markdroth/xds_resource_removal_crash_fix
Fix use-after-free bug for ResourceState of unsubscribed RDS resource.
2020-06-03 07:15:17 -07:00
Mark D. Roth 21ee2335d2 Fix use-after-free bug for ResourceState of unsubscribed RDS resource. 2020-06-02 14:01:04 -07:00
Karthik Ravi Shankar 11c54ada0d
Revert "Fix StartCall: make corking work and allow concurrent Start*" 2020-06-02 11:11:06 -07:00
Mark D. Roth c566b0f7af
Merge pull request #23105 from markdroth/xds_uri_scheme
Support xDS via both "xds" and "xds-experimental" URI schemes.
2020-06-02 09:26:21 -07:00
Mark D. Roth d2646941b0 Fix xds_end2end_test to not set the response state back to SENT. 2020-06-01 15:03:22 -07:00
Mark D. Roth d674fa3e37 Support xDS via both "xds" and "xds-experimental" URI schemes. 2020-06-01 14:39:37 -07:00
Donna Dionne 44eb8a6def Putting in a temp fix for flaky tests.
Temporiarly increase tolerance for small load of RPCs
2020-05-29 13:19:29 -07:00
Mark D. Roth 832da8bd26
Merge pull request #22926 from markdroth/xds_cds_resource_does_not_exist
xds: Put channel in TRANSIENT_FAILURE when CDS resource is removed.
2020-05-26 08:28:36 -07:00
donnadionne 260b0528ba
Merge pull request #22983 from donnadionne/ignore
Default Route matcher checking:
2020-05-21 10:24:19 -07:00
Vijay Pai cf0727665d
Merge pull request #23005 from vjpai/asyncwrite
Fix StartCall: make corking work and allow concurrent Start*
2020-05-20 13:50:08 -07:00
Donna Dionne 12821db7f8 Merge remote-tracking branch 'upstream/master' into ignore 2020-05-20 11:21:35 -07:00