Commit Graph

548 Commits

Author SHA1 Message Date
Yijie Ma bae0c705aa
[Deps] Update to Clang-16 (#34492)
<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-10-11 16:26:32 -07:00
Mark D. Roth 7a06614f95
[resolver and LB policy APIs] reland: change address list to support multiple addresses per endpoint (#34531)
Re-land #33567, which was reverted in #34527.

First commit is a pure revert, second commit is a small fix needed to
avoid breaking internal callers.
2023-09-28 15:40:05 -07:00
Mark D. Roth 41f26de3b6
Revert "[resolver and LB policy APIs] change address list to support multiple addresses per endpoint" (#34527)
Reverts grpc/grpc#33567 due to import problems.
2023-09-28 12:15:35 -07:00
Mark D. Roth fd2e8c9462
[resolver and LB policy APIs] change address list to support multiple addresses per endpoint (#33567)
More changes as part of the dualstack design:
- Change resolver and LB policy APIs to support multiple addresses per
endpoint. Specifically, replace `ServerAddress` with
`EndpointAddresses`, which encodes more than one address. Per-address
channel args are retained at the same level, so they are now
per-endpoint. For now, `EndpointAddress` provides a single-address ctor
and a single-address accessor for backward compatibility, so
`ServerAdress` is an alias for `EndpointAddresses`; eventually, this
alias and the single-address methods will be removed.
- Add an `EndpointAddressSet` class, which represents an unordered set
of addresses to be used as a map key. This will be used in a number of
LB policies that need to store per-endpoint state.
- Change the LB policy API's `ChannelControlHelper::CreateSubchannel()`
method to take the address and per-endpoint channel args as separate
parameters, so that we don't need to construct a legacy `ServerAddress`
object as we create a new subchannel for each address in the endpoint.
- Change pick_first to flatten the address list.
- Change ring_hash to use `EndpointAddressSet` as the key for its
endpoint map, and to use the first address of the endpoint as the hash
key.
- Change WRR to use `EndpointAddressSet` as the key for its endpoint
weight map.

Note that support for multiple addresses per endpoint is guarded in RR
by the existing `round_robin_delegate_to_pick_fist` experiment and in
WRR by the existing `wrr_delegate_to_pick_first` experiment.

This PR does *not* include support for multiple addresses per endpoint
for the outlier_detection or xds_override_host LB policies; those will
come in subsequent PRs.
2023-09-28 09:32:36 -07:00
Eugene Ostroukhov 98ac00d7d2
[interop test] Fix the test (#34424) 2023-09-20 11:53:08 -07:00
Eugene Ostroukhov 490f6a3ee9
[test interop] Add HookService to the maintenence server (#34413)
This pull request adds another hook service on the maintenance server.
This will enable clients to gradually migrate from the standalone hook
server.

Changes:
1. Hook service can now be used separately.
2. Copied latest protos and updated the hook service to new API.
3. Added the hook service to the maintenance server.
2023-09-19 18:06:31 -07:00
Stanley Cheung fc159a6901
[Observability Testing] register prometheus exporter (#34380)
Working towards testing against CSM Observability. Added ability to
register a prometheus exporter with our Opentelemetry plugin. This will
allow our metrics to be available at the standard prometheus port
`:9464`.
2023-09-19 16:54:58 -07:00
Eugene Ostroukhov 73c5da6f02
[PSM Interop] Synchronize messages.proto (#34182) 2023-08-28 12:45:10 -07:00
Eugene Ostroukhov 88df0a1c71
[PSM Interop] Return trailing metadata. (#34096)
1. Trailing metadata is now reported.
2. messages.proto was synchronized.
3. Corrected order of arguments in EXPECT_EQ so the output makes sense now.
2023-08-25 14:02:23 -07:00
Eugene Ostroukhov a6689e6444
[PSM Interop] Maintain RPC behaviors order (#34164)
Fixes comment
https://github.com/grpc/grpc/pull/32810#discussion_r1304953101
2023-08-24 17:03:38 -07:00
Eugene Ostroukhov 7efc7d2806
[PSM Interop] Reapply hook server and fix race condition (#34132)
1. Revert parts of 440eef2288 that
reverted 16b67ae312
2. Fix race conditions in the test case that caused TSAN failures.
2023-08-24 10:50:45 -07:00
Eugene Ostroukhov 440eef2288
[Import] Revert #34027 and #34129 (#34133)
This reverts commit 16b67ae312.
2023-08-22 15:55:59 -07:00
Eugene Ostroukhov 16b67ae312
[PSM Interop] Add "hook service" (#34027) 2023-08-21 16:23:38 -07:00
Eugene Ostroukhov 89209debad
[PSM Interop] Extend headers matching. (#34082)
1. Headers will now be matched ignoring the case.
2. "*" can now be set to return all metadata values.
2023-08-16 16:47:11 -07:00
Eugene Ostroukhov 44de3ab221
[PSM Interop] Restore "Report per-RPC metadata if requested. (#33939)" (#34037) 2023-08-10 13:01:47 -07:00
Mohan Li 66f60aa763
[test] Allow set request/response size in interop soak test (#34010)
Internal bug: b/289109827
2023-08-10 09:34:27 -07:00
Eugene Ostroukhov fc9a1ccaed
[PSM Interop] Revert "Report per-RPC metadata if requested. (#33939)" (#34028)
This reverts commit 6fadb994ef.
2023-08-09 16:23:12 -07:00
Eugene Ostroukhov 6fadb994ef
[PSM Interop] Report per-RPC metadata if requested. (#33939) 2023-08-09 14:16:12 -07:00
Eugene Ostroukhov 18be986e3b
[XDS Interop] Move XdsStatsWatcher to a separate file. (#34000)
This will help with introducing test coverage as the logic becomes more
complex.
2023-08-07 19:26:30 -07:00
Eugene Ostroukhov fc4736c1ad
[interop] Fix crash in pick_first LB policy (#33519)
Fixes http://b/288420022
2023-06-22 16:29:15 -07:00
Eugene Ostroukhov d55431995c
[interop] Implement "hostname" for RPC behavior (#33446)
This enables outlier detection test. See #33135
2023-06-16 11:14:01 -07:00
Mark D. Roth d20e8d141b
[LB policies] add delegating helper classes (#33445)
This eliminates the need to modify every parent policy whenever we add
new helper methods. It should also eliminate some binary bloat.
2023-06-15 08:08:47 -07:00
Eugene Ostroukhov 0980076bb9
[interop] fix C++ server to add mutex for orca_oob test (#33278)
Following improvements were made to `orca_oob` interop test to increase
compatibility and stability:

1. Timeout was increased to 10s (see #33098)
2. Server will block clients trying to run this test concurrently.
3. Data is cleared in the beginning of the call.
2023-05-31 20:07:51 -07:00
AJ Heller 252ebad341
[infra] Fix absl::Mutex check and remove all uses (#33144)
`tools/run_tests/sanity/check_absl_mutex.sh` was broken, a missing paren
crashed the script if run locally. It's unclear yet how our sanity
checks were not complaining about this, `run_tests.py` does not save the
log.
2023-05-16 12:50:52 -07:00
Mark D. Roth 8fdfb22848
[JSON] generalize handling of RefCountedPtr<> (#33048)
Also remove a check in the weighted_target LB policy that I somehow
missed in #32932.
2023-05-11 13:49:59 -07:00
Stanley Cheung 2845a248d6
[GcpObservability] Remove sleep from observability test client (#32817)
.. as it is now part of the `GcpObservabilityClose()` routine
[itself](https://github.com/grpc/grpc/pull/32715/files#diff-e1ce0ccb4650e20b62a6d6b31655f446ad9ef72efca5849143e65f4a5a5e0310R223).

Background: #32715 may have broken the CI for observability interop
testing. The client seems to be taking too long to finish. More info at
b/277145074

We need to backport this to the `v1.54.x` branch if this is the right
fix.
2023-04-06 05:25:22 +00:00
Eugene Ostroukhov be99673d06
[PSM interop test] implement error-code- RPC behavior (#32810)
This reverts commit 47ea5062cb.
2023-04-05 11:56:50 -07:00
Craig Tiller 47ea5062cb
Revert "[xds interop tests] implement error-code- RPC behavior" (#32769)
Reverts grpc/grpc#32765
2023-03-31 22:16:48 -07:00
Eugene Ostroukhov 50fce40409
[PSM Interop] Add custom_lb test client (#32757) 2023-03-31 14:03:44 -07:00
Eugene Ostroukhov a4af6250d8
[xds interop tests] implement error-code- RPC behavior (#32765)
Implements handling for the `error-code-xx` `rcp-behavior` header.
Compare to similar implementation in
[java-server](42b4c61d5e/interop-testing/src/main/java/io/grpc/testing/integration/XdsTestServer.java (L379))
2023-03-31 13:58:43 -07:00
Eugene Ostroukhov 0fb7fbf7f0
[testing] Do not pass metric recorder to EnableCallMetricRecording (#32708) 2023-03-24 12:13:44 -07:00
Eugene Ostroukhov 65fa0f605a
[testing] Update orca-* tests for better compatibility (#32630)
1. Make channel creation lazy. This allows test cases to update the
configuration before the connection is made.
2. Pass load reports tracker when creating the policy. This way other
test cases do not see any changes to ChannelArguments.

Using grpc_core::CoreConfiguration::RunWithSpecialConfiguration was
considered but did not work as it removes other builders setup prior to
starting the test cases.
2023-03-16 12:54:59 -07:00
Eugene Ostroukhov a70fd8e5e2
[testing] Synchronize interop test protos. (#32631)
Fixes: issue #32628
2023-03-16 12:37:54 -07:00
Eugene Ostroukhov acec3a6975
[testing]: Add "orca_oob" test case (#32599) 2023-03-15 08:24:36 -07:00
Eugene Ostroukhov c62ecd5cb4
[testing]: Add "orca_per_rpc" test case (#32524) 2023-03-14 11:06:31 -07:00
Stanley Cheung db62c06171
GCP Observability testing for C++ (#32531)
Third try for #32466. 

This adds an interop client / server for GCP Observability integration
testing.

Everything is new here with no refactor. Plan is to get this in first
before trying to refactor out the flags.
2023-03-02 18:10:48 -08:00
Craig Tiller 78bcf51496
Revert "Refactor C++ interop client flags" (#32519)
Reverts grpc/grpc#32509
2023-03-01 23:12:26 -08:00
Craig Tiller 78c799bce6
Revert "GCP Observability testing for C++" (#32518)
Reverts grpc/grpc#32466
2023-03-01 23:11:07 -08:00
Stanley Cheung f217a732d3
GCP Observability testing for C++ (#32466)
This PR enables GCP Observability testing for C++.

This re-uses the existing interop test client and server and adds an
`--enable_observability=true` flag.

This also adds a `Dockerfile` and `run.sh` script to allow the test
framework to execute the test.


Framework PR:
https://github.com/GoogleCloudPlatform/grpc-gcp-tools/pull/18
Java PR: https://github.com/grpc/grpc-java/pull/9858
Golang PR: https://github.com/grpc/grpc-go/pull/5979
2023-03-01 14:25:02 -08:00
Stanley Cheung 0479698f3a
Refactor C++ interop client flags (#32509)
Refactor C++ interop test client flags into the common
`client_helper.h/cc`. This is needed by the observability testing PR
#32466

We need the `ABSL_DECLARE_FLAG` in the header file so that we can share
that across different implementation.
2023-03-01 11:57:53 -08:00
Yash Tibrewal aa11978541
Fix include guards for src/ and test/ directories (#32167)
* Fix include guards for src/ and test/ directories

* Sanity

* Update new files
2023-01-20 16:27:27 -08:00
Craig Tiller 67f364e23e
[cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757)
* crash function

* progress

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fixes

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* fix

* fix

* use cpp attr

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fix

* fix

* add exclusion

* fix

* typo

* fix

* fmt

* Update tcp_socket_utils.cc

* Automated change: Fix sanity tests

* fix

* revert php changes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-01-11 08:50:32 -08:00
apolcyn c952d37814
[testing] add test client for use in XDS federation tests (#32020)
[testing] add test client for use in XDS federation tests
2023-01-05 14:14:47 -08:00
Yijie Ma f99b8b5bc4
Convert c-style comments to C++-style comments (#31923)
* baseline

* fix clang-tidy

* manually revert these files

* manually fixup at eof

* revert 2 more files

* change check_deprecated_grpc++.py

* change end2end_defs.include template

* fix check_include_guards.py

* untrack tools/distrib/python/convert_cstyle_comments_to_cpp.py

not yet ready to be submitted

* fix

yapf check_include_guards.py
remove a space...

* fix version.cc.template

* fix version_info.h.template
2022-12-22 23:01:53 -08:00
Esun Kim f3fedae7c8
Added readability-redundant-string-cstr (#31707)
* Added readability-redundant-string-cstr

* Auto fix

* No need to wrap std::string
2022-11-18 17:12:46 -08:00
Cheng-Yu Chung e69592d29c
Remove `include/grpc/impl/codegen/atm.h` (#31673) 2022-11-17 21:16:46 -05:00
Esun Kim 530b702259
Update Clang 15 (#31518)
* clang-15

* iwyu

* run clang_format_code

* Clang-Tidy config

* Fix misc-unused-using-decls

* Fixed performance-inefficient-vector-operation

* Sanity
2022-11-04 09:08:03 -07:00
Mark D. Roth 447a058837
xDS: remove deprecated C++ APIs in the experimental namespace (#31451) 2022-10-26 14:53:57 -07:00
Craig Tiller c2ab8c99bb
Revert "Revert "[c++] Move environment functions to C++ (#30937)" (#30986)" (#30988)
This reverts commit 96264e07b8.
2022-09-14 14:19:36 -07:00
Craig Tiller 96264e07b8
Revert "[c++] Move environment functions to C++ (#30937)" (#30986)
This reverts commit 74c0d6fe3f.
2022-09-14 11:53:55 -07:00