Commit Graph

8126 Commits

Author SHA1 Message Date
Esun Kim a3dae00f89
[Deps] Upgrade Protobuf to v23.1 (#33164)
Along with the required Abseil & upb upgrade.
2023-05-18 14:46:59 -07:00
Yijie Ma 004ddbea90
[BoringSSL] Update third_party/boringssl-with-bazel (#33150)
Change was created by the release automation script. See go/grpc-release
2023-05-17 09:20:54 -07:00
Sergii Tkachenko e23237b780
[PSM Interop] Enable custom LB in golang >= 1.56.x (#33058)
Enables custom LB in golang >= 1.56.x (including `master`). Uses the
canonical java server for everything except CPP and Java.
2023-05-16 16:55:08 -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
Sergii Tkachenko 5207665738
[PSM Interop] URL Map: register the cleanup hook early (#33137)
I've noticed we add the cleanup hook after setting up the
infrastructure. Thus, if infra setup failed, the cleanup won't work.
This fixes it, and adds extra checks to not call
`cls.test_client_runner` if it's not set.
2023-05-16 10:37:05 -07:00
Xuan Wang 6818c8740f
[PSM Interop] Fail test if client or server pods restarted during test (#33040)
Fail test if client or server pods restarted during test.

#### Testing
Tested locally, test will fail with message similar to:
```
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/google/home/xuanwn/workspace/xds/grpc/tools/run_tests/xds_k8s_test_driver/framework/xds_k8s_testcase.py", line 501, in tearDown
    ))
AssertionError: 5 != 0 : Server pods unexpectedly restarted {sever_restarts} times during test.

----------------------------------------------------------------------
Ran 1 test in 886.867s
```
2023-05-15 17:49:34 -07:00
Sergii Tkachenko 87a0eb46be
[PSM Interop] Readable grpc status codes in error messages (#33103)
Better logging for `assertRpcStatusCodes`.
(got tired of looking up the status names)

#### Unexpected status found

Before: 
```
AssertionError: AssertionError: Expected only status 15 but found status 0 for method UNARY_CALL:
stats_per_method {
  key: "UNARY_CALL"
  value {
    result {
      key: 0
      value: 251
    }
  }
}
```

After:
```
AssertionError: Expected only status (15, DATA_LOSS), but found status (0, OK) for method UNARY_CALL:
stats_per_method {
  key: "UNARY_CALL"
  value {
    result {
      key: 0
      value: 251
    }
  }
}
```

#### No traffic with expected status
Before: 
```
AssertionError: 0 not greater than 0
```

After: 
```
AssertionError: 0 not greater than 0 : Expected non-zero RPCs with status (15, DATA_LOSS) for method UNARY_CALL, got:
stats_per_method {
  key: "UNARY_CALL"
  value {
    result {
      key: 0
      value: 251
    }
    result {
      key: 15
      value: 0
    }
  }
}
```
2023-05-15 15:31:19 -07:00
Sergii Tkachenko 691a5fba87
[PSM Interop] Do not dump full Channel/Subchannel into logs (#33105)
Before this change, `Found subchannel in state READY` and `Channel to
xds:///psm-grpc-server:61404 transitioned to state ` would dump the full
channel/subchannel, in some implementations that expose
ChannelData.trace (f.e. go) would add 300 extra lines of log.

Now we print a brief repr-like chanel/subchannel info:
```
Found subchannel in state READY: <Subchannel subchannel_id=9 target=10.110.1.44:8080 state=READY>
Channel to xds:///psm-grpc-server:61404 transitioned to state READY: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=READY>
```

Also while waiting for the channel, we log channel_id now too:
```
Waiting to report a READY channel to xds:///psm-grpc-server:61404
Server channel: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=TRANSIENT_FAILURE>
Server channel: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=TRANSIENT_FAILURE>
Server channel: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=TRANSIENT_FAILURE>
Server channel: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=TRANSIENT_FAILURE>
Server channel: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=TRANSIENT_FAILURE>
Server channel: <Channel channel_id=2 target=xds:///psm-grpc-server:61404 state=READY>
```
2023-05-15 10:27:58 -07:00
Sergii Tkachenko ca821574cc
[PSM Interop] gitignore all config/local-*.cfg (#33101)
So we can add other local flagfiles if we want.
2023-05-12 17:38:08 -07:00
Sergii Tkachenko 0d678a9551
[PSM Interop] URL Map graceful teardown (#33090)
Similar to what we already do in other test suites:

- Try cleaning up resources three times.
- If unsuccessful, don't fail the test and just log the error. The
cleanup script should be the one to deal with this.

ref b/282081851
2023-05-12 11:53:35 -07:00
Doug Fawley b346737290
[interop] enable Go ORCA tests (#33082) 2023-05-11 14:33:14 -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
Craig Tiller 4674f2ccf7
[fuzz] Turn core end2end tests into fuzzers (#33013)
Add a new binary that runs all core end2end tests in fuzzing mode.

In this mode FuzzingEventEngine is substituted for the default event
engine. This means that time is simulated, as is IO. The FEE gets
control of callback delays also.

In our tests the `Step()` function becomes, instead of a single call to
`completion_queue_next`, a series of calls to that function and
`FuzzingEventEngine::Tick`, driving forward the event loop until
progress can be made.

PR guide:
---

**New binaries**
`core_end2end_test_fuzzer` - the new fuzzer itself
`seed_end2end_corpus` - a tool that produces an interesting seed corpus

**Config changes for safe fuzzing**
The implementation tries to use the config fuzzing work we've previously
deployed in api_fuzzer to fuzz across experiments. Since some
experiments are far too experimental to be safe in such fuzzing (and
this will always be the case):
- a new flag is added to experiments to opt-out of this fuzzing
- a new hook is added to the config system to allow variables to
re-write their inputs before setting them during the fuzz

**Event manager/IO changes**
Changes are made to the event engine shims so that tcp_server_posix can
run with a non-FD carrying EventEngine. These are in my mind a bit
clunky, but they work and they're in code that we expect to delete in
the medium term, so I think overall the approach is good.

**Changes to time**
A small tweak is made to fix a bug initializing time for fuzzers in
time.cc - we were previously failing to initialize
`g_process_epoch_cycles`

**Changes to `Crash`**
A version that prints to stdio is added so that we can reliably print a
crash from the fuzzer.

**Changes to CqVerifier**
Hooks are added to allow the top level loop to hook the verification
functions with a function that steps time between CQ polls.

**Changes to end2end fixtures**
State machinery moves from the fixture to the test infra, to keep the
customizations for fuzzing or not in one place. This means that fixtures
are now just client/server factories, which is overall nice.

It did necessitate moving some bespoke machinery into
h2_ssl_cert_test.cc - this file is beginning to be problematic in
borrowing parts but not all of the e2e test machinery. Some future PR
needs to solve this.

A cq arg is added to the Make functions since the cq is now owned by the
test and not the fixture.

**Changes to test registration**
`TEST_P` is replaced by `CORE_END2END_TEST` and our own test registry is
used as a first depot for test information.

The gtest version of these tests: queries that registry to manually
register tests with gtest. This ultimately changes the name of our tests
again (I think for the last time) - the new names are shorter and more
readable, so I don't count this as a regression.

The fuzzer version of these tests: constructs a database of fuzzable
tests that it can consult to look up a particular suite/test/config
combination specified by the fuzzer to fuzz against. This gives us a
single fuzzer that can test all 3k-ish fuzzing ready tests and cross
polinate configuration between them.

**Changes to test config**
The zero size registry stuff was causing some problems with the event
engine feature macros, so instead I've removed those and used GTEST_SKIP
in the problematic tests. I think that's the approach we move towards in
the future.

**Which tests are included**
Configs that are compatible - those that do not do fd manipulation
directly (these are incompatible with FuzzingEventEngine), and those
that do not join threads on their shutdown path (as these are
incompatible with our cq wait methodology). Each we can talk about in
the future - fd manipulation would be a significant expansion of
FuzzingEventEngine, and is probably not worth it, however many uses of
background threads now should probably evolve to be EventEngine::Run
calls in the future, and then would be trivially enabled in the fuzzers.

Some tests currently fail in the fuzzing environment, a
`SKIP_IF_FUZZING` macro is used for these few to disable them if in the
fuzzing environment. We'll burn these down in the future.

**Changes to fuzzing_event_engine**
Changes are made to time: an exponential sweep forward is used now -
this catches small time precision things early, but makes decade long
timers (we have them) able to be used right now. In the future we'll
just skip time forward to the next scheduled timer, but that approach
doesn't yet work due to legacy timer system interactions.

Changes to port assignment: we ensure that ports are legal numbers
before assigning them via `grpc_pick_port_or_die`.

A race condition between time checking and io is fixed.

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-05-11 08:22:34 -07:00
Hannah Shi ad2a5dd355
[ObjC] Cf event engine client (#33034)
Added `//:gpr_platform` to cf_engine_test to fix build_cleaner check in
the previous merge.
More details in https://github.com/grpc/grpc/pull/33027
2023-05-11 08:13:41 -07:00
Sergii Tkachenko c182e6b252
[PSM Interop] Allow `dev` TESTING_VERSION that doesn't override images (#33062)
Resolve `TESTING_VERSION` to `dev-VERSION` when the job is initiated by
a user, and not the CI. Override this behavior with setting
`FORCE_TESTING_VERSION`.

This solves the problem with the manual job runs executed against a WIP
branch (f.e. a PR) overriding the tag of the CI-built image we use for
daily testing.

The `dev` and `dev-VERSION` "magic" values supported by the
`--testing_version` flag:

- `dev` and `dev-master` and treated as `master`: all
`config.version_gte` checks resolve to `True`.
- `dev-VERSION` is treated as `VERSION`: `dev-v1.55.x` is treated as
simply `v1.55.x`. We do this so that when manually running jobs for old
branches the feature skip check still works, and unsupported tests are
skipped.

This changes will take care of all langs/branches, no backports needed.

ref b/256845629
2023-05-10 10:45:26 -07:00
Sergii Tkachenko ac4b2233e2
[PSM Interop] Readme: also recommend enabling logging and monitoring (#33059)
Since we use Logs Explorer.
2023-05-09 16:37:38 -07:00
Esun Kim dc95133140
[Deps] Upgrade Protobuf v23 (#32914)
Upgrading Protobuf and Upb to v23.0
2023-05-09 12:24:21 -07:00
Sergii Tkachenko 448084c186
[PSM Interop] Improve error messages in the affinity test (#33031)
Previously the error message didn't provide much context, example:

```py
Traceback (most recent call last):
  File "/tmpfs/tmp/tmp.BqlenMyXyk/grpc/tools/run_tests/xds_k8s_test_driver/tests/affinity_test.py", line 127, in test_affinity
    self.assertLen(
AssertionError: [] has length of 0, expected 1.
```

ref b/279990584.
2023-05-08 13:43:23 -07:00
AJ Heller 3fb738b9b1
[EventEngine] Implement work-stealing in the EventEngine ThreadPool (#32869)
This PR implements a work-stealing thread pool for use inside
EventEngine implementations. Because of historical risks here, I've
guarded the new implementation behind an experiment flag:
`GRPC_EXPERIMENTS=work_stealing`. Current default behavior is the
original thread pool implementation.

Benchmarks look very promising:

```
bazel test \
--test_timeout=300 \
--config=opt -c opt \
--test_output=streamed \
--test_arg='--benchmark_format=csv' \
--test_arg='--benchmark_min_time=0.15' \
--test_arg='--benchmark_filter=_FanOut' \
--test_arg='--benchmark_repetitions=15' \
--test_arg='--benchmark_report_aggregates_only=true' \
test/cpp/microbenchmarks:bm_thread_pool
```

2023-05-04: `bm_thread_pool` benchmark results on my local machine (64
core ThreadRipper PRO 3995WX, 256GB memory), comparing this PR to
master:


![image](https://user-images.githubusercontent.com/295906/236315252-35ed237e-7626-486c-acfa-71a36f783d22.png)

2023-05-04: `bm_thread_pool` benchmark results in the Linux RBE
environment (unsure of machine configuration, likely small), comparing
this PR to master.


![image](https://user-images.githubusercontent.com/295906/236317164-2c5acbeb-fdac-4737-9b2d-4df9c41cb825.png)

---------

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2023-05-08 13:38:23 -07:00
Xuan Wang 7f7a524a9a
[PSM Interop] Add install kubectl authentication plugin to README (#33029)
<!--

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.

-->

---------

Co-authored-by: Sergii Tkachenko <hi@sergii.org>
2023-05-05 14:41:41 -07:00
AJ Heller ee0aaacbde
Revert "[ObjC] CF Stream Event Engine Client" (#33027)
Reverts grpc/grpc#32924. This breaks the build again, unfortunately.

From `test/core/event_engine/cf:cf_engine_test`:

```
error: module .../grpc/test/core/event_engine/cf:cf_engine_test does not depend on a module exporting 'grpc/support/port_platform.h'
```

@sampajano I recommend looking into CI tests to catch iOS problems
before merging. We can enable EventEngine experiments in the CI
generally once this PR lands, but this broken test is not one of those
experiments. A normal build should have caught this.

cc @HannahShiSFB
2023-05-05 13:10:49 -07:00
Hannah Shi d0c1809840
[ObjC] CF Stream Event Engine Client (#32924)
bazel build --config=macos --genrule_strategy=local
--copt="-DGRPC_CFSTREAM=1" //test/cpp/end2end:cfstream_test
succeeds

Fixing failure described here:
https://github.com/grpc/grpc/pull/32882#issuecomment-1512210309
2023-05-05 11:47:56 -07:00
Craig Tiller ad41fe96b6
[promises] Re-enable C++ end2end tests (with fixes) (#32837)
Makes some awkward fixes to compression filter, call, connected channel
to hold the semantics we have upheld now in tests.

Once the fixes described here
https://github.com/grpc/grpc/blob/master/src/core/lib/channel/connected_channel.cc#L636
are in this gets a lot less ad-hoc, but that's likely going to be
post-landing promises client & server side.

We specifically need special handling for server side cancellation in
response to reads wrt the inproc transport - which doesn't track
cancellation thoroughly enough itself.

<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-05-03 20:03:16 -07:00
Yousuk Seung 8b02295e58
[xDS] Accept cpu_utilization over 100% (#32954)
<!--

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-05-02 03:25:17 +00:00
Sergii Tkachenko 1267000bbb
[PSM Interop] Minor fixes to the `bin/cleanup_cluster.sh` helper (#32953) 2023-04-27 13:34:08 -07:00
Sergii Tkachenko c0ee9ff4d5
[PSM Interop] Various improvements to the helper scripts (#32745)
- Fix broken `bin/run_channelz.py` helper
- Create `bin/run_ping_pong.py` helper that runs the baseline (aka
"ping_pong") test against preconfigured infra
- Setup automatic port forwarding when running `bin/run_channelz.py` and
`bin/run_ping_pong.py`
- Create `bin/cleanup_cluster.sh` helper to wipe xds out resources based
namespaces present on the cluster

Note: this involves a small change to the non-helper code, but it's just
moving a the part that makes XdsTestServer/XdsTestClient instance for a
given pod.
2023-04-26 12:58:02 -07:00
Luwei Ge dcfc5d6904
[Audit Logging] Logger and factory APIs in C-Core and C++. (#32750)
Audit logging APIs for both built-in loggers and third-party logger
implementations.

C++ uses using decls referring to C-Core APIs.

---------

Co-authored-by: rockspore <rockspore@users.noreply.github.com>
2023-04-26 06:44:14 -07:00
Luwei Ge 2917804b9a
[Audit Logging] Xds Audit Logger Registry (#32828)
Third-party loggers will be added in subsequent PRs once the logger
factory APIs are available to validate the configs here.

This registry is used in `xds_http_rbac_filter.cc` to generate service
config json.
2023-04-25 14:59:33 +00:00
Esun Kim a8b787fae3
[Test] Used python 3.9 for python-alpine (#32931)
Fix at-head tests (this is a missing piece of
https://github.com/grpc/grpc/pull/32905) with the following error;

```
/var/local/git/grpc/tools/run_tests/helper_scripts/build_python.sh: line 126: python3.8: command not found
```
2023-04-24 14:37:16 -07:00
Sergii Tkachenko 2fe7b5b881
[PSM Interop] Temporary remedy for the issue with pod log dups (#32922)
While a proper fix is on the way, this mitigates the number of
duplicated container logs in the xds test server/client pod logs.

The issue is that we only wait between stream restarts when an exception
is caught, which isn't always the reason the stream gets broken. Another
reason is the main container being shut down by k8s. In this situation,
we essentially do

```py
while True:
  try:
    restart_stream()
    read_all_logs_from_pod_start()
  except Exception:
    logger.warning('error')
    wait_seconds(1)
```

This PR makes it

```py
while True:
  try:
    restart_stream()
    read_all_logs_from_pod_start()
  except Exception:
    logger.warning('error')
  finally:
    wait_seconds(5)
```
2023-04-21 22:48:37 -07:00
Larry Safran 4cb69f4658
[PSM Interop] Fix the issue with URL Map test suite not cleaning up failed test client (#32877)
`tearDownClass` is not executed when `setUpClass` failed. In URL Map
test suite, this leads to a test client that failed to start not being
cleaned up.
This PR change the URL Map test suite to register a custom
`addClassCleanup` callback, instead of relying on the `tearDownClass`.
Unlike `tearDownClass`, cleanup callbacks are executed when the
`setUpClass` failed.

ref b/276761453
2023-04-20 10:53:57 -07:00
Vignesh Babu c515eba30b
[Transport] Update Chttp2 context list to include relative offset of traced RPCs within outgoing buffer (#32825)
The PR also creates a separate BUILD target for:
- chttp2 context list
- iomgr buffer_list
- iomgr internal errqueue

This would allow the context list to be included as standalone
dependencies for EventEngine implementations.
2023-04-20 09:32:27 -07:00
Craig Tiller efa939ac1f
[cleanup] Remove public_headers_must_be_c89 test (#32898)
We're starting to introduce C++ APIs to C-core, so this test is no
longer relevant.
2023-04-19 14:47:10 -07:00
Esun Kim c523bdac1e
[C++] Added a cord support to gRPC protobuf serializer (#32617)
As Protobuf is going to support Cord to reduce memory copy when
[de]serializing Cord fields, gRPC is going to leverage it. This
implementation is based on the internal one but it's slightly modified
to use the public APIs of Cord. only
2023-04-19 08:55:25 -07:00
Jan Tattermusch df5af05ce7
[test-infra] Sanity test job should only run sanity, not iwyu and clang-tidy (#32874)
Followup for https://github.com/grpc/grpc/pull/31141.

IWYU and clang-tidy have been "moved" to a separate kokoro job, but as
it turns out the sanity job still runs all of `[sanity, clang-tidy,
iwyu]`, which makes the grpc_sanity jobs very slow.

The issue is that grpc_sanity selects tasks that have "sanity" label on
them and as of now, clang-tidy and iwyu still do.
It can be verified by:
```
tools/run_tests/run_tests_matrix.py -f sanity --dry_run
Will run these tests:
  run_tests_sanity_linux_dbg_native: "python3 tools/run_tests/run_tests.py --use_docker -t -j 2 -x run_tests/sanity_linux_dbg_native/sponge_log.xml --report_suite_name sanity_linux_dbg_native -l sanity -c dbg --iomgr_platform native --report_multi_target"
  run_tests_clang-tidy_linux_dbg_native: "python3 tools/run_tests/run_tests.py --use_docker -t -j 2 -x run_tests/clang-tidy_linux_dbg_native/sponge_log.xml --report_suite_name clang-tidy_linux_dbg_native -l clang-tidy -c dbg --iomgr_platform native --report_multi_target"
  run_tests_iwyu_linux_dbg_native: "python3 tools/run_tests/run_tests.py --use_docker -t -j 2 -x run_tests/iwyu_linux_dbg_native/sponge_log.xml --report_suite_name iwyu_linux_dbg_native -l iwyu -c dbg --iomgr_platform native --report_multi_target"
```

This PR should fix this (be removing the umbrella "sanity" label from
clang-tidy and iwyu)
2023-04-19 04:25:17 -07:00
Craig Tiller 5ac894a04f
Revert "[ObjC] CF EventEngine client" (#32882)
Reverts grpc/grpc#32077
2023-04-17 09:58:45 -07:00
Hannah Shi e9a592a00f
[ObjC] CF EventEngine client (#32077)
<!--

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.

-->

@sampajano
2023-04-14 20:21:31 -07:00
Sergii Tkachenko f2a7f6d51b
[PSM Interop] Increase k8s startup probe total time (#32875)
Previously, we didn't configure the failureThreshold, so it used its
default value. The final `startupProbe` looked like this:

```json
{
  "startupProbe": {
    "failureThreshold": 3,
    "periodSeconds": 3,
    "successThreshold": 1,
    "tcpSocket": {
      "port": 8081
    },
    "timeoutSeconds": 1
}
```

Because of it, the total time before k8s killed the container was 3
times `failureThreshold` * 3 seconds wait between probes `periodSeconds`
= 9 seconds total (±3 seconds waiting for the probe response).

This greatly affected PSM Security test server, some implementations of
which waited for the ADS stream to be configured before starting
listening on the maintenance port. This lead for the server container
being killed for ~7 times before a successful startup:

```
15:55:08.875586 "Killing container with a grace period"
15:53:38.875812 "Killing container with a grace period"
15:52:47.875752 "Killing container with a grace period"
15:52:38.874696 "Killing container with a grace period"
15:52:14.874491 "Killing container with a grace period"
15:52:05.875400 "Killing container with a grace period"
15:51:56.876138 "Killing container with a grace period"
```

These extra delays lead to PSM security tests timing out.

ref b/277336725
2023-04-14 21:30:05 +00:00
Yash Tibrewal b454d2d474
[BoringSSL] Update third_party/boringssl-with-bazel (#32868)
Change was created by the release automation script. See go/grpc-release
2023-04-14 10:41:08 -07:00
Sergii Tkachenko 6b5faff6d9
[PSM Interop] Switch to python 3.9 (#32854)
Kokoro supports Python 3.9 now.
Needed for b/276761453.
2023-04-12 12:06:02 -07:00
Jan Tattermusch 0f1afec5a8
[protobuf] Upgrade third_party/protobuf to 22.x (#32606)
The very non-trivial upgrade of third_party/protobuf to 22.x
This PR strives to be as small as possible and many changes that were
compatible with protobuf 21.x and didn't have to be merged atomically
with the upgrade were already merged.
Due to the complexity of the upgrade, this PR wasn't created
automatically by a tool, but manually. Subsequent upgraded of
third_party/protobuf with our OSS release script should work again once
this change is merged.

This is best reviewed commit-by-commit, I tried to group changes in
logical areas.

Notable changes:
- the upgrade of third_party/protobuf submodule, the bazel protobuf
dependency itself
- upgrade of UPB dependency to 22.x (in the past, we used to always
upgrade upb to "main", but upb now has release branch as well). UPB
needs to be upgraded atomically with protobuf since there's a de-facto
circular dependency (new protobuf depends on new upb, which depends on
new protobuf for codegen).
- some protobuf and upb bazel rules are now aliases, so `
extract_metadata_from_bazel_xml.py` and `gen_upb_api_from_bazel_xml.py`
had to be modified to be able to follow aliases and reach the actual
aliased targets.
- some protobuf public headers were renamed, so especially
`src/compiler` needed to be updated to use the new headers.
- protobuf and upb now both depend on utf8_range project, so since we
bundle upb with grpc in some languages, we now have to bundle utf8_range
as well (hence changes in build for python, PHP, objC, cmake etc).
- protoc now depends on absl and utf8_range (previously protobuf had
absl dependency, but not for the codegen part), so python's
make_grpcio_tools.py required partial rewrite to be able to handle those
dependencies in the grpcio_tools build.
- many updates and fixes required for C++ distribtests (currently they
all pass, but we'll probably need to follow up, make protobuf's and
grpc's handling of dependencies more aligned and revisit the
distribtests)
- bunch of other changes mostly due to overhaul of protobuf's and upb's
internal build layout.

TODOs:
- [DONE] make sure IWYU and clang_tidy_code pass
- create a list of followups (e.g. work to reenable the few tests I had
to disable and to remove workaround I had to use)
- [DONE in cl/523706129] figure out problem(s) with internal import

---------

Co-authored-by: Craig Tiller <ctiller@google.com>
2023-04-12 18:43:58 +02:00
Luwei Ge 15ef046440
[third_party] update envoy-api dependency (#32807)
update to main commit 68d4315167352ffac71f149a43b8088397d3f33d

This is to include the latest RBAC related change
(https://github.com/envoyproxy/envoy/pull/26415) for audit logging.

I intentionally did not run steps in
https://github.com/grpc/grpc/tree/master/third_party#updating-third_partyenvoy-api
because I saw some earlier changes also didn't do that and this
envoy-api change isn't going to be needed in Python any time soon.
2023-04-06 06:47:50 -07:00
Jan Tattermusch a6c723d64e
[test-infra] Re-enable skipped windows tests (#32658)
Followup for https://github.com/grpc/grpc/pull/32649 (which disabled the
tests mentioned below).
Also sets correct path for tests build by ninja on windows, so that they
don't get skipped.

Once merged, I'll backport to 1.54.x and 1.53.x

The original issue with tests being skipped.
```
+ python3 workspace_c_windows_dbg_native/tools/run_tests/run_tests.py -t -j 8 -x run_tests/c_windows_dbg_native/sponge_log.xml --report_suite_name c_windows_dbg_native -l c -c dbg --iomgr_platform native --bq_result_table aggregate_results --measure_cpu_costs
2023-03-20 07:56:53,523 START: tools\run_tests\helper_scripts\build_cxx.bat

2023-03-20 08:04:51,388 PASSED: tools\run_tests\helper_scripts\build_cxx.bat [time=477.9sec, retries=0:0; cpu_cost=0.0; estimated=1.0]

2023-03-20 08:04:52,434 detected port server running version 21

2023-03-20 08:04:52,672 my port server is version 21

2023-03-20 08:04:52,703 SUCCESS: All tests passed



WARNING: binary not found, skipping cmake/build/Debug/bad_server_response_test.exe



WARNING: binary not found, skipping cmake/build/Debug/connection_refused_test.exe



WARNING: binary not found, skipping cmake/build/Debug/goaway_server_test.exe



WARNING: binary not found, skipping cmake/build/Debug/invalid_call_argument_test.exe



WARNING: binary not found, skipping cmake/build/Debug/multiple_server_queues_test.exe



WARNING: binary not found, skipping cmake/build/Debug/no_server_test.exe



WARNING: binary not found, skipping cmake/build/Debug/pollset_windows_starvation_test.exe



WARNING: binary not found, skipping cmake/build/Debug/public_headers_must_be_c89.exe



```
2023-04-05 10:33:53 +02:00
Jan Tattermusch b9f0c019d0
[cmake] Improved stdalign.h workaround for windows build (#32777)
Improved the workaround from https://github.com/grpc/grpc/pull/32764 as
suggested in
https://github.com/grpc/grpc/pull/32764#issuecomment-1491794750.

Once merged, I'll backport to 1.54.x and 1.53.x together with
https://github.com/grpc/grpc/pull/32764 (these have switched to VS2019)
2023-04-05 08:20:20 +00:00
Eugene Ostroukhov fd8e7e39fe
[PSM tests] Troubleshoot Ubuntu venv issue (#32786) 2023-04-04 08:43:35 -07:00
Craig Tiller 724441d85b
[tests] Convert core e2e tests to gtest (#32603)
Notes:
- `+trace` fixtures haven't run since 2016, so they're disabled for now
(7ad2d0b463 (diff-780fce7267c34170c1d0ea15cc9f65a7f4b79fefe955d185c44e8b3251cf9e38R76))
- all current fixtures define `FEATURE_MASK_SUPPORTS_AUTHORITY_HEADER`
and hence `authority_not_supported` has not been run in years - deleted
- bad_hostname similarly hasn't been triggered in a long while, so
deleted
- load_reporting_hook has never been enabled, so deleted
(f23fb4cf31/test/core/end2end/generate_tests.bzl (L145-L148))
- filter_latency & filter_status_code rely on global variables and so
don't convert particularly cleanly - and their value seems marginal, so
deleted

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-04-03 22:19:57 -07:00
Eugene Ostroukhov 50fce40409
[PSM Interop] Add custom_lb test client (#32757) 2023-03-31 14:03:44 -07:00
Sergii Tkachenko 8f012ae13b
PSM interop: add retries on k8s API 504 Gateway Timeout (#32714)
ref b/258546394
2023-03-31 20:58:57 +00:00
Jan Tattermusch 569d0076b3
[cmake] Workaround missing stdalign.h in windows portability test (#32764)
Tentative fix for b/275694647. Also see
https://github.com/grpc/grpc/pull/32662

Adhoc windows/grpc_portability run:
http://sponge/bb75e14c-fc77-45bb-89bd-4c4685746490

Once merged, I'll backport to 1.54.x and 1.53.x (these have switched to
VS2019)
2023-03-31 09:00:39 -07:00
Craig Tiller 2cd1501ca5
[promises] Filter unit test framework (#32110)
Built atop #31448 

Offers a simple framework for testing filters.

<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-28 21:53:14 -07:00
Jan Tattermusch 785b85426c
Upgrade abseil to 20230125.2 (#32733)
To get a fix for
https://github.com/abseil/abseil-cpp/issues/1419#issuecomment-1485282854
2023-03-28 20:38:56 +02:00
Craig Tiller 175ccc3a90
Reland global config changes (#32661)
<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-27 18:55:24 -07:00
Yousuk Seung 16c03db9ac
Revert "Revert "WRR: Support EPS" (#32723)" (#32725)
This reverts commit 7bd9267f32.




<!--

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-03-27 16:49:50 -07:00
Stanley Cheung 39780ba2b5
Update third_party/boringssl-with-bazel (#32721)
Change was created by the release automation script. See
go/grpc-release.
2023-03-27 15:11:48 -07:00
Craig Tiller 8d2f70d53c
Reland "[promises] Convert call to a party" (#32651)" (#32653)
<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-27 14:02:36 -07:00
Esun Kim 7bd9267f32
Revert "WRR: Support EPS" (#32723)
Reverts grpc/grpc#32657
2023-03-27 11:53:17 -07:00
Yousuk Seung 4429066516
WRR: Support EPS (#32657)
<!--

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-03-24 16:23:51 -07:00
Eugene Ostroukhov 312300d3c2
[Interop] Enable Orca test cases for C++ (#32684) (#32707) 2023-03-24 12:14:07 -07:00
Yash Tibrewal fcff4bd1d0
Gcp Observability Logging: The Call ID should use a UUIDv4 format (#32699)
Earlier, we were simply using a 64 bit random number, but the spec
actually calls for UUIDv4.

<!--

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-03-23 19:07:13 -07:00
AJ Heller 3fe678e306
[EventEngine] Add EventEngine::*Handle equality operators (#32695)
This allows us to replace `absl::optional<TaskHandle>` with checks
against the invalid handle.

This PR also replaces the differently-named invalid handle instances
with a uniform way of accessing static invalid instances across all
handle types, which aids a bit in testing.
2023-03-23 15:31:24 -07:00
Eugene Ostroukhov 64e96c093d
Revert "[Interop] Enable Orca test cases for C++ (#32684)" (#32693)
This reverts commit e4825a5aa2.
2023-03-23 15:20:23 -07:00
Craig Tiller bca85495d4
[event_engine] Add a maximally threaded event engine wrapper (#32691)
Add an event manager that spawns threads just as much as it possibly
can... to expose TSAN to the myriad thread ordering problems in our code
base.

Next steps for this will be to add a new test mode for tsan + thready
event engine + a few other doodads to increase threads in the system
(party.cc in particular has a good place for a hook).

<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-23 11:37:20 -07:00
Jan Tattermusch 43c3d1f932
Switch all VS2017 builds to VS2019 (#32662)
(part of removing support for VS2017)

Also see https://github.com/grpc/grpc/pull/32649
Also see https://github.com/grpc/grpc/pull/32615

The switch to grpc-win2019 windows workers has already happened:
(cl/517400022).

Once this PR lands, I'll backport to 1.53.x branch as well (since that
release removes the VS2017 support).
2023-03-23 16:44:39 +01:00
Eugene Ostroukhov e4825a5aa2
[Interop] Enable Orca test cases for C++ (#32684) 2023-03-22 12:33:51 -07:00
Jan Tattermusch 84c091315b
increase timeout for windows C++ distribtests (#32669)
After switching to grpc-win2019 kokoro image, the windows C++
distribtest got slightly slower (from about ~1500sec to ~1650sec), which
got us too close to the 1800sec time limit and thus we've seen the
windows distribtests occasionally time out.

I'd still like to look into speeding up the distribtests, but for now we
don't want frequest test timeouts in the CI.

example failure: 

https://fusion2.corp.google.com/ci;ids=1923284992/kokoro/prod:grpc%2Fcore%2Fmaster%2Fwindows%2Fgrpc_distribtests_standalone/activity/996fd2cf-bef3-4490-85da-a52765d84127/log

```
2023-03-20 23:43:44,740 TIMEOUT: distribtest.cpp_windows_x86_cmake_as_externalproject [pid=5984, time=1800.1sec]
```
2023-03-22 08:51:26 +01:00
Craig Tiller 2bcca66712
[fuzzing] Roll forward dep on fuzztest (#32667)
<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-21 13:37:32 -07:00
Craig Tiller 522bed8cc6
Revert "[fuzzing] Add dep on google fuzz test" (#32666)
Reverts grpc/grpc#32578
2023-03-20 20:31:06 -07:00
Craig Tiller dbb131b193
[fuzzing] Add dep on google fuzz test (#32578)
Initial PR to establish a bazel dependency on
https://github.com/google/fuzztest, with which I'm planning on basing a
hardening program.

Casting a relatively wide net with reviewers: I'm genuinely interested
in feedback building up the docs, and general ergonomics of this change.

I've located relevant files in the `fuzztest/...` directory. The tests
only build with the `--config fuzztest` bazel argument for now (because
of needing C++17), so locating them separately keeps `bazel test
test/...` working as it does today. In a few years time, when we adopt
C++17, we'll be able to rationalize the test directories a little bit.

We'll need to add some kokoro jobs (maybe with this PR?) to execute the
relevant tests.

<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-20 17:45:52 -07:00
Sergii Tkachenko c43d37c956
PSM Interop: handle k8s 404 on teardown (#32663)
This was missed from https://github.com/grpc/grpc/pull/32596, resulting
in k8s teardown exiting early with:

```
kubernetes.client.exceptions.ApiException: (404)
Reason: Not Found
HTTP response headers: OMITTED
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"deployments.apps \"psm-grpc-client\" not found","reason":"NotFound","details":{"name":"psm-grpc-client","group":"apps","kind":"deployments"},"code":404}
```

With this change, teardown resumes with:

> `k8s_base_runner.py:282] Deployment psm-grpc-client deletion failed:
Kubernetes API returned 404 Not Found: deployments.apps
"psm-grpc-client" not found`
2023-03-20 17:43:32 -07:00
Jan Tattermusch 0c1797cd9f
Revert "[config] Move global config alongside core configuration" (#32659)
Reverts grpc/grpc#30788

(it breaks grpc_objc_bazel_test (see
https://github.com/grpc/grpc/pull/30788#issuecomment-1476372187) and
also seems to be breaking some other internal stuff).
2023-03-20 08:22:29 -07:00
Jan Tattermusch 5873ba96dc
Ensure compatibility with the new custom kokoro win2019 image (#32649)
Fix incompatibilities identified when running adhoc runs on the new
custom win2019 image.
After merging this, it should be possible to switch to the new image
without breaking any tests.

- for most fixes I added a comment that explains why they're necessary.
- the new image won't have VS2015 installed, so I'm switching the protoc
artifact build to VS2017

This PR will need to be backported to older release branches to ensure
the windows tests continue working on those branches as well (IMHO I
haven't made any changes that would be difficult to backport and I tried
to keeps the diff as small as possible to avoid issues when
backporting).

After we switch to the new image (and all the windows tests are green),
we can incrementally move the builds that are still using VS2017 to
VS2019.
2023-03-20 16:03:50 +01:00
Eugene Ostroukhov 4c5771d27c
PSM Interop: revert adding XDS protos to protoc args (#32640)
This dependency is no longer needed after #32631
2023-03-17 18:50:55 -07:00
Craig Tiller b7a83305e6
[config] Move global config alongside core configuration (#30788)
This is a big rewrite of global config.

It does a few things, all somewhat intertwined:
1. centralize the list of configuration we have to a yaml file that can
be parsed, and code generated from it
2. add an initialization and a reset stage so that config vars can be
centrally accessed very quickly without the need for caching them
3. makes the syntax more C++ like (less macros!)
4. (optionally) adds absl flags to the OSS build

This first round of changes is intended to keep the system where it is
without major changes. We pick up absl flags to match internal code and
remove one point of deviation - but importantly continue to read from
the environment variables. In doing so we don't force absl flags on our
customers - it's possible to configure grpc without the flags - but
instead allow users that do use absl flags to configure grpc using that
mechanism. Importantly this lets internal customers configure grpc the
same everywhere.

Future changes along this path will be two-fold:
1. Move documentation generation into the code generation step, so that
within the source of truth yaml file we can find all documentation and
data about a configuration knob - eliminating the chance of forgetting
to document something in all the right places.
2. Provide fuzzing over configurations. Currently most config variables
get stashed in static constants across the codebase. To fuzz over these
we'd need a way to reset those cached values between fuzzing rounds,
something that is terrifically difficult right now, but with these
changes should simply be a reset on `ConfigVars`.

<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-17 16:56:45 -07:00
Yash Tibrewal 29ce6463d1
Revert "[promises] Convert call to a party" (#32651)
Reverts grpc/grpc#32359
2023-03-17 12:36:19 -07:00
Craig Tiller a9873e8357
[promises] Convert call to a party (#32359)
<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-16 01:09:53 -07:00
Sergii Tkachenko c16338581d
PSM Interop: add orca proto to the new test driver dependencies (#32619)
Now `messages.proto` requires `xds/v3/orca_load_report.proto`.
The dependency introduced in https://github.com/grpc/grpc/pull/32524.

ref b/273575071
2023-03-14 18:43:34 -07:00
Sergii Tkachenko dce2d8729c
PSM Interop: Retry on recoverable kubernetes errors (#32596)
- Increase kubernetes library default for urlib3 retries to 10
- Add custom retry logic to all API calls made by framework.k8s

Custom retry logic handles various errors we're experienced over
two years, and based on ~140 failure reports:

1. Errors returned by the k8s API server itself:
  - 401 Unauthorized
  - 409 Conflict
  - 429 Too Many Requests
  - 500 Internal Server Error
2. Connection errors that might indicate k8s API server is temporarily
   unavailable (such as a restart, upgrade, etc):
  - All `NewConnectionError`s, f.e. "Connection timed out",
    "Connection refused"
  - All "connection aborted" `ProtocolError`s, f.e. "Remote end
    closed connection  without response", "Connection reset by peer"

ref b/178378578, b/258546394
2023-03-14 17:14:07 -07:00
Sergii Tkachenko 198a9f6fe9
PSM Interop: Local dev various improvements (#32575)
PSM Interop: Local dev various improvements

- Cleanup resources on ctrl+c
- Add startup probes to address the issue with port forwarding starting
before the workload listens on a port
- Remove misleading restartPolicy: it's silently ignored by k8s
- Extra debug message with port-forwarding command
2023-03-10 11:15:01 -08:00
Craig Tiller 62bb99d163
[e2e] c++-ify core e2e test fixtures (#32550)
A step toward #14016.

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-10 10:39:56 -08:00
Yash Tibrewal 9551e3ef5a
Add ServerCallTracer interfaces (#32555)
<!--

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-03-10 10:08:49 -08:00
Gregory Cooke ca9e365002
Added verified_root_cert_subject pass up through cpp api (#32335)
PR #32215 added the verified root cert subject to the lower level
`tsi_peer`. This PR is a companion to that and completes the feature by
bubbling the information up to the `TsiCustomVerificationCheckRequest`
which is part of the user facing API for implementing custom
verification callbacks.
2023-03-08 13:41:26 -05:00
apolcyn 27ee3913d1
[iomgr and EE logging] Log ERROR if socket() returns EMFILE on posix (#32204)
There are potentially surprising deployment bugs that can cause `EMFILE`
to be hit. For example, file descriptor limits can be easily reached if
- the round robin LB policy is used
- the load balancer hands out an assignment with a lot of backends
- using debian's default 1024 file descriptor limit.

To make such problems more apparent, we can pay special attention to
this error and log ERROR when it happens.

Related: b/265199104
2023-03-03 13:18:01 -08:00
apolcyn 2cfdf3fc50
[ruby]: skip grpc_class_init_test.rb (#32523)
This test has been occasionally failing on CI with "Bus Error" crashes
while requiring the grpc shared library.

These crashes have been unreproducible locally. Let's continue debugging
(b/266212253) but skip this on CI.
2023-03-02 10:43:32 -08:00
Jan Tattermusch 9c45499dfc
Update third_party/boringssl-with-bazel (#32492)
Upgrade boringssl to the latest "master-with-bazel"
- use the `'USE_HEADERMAP' => 'NO'` fix for ObjC
- update the key for asm optimizations on mac/apple in python's setup.py

This PR depends on monterey fixes here:
https://github.com/grpc/grpc/pull/32493 and the boringssl's build
simplification
https://boringssl-review.googlesource.com/c/boringssl/+/56465.

---------

Co-authored-by: Hannah Shi <hannahshisfb@gmail.com>
2023-03-02 10:18:00 +01:00
Jan Tattermusch 740932c899
Make remaining objc test jobs to pass on MacOS monterey (#32493)
Make remaining objC jobs compatible with kokoro monterey workers and
prepare for boringssl upgrade.

The changes here are taken from https://github.com/grpc/grpc/pull/32357,
but they should be merged in a separate PR
(we need the changes to be able to upgrade to monterey anyway and
there's no reason to make the boringssl upgrade PR more complicated by
bundling more fixes into it).

I've checked that the grpc_basictests_objc_examples and
grpc_ios_binary_size are green if switched to monterey.
Unfortunately it's hard to make grpc_basictests_objc_examples pass on
both monterey and mojave, so I suggest merging this PR at the same time
as CL to upgrade the kokoro jobs to monterey.
- that way both PR and continuous runs will remain green
- older branches would need a backport anyway

---------

Co-authored-by: Hannah Shi <hannahshisfb@gmail.com>
2023-03-01 09:55:33 +01:00
Mark D. Roth ffe8e6dfbb
core_banned_functions: use internal version of grpc_channel_destroy() inside C-core (#32495) 2023-02-28 13:01:44 -08:00
Mark D. Roth b3fb266937
h2_ssl_cert_test: re-add to build files and fix so that it builds (#32444)
Looks like this was accidentally dropped from our build files in
https://github.com/grpc/grpc/pull/21929, which means that this test
hasn't actually been built or run in almost 3 years. Unsurprisingly
after all that time, I had to make some changes to the test to get it to
actually build.
2023-02-24 12:36:17 -08:00
Richard Belleville e41e41e209
Remove protobuf 4.22.0 from testing (#32442)
This version broke backward compatibility in `plugin_pb2.py`, which is
presumably a relatively minor regression, since we have not yet heard
any complaints about it. This PR:

- Excludes `4.22.0` from installation
- _Includes_ protobuf pre-releases into testing so this can be caught
more quickly in the future.

When bad prereleases are caught, we can exclude them from testing in a
similar manner to this PR. We may eventually want to invest into a
system where we can define these bad versions centrally.
2023-02-22 09:40:48 -08:00
Craig Tiller d49e151306
[backoff] Add random early detection classifier (#32354)
<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-02-16 10:11:23 -08:00
Sergii Tkachenko 01d1f30571
PSM interop: update python kubernetes client from 12.0.1 to 25.3.0 (#32372) 2023-02-15 16:24:30 -08:00
Sergii Tkachenko 811510145c
PSM interop: bump minor pip dependencies (#32371) 2023-02-14 10:06:40 -08:00
Hannah Shi 2ac1b1708d
[ObjC] run cpp ios cronet test with bazel (#31808)
Cleanup and remove ios cpp test cronet

To test manually:
./tools/bazel test //src/objective-c/tests:CppCronetTests

@sampajano 
<!--

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-02-13 17:51:03 -08:00
Esun Kim ea4204bb51
Update boringssl to grpc-202302 (#32353)
This is to address
[CVE-2023-0286](https://www.trellix.com/en-us/about/newsroom/stories/research/cve-2023-0286-the-openssl-who-cried-severity-high.html)
2023-02-13 10:27:46 -08:00
Craig Tiller 0ecc18ef0f
[promises] Party: an activity with many participant promises (#32308)
<!--

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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-02-11 16:55:13 -08:00
AJ Heller 290af3a3e5
[codehealth] Teach core_banned_functions.py to check headers as well (#32342)
Fixes the banned function checker to include header files. Some things
had slipped through, such as `absl::make_unique`
033d55ffd3/tools/run_tests/sanity/core_banned_functions.py (L64-L65)




<!--

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.

-->

---------

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2023-02-10 10:35:08 -08:00
Richard Belleville c608379c70
Freeze xDS interop test runner dependencies (#31859)
* Freeze xDS interop test runner dependencies

* Address review comments

* Reviewer comments on scripts

* Create venv in tmpdir instead

* Moved freeze.sh to bin directory

* Fix shellcheck

* Update tools/run_tests/xds_k8s_test_driver/bin/freeze.sh

Co-authored-by: Sergii Tkachenko <hi@sergii.org>

* Revert

---------

Co-authored-by: Sergii Tkachenko <hi@sergii.org>
2023-02-07 18:32:23 -08:00
Craig Tiller 29d8beee0a
[http2] Dont drop connections on metadata limit exceeded (#32309)
* [http] Dont drop connections on metadata limit exceeded

* remove bad test

* Automated change: Fix sanity tests

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-02-07 08:27:04 -08:00
Mickaël Guérin 56ad4d964a
Support python 3.11 on aarch64 (#32270)
* Support python 3.11 on aarch64

Fixes https://github.com/grpc/grpc/issues/30927

* Change base tag to something more specific

* Update current version

---------

Co-authored-by: Richard Belleville <rbellevi@google.com>
2023-02-06 12:21:59 -08:00
Craig Tiller c9b47f8584
[promises] Remove TryConcurrently - it was the wrong idea (#32298) 2023-02-06 10:54:43 -08:00
Esun Kim 6943c1841f
Excluding more tests from build_submodule_at_head (#32290) 2023-02-03 10:25:29 -08:00