Commit Graph

8359 Commits

Author SHA1 Message Date
Esun Kim d3a92c937e [CI] Added MSVC 2022 test (#36236)
- Added Visual C++ 2022 test to Windows C/C++ test set
- Windows potability test is now running two tests
  - CMake / Ninja / Visual C++ 2019 on x86
  - CMake / MSBuild / Visual C++ 2022 on x64

Closes #36236

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36236 from veblush:vc2022 100085366f
PiperOrigin-RevId: 623244062
2024-04-09 12:16:05 -07:00
Eugene Ostroukhov 4e735be35a [xds] Fallback implementation (#36145)
As per [gRFC A71](https://github.com/grpc/proposal/blob/master/A71-xds-fallback.md).

Closes #36145

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36145 from eugeneo:fallback-review 4871c0b316
PiperOrigin-RevId: 623211613
2024-04-09 10:38:01 -07:00
Xuan Wang 73b0ac2067 [Python Version] Drop support for Python 3.7 (#34450)
### NOTE
* We shouldn't merge this PR until GCP cloud functions drops support for Python 3.7 ([Currently scheduled for GCF](https://cloud.google.com/functions/docs/runtime-support#python))

As part of supporting Python 3.12, we're now officially drop support for Python 3.7.

This PR:

* Changed supported Python version from 3.7 to 3.8 in README.
* Replaced distribution test image from `debian:buster` to `debian:bullseye` since the default Python version in buster is 3.7.

<!--

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.

-->

Closes #34450

PiperOrigin-RevId: 622899511
2024-04-08 11:17:51 -07:00
Esun Kim 78b9d84fd3 [Dep] Rollback Protobuf upgrade to v25.1 (#36247)
This is for gRPC Python that has an issue with Protobuf Python v26

Closes #36247

PiperOrigin-RevId: 621629528
2024-04-03 13:56:36 -07:00
Craig Tiller aa67587bac [sanity] Remove port_platform.h check (#36234)
Soon we'll want to wind back some of the custom header ordering rules that we enforce in gRPC to make some workflow issues easier. As a first step, remove the `port_platform.h` as first header requirement -- where we need it, CI will show a problem --  and removing it lets us remove one of the bigger ordering constraints we have.

Closes #36234

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36234 from ctiller:port-platform-requirement 93eb96a7b4
PiperOrigin-RevId: 621327253
2024-04-02 16:22:56 -07:00
Yash Tibrewal a020e1d229 [Tests] Fix build scripts for linux portability (#36220)
Ref: b/332425004

Adding a workaround for x86 builds that run into trouble with using an installed abseil library.

Closes #36220

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36220 from yashykt:FixPortabilityLinux 672ccdb3ff
PiperOrigin-RevId: 621259080
2024-04-02 12:27:12 -07:00
Yash Tibrewal 4d570c29ee [Tests] Fix build scripts for windows portability (#36211)
Fixes windows portability CI test - https://fusion2.corp.google.com/invocations/41fdd087-9cdc-4b6b-bf47-c4f70b978830/targets

Changes -
* Install files in a `cmake/install` directory instead of system directory.
* Remove unnecessary targets built and installed from opentelemetry (benchmarking and etw exporter).

Ref b/332425005

Closes #36211

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36211 from yashykt:OTelPluginTestCIFixes be703db302
PiperOrigin-RevId: 621243515
2024-04-02 11:34:59 -07:00
Esun Kim 03312884dc [Deps] Upgraded protobuf to v26.1 (#35796)
This is to upgrade Protobuf to v26.1 along with upb, and utf8_range.

Closes #35796

PiperOrigin-RevId: 620259696
2024-03-29 09:19:06 -07:00
Mark D. Roth e715261ac6 [slice] remove absl_base64 experiment (#36178)
Closes #36178

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36178 from markdroth:b64_remove 0139e3bce8
PiperOrigin-RevId: 619288082
2024-03-26 13:16:27 -07:00
Yash Tibrewal e06e45f2af [OTel C++] Do not add otel_plugin_test with CMake if the otel plugin is not enabled (#36128)
This should fix our interop builds

Closes #36128

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36128 from yashykt:OTelPluginCIFix 98165a868b
PiperOrigin-RevId: 615923868
2024-03-14 15:33:36 -07:00
Yash Tibrewal 1ce894c977 [OTel] Add CI support for tests via CMake (#36087)
Earlier, the tests just had bazel support. With CMake support added in #36063, we can also add CI CMake support for the tests. A major benefit of this is that we also get coverage for the various platforms that we test from our portability test suite.

Closes #36087

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36087 from yashykt:OTelCISupport b28fbe02e5
PiperOrigin-RevId: 615543685
2024-03-13 14:28:41 -07:00
Xuan Wang 0f77a5ad9e [BoringSSL] Update third_party/boringssl-with-bazel (#36089)
Change was created by the release automation script. See go/grpc-release.

Additional Changes:
* Boring SSL started to [Require SSE2 when targetting 32-bit x86](56d3ad9d23), thus added `-msse2` to fix some build failures.

Closes #36089

PiperOrigin-RevId: 614822548
2024-03-11 15:58:36 -07:00
AJ Heller 25ef96c4ad [test] Enable callback benchmarks (#36055)
Closes #36055

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36055 from drfloob:enable-callback-benchmarks 42283a52c9
PiperOrigin-RevId: 612975697
2024-03-05 14:47:25 -08:00
Mark D. Roth 0213523907 [build] move channel out of grpc_base (#35924)
This adds the following new targets:
- `channel`: A virtual interface for a channel.
- `legacy_channel`: A channel implementation that supports the filter stack and call v2.
- `channel_create`: A standalone function to create a channel.
- `server_interface`: A base class with a few accessor methods used in surface/call.cc.
- `server`: The actual server implementation.
- `api_trace`, `call_tracer`, `server_call_tracer_filter`, `call_finalization`: These were split out of `grpc_base` to avoid various dependency problems.
- `compression`: This is a combination of the previously existing `compression_internal` target and the compression code that was part of `grpc_base`.

Closes #35924

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35924 from markdroth:channel_interface 94a7fffddb
PiperOrigin-RevId: 612512438
2024-03-04 11:07:17 -08:00
Yash Tibrewal 4ce4f4ea3a [OTel] Add OTel C++ as a submodule (#36032)
Closes #36032

PiperOrigin-RevId: 611657802
2024-02-29 18:06:02 -08:00
tony 5043eb4d65 [csharp] Fix csharp_ubuntu2204_x64 docker image (#36019)
Fix the docker image for C# distribution tests - csharp_ubuntu2204_x64

The package that installed the .NET 7.0 SDK is missing setting up links and thus the `dotnet` command cannot find the SDK. Setting this links has been added to the dockerfile.

**NOTE**: I'm unable to update `tools/dockerfile/distribtest/csharp_ubuntu2204_x64.current_version` as I don't have access to the artifact registry.

Closes #36019

PiperOrigin-RevId: 611590679
2024-02-29 14:10:36 -08:00
Xuan Wang 9b424b5dd4 [Python o11y] Fix Python O11Y artifacts name (#35965)
Update observability to PYPI failed because the artifact name is not correct.

This PR:
* Fix the artifacts name.
* Add step to test observability artifacts in `test_packages.sh`.
* Added `-fno-ipa-cp` compile flag.
  * We're seeing `inlining failed in call to always_inline 'vsnprintf': function body can be overwritten at link time` errors when building from source using musl libc.
  * Based on [investigation](https://gitlab.alpinelinux.org/alpine/aports/-/issues/8626), it's because we're using `-flto` flag.
  * One solution is to [disable fortify by adding this flag](https://gitlab.alpinelinux.org/alpine/aports/-/issues/8626).

After this PR, the observability artifacts have the correct name:
* [Distribution Tests Python Linux](https://pantheon.corp.google.com/storage/browser/grpc-testing-kokoro-prod/test_result_public/prod/grpc/core/pull_request/linux/grpc_distribtests_python/28687/20240223-105306/github/grpc/artifacts;tab=objects?pageState=(%22StorageObjectListTable%22:(%22f%22:%22%255B%255D%22))&e=13802955&mods=-logs_tg_prod&prefix=&forceOnObjectsSortingFiltering=false)

Also tested that the artifacts build in this PR can be successfully uploaded to testpypi:
* https://test.pypi.org/project/grpcio-observability/1.63.0.dev0

<!--

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.

-->

Closes #35965

PiperOrigin-RevId: 611268154
2024-02-28 16:33:28 -08:00
apolcyn 9054988785 [csharp] Use a stable/supported C# runtime in ubuntu 22.04 distribtest docker images (#35955)
The current .NET SDK in these tests is EOL, and we've been seeing strange SSL errors transiently.

Update to a supported version and remove cruft in the docker image that was there to install the older version.

TODO: submitting first with the ubuntu 22.04 image test skipped, need to follow-up with a fix and unskip the test

Closes #35955

PiperOrigin-RevId: 610798209
2024-02-27 10:34:33 -08:00
Yijie Ma fb4c043803 [Metrics] gRPC Non-Per-Call Metrics framework implementation (#35871)
<!--

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.

-->

Closes #35871

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35871 from yijiem:grpc-metrics 86ebe484ae
PiperOrigin-RevId: 609533796
2024-02-22 16:17:01 -08:00
Craig Tiller cf79445171 [chaotic-good] Fix channel creation (#35907)
Closes #35907

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35907 from ctiller:cucumber+carrot 185f65afb8
PiperOrigin-RevId: 607462304
2024-02-15 14:49:38 -08:00
Esun Kim 2ca568663f [CI] Upgraded the docker images for Ruby Distrib Tests (#35911)
- Dropped Ruby 2.7 test (Ruby 2.7 hit EOL 1 year ago)
- Upgraded the base image of Ruby docker images from Debian:10 to Debian:11 (Debian:10 hit EOL)

Closes #35911

PiperOrigin-RevId: 607088383
2024-02-14 13:34:40 -08:00
youyuanwu a58f83c947 [EventEngine] Support AF_UNIX for windows (#34801)
#22285
Unix domain socket has been added to windows: [AF_UNIX comes to Windows](https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/)

Golang net pkg has adopted this long ago:
https://go-review.googlesource.com/c/go/+/125456
https://go-review.googlesource.com/c/sys/+/132555
grpc-go already support this.

AF_UNIX on windows is seamlessly integrated with winsock API.
The modification needed are:
* Set the right address family AF_UNIX depending on the address config, instead of using AF_INET6 all the time.
* Ignore socket options for tcp.

Closes #34801

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/34801 from youyuanwu:dev 3d9b5c097b
PiperOrigin-RevId: 607083164
2024-02-14 13:15:57 -08:00
Eugene Ostroukhov 6df52f865f [test] Increase test timeout (#35887)
Closes #35887

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35887 from eugeneo:release/162 ed2f0f0856
PiperOrigin-RevId: 606382703
2024-02-12 15:27:33 -08:00
Mark D. Roth 41606054c2 [load_file] remove grpc_load_file() in favor of grpc_core::LoadFile() (#35857)
Closes #35857

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35857 from markdroth:highlander 7b7d95aaa9
PiperOrigin-RevId: 605742734
2024-02-09 15:16:24 -08:00
Craig Tiller d1cb0c0874 [chaotic-good] Bring up core e2e tests (#35663)
Closes #35663

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35663 from ctiller:shush-e2e 0c1f82ed71
PiperOrigin-RevId: 605717663
2024-02-09 13:34:46 -08:00
Richard Belleville 842057d8d5 [Build] Strip armv7 artifacts (#35832)
<!--

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.

-->

Closes #35832

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35832 from gnossen:strip_armv7 0cb7a3122c
PiperOrigin-RevId: 605401618
2024-02-08 12:58:13 -08:00
Eugene Ostroukhov 239399212a [BoringSSL] "Revert Update third_party/boringssl-with-bazel (#35842)" (#35847)
This reverts commit c968d1a56a.

Closes #35847

PiperOrigin-RevId: 605117622
2024-02-07 15:34:34 -08:00
Eugene Ostroukhov c968d1a56a [BoringSSL] Update third_party/boringssl-with-bazel (#35842)
Closes #35842

PiperOrigin-RevId: 605091673
2024-02-07 14:05:13 -08:00
Eugene Ostroukhov 038215b504 [BoringSSL] Revert "Update third_party/boringssl-with-bazel (#35811)" (#35834)
This reverts commit c2a2e8c09d.

Closes #35834

PiperOrigin-RevId: 604800979
2024-02-06 16:34:14 -08:00
Eugene Ostroukhov c2a2e8c09d [BoringSSL] Update third_party/boringssl-with-bazel (#35811)
Change was created by the release automation script. See go/grpc-release.

Closes #35811

PiperOrigin-RevId: 604701943
2024-02-06 11:02:39 -08:00
Xuan Wang 9aa3c5835a [Python O11y] Remove exporter from public API and refactor tests (#35792)
<!--

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.

-->

Closes #35792

PiperOrigin-RevId: 604695910
2024-02-06 10:48:40 -08:00
Mark D. Roth 10e83973e7 [reorg] move resolver code to src/core/resolver (#35804)
This new directory combines code from the following locations:
- src/core/ext/filters/client_channel/resolver
- src/core/lib/resolver

Closes #35804

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35804 from markdroth:client_channel_resolver_reorg2 30660e6b00
PiperOrigin-RevId: 604665835
2024-02-06 09:07:56 -08:00
Mark D. Roth 148f59c15a [reorg] move LB policy code to src/core/load_balancing (#35786)
This new directory combines code from the following locations:
- src/core/ext/filters/client_channel/lb_policy
- src/core/lib/load_balancing

Closes #35786

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35786 from markdroth:client_channel_resolver_reorg 98554efb98
PiperOrigin-RevId: 604351832
2024-02-05 10:05:35 -08:00
apolcyn f82ecf4b0b [ruby] add distrib tests for ruby 3.1-3.3 (#35788)
As title

Partial followup to https://github.com/grpc/grpc/pull/35399

Closes #35788

PiperOrigin-RevId: 603786425
2024-02-02 14:24:00 -08:00
Esun Kim 1f979d2a83 [BoringSSL] Update third_party/boringssl-with-bazel (#35768)
Change was created by the release automation script. See go/grpc-release.

On top of changes made by the script, `setup.py` had to be updated to have `/std:c11` option for MSVC to use c11 features for boringssl.

Closes #35768

PiperOrigin-RevId: 603403329
2024-02-01 10:06:33 -08:00
Esun Kim 714640d71f [Deps] Upgrade Abseil to 2024-01-16 (#35589)
Closes #35589

PiperOrigin-RevId: 601647295
2024-01-25 20:14:19 -08:00
Craig Tiller 576c37192c [cmake] build fix (#35661)
A fuzzer changed name, and we don't support building fuzzers with cmake.

Closes #35661

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35661 from ctiller:cmakey 9750b4c4ed
PiperOrigin-RevId: 601295049
2024-01-24 18:23:00 -08:00
Craig Tiller 870a66d9a0 [chaotic-good] Connection setup & test suites (#35650)
Closes #35650

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35650 from ctiller:shush-tsan fd55ea1be3
PiperOrigin-RevId: 601221780
2024-01-24 13:46:08 -08:00
Eugene Ostroukhov 2fc9dd1546 [build] Update `envoy-api` and `xds` dependencies (#35603)
Closes: #34966

Closes #35603

PiperOrigin-RevId: 600919492
2024-01-23 15:15:47 -08:00
Xuan Wang 1afcc3bd13 [Python O11y] Build and distrib O11y package (#35578)
Actually build O11y artifacts.

### Testing
* Manually installed the `.whl` and verified it's working locally (For Python 3.8 + Linux).

<!--

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.

-->

Closes #35578

PiperOrigin-RevId: 600566829
2024-01-22 14:18:12 -08:00
Leonardo Pistone 6ff898a10b Fixup: allow to configure BigQuery project (#35601)
In #35384 these two lines were forgotten and introduced a bug in the
script.

Sorry for the mistake.

Closes #35601

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35601 from lepistone:fixup-bigquery-project 100d4d68ad
PiperOrigin-RevId: 599951984
2024-01-19 15:24:44 -08:00
Richard Belleville 7e7b4fd1a4 Fix breakage when built against protobuf head (#34945)
This PR is required in order to upgrade to the `master` branch version of protobuf. To do this, we upgrade to the latest version of `rules_python` by:

- Adding in explicit dependencies on all PyPi Bazel test dependencies
  - Resolving the circular dependency this creates for `xds-protos` by giving it a Bazel build
    - Generating the Python code for `xds-protos` as part of `generate-projects.sh` since doing so directly in Bazel would be highly fragily, dependent on many other projects' Bazel builds

Closes #34945

PiperOrigin-RevId: 599875020
2024-01-19 12:43:14 -08:00
Esun Kim 24f8963716 [Test] Removed obsolete node test from run_tests.py (#35525)
I guess we don't need Node in run_tests.py any more?

Closes #35525

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35525 from veblush:node-x 0572935b14
PiperOrigin-RevId: 599874102
2024-01-19 10:36:31 -08:00
Esun Kim a329d43875 [CI] Fixed missing clang-17 changes (#35610)
Closes #35610

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35610 from veblush:clang-17-missing e59bca5798
PiperOrigin-RevId: 599870245
2024-01-19 10:23:07 -08:00
Craig Tiller 1751f1043e [transport] Add a transport test suite for promise based transports (#35476)
Implemented for inproc & chaotic-good

Closes #35476

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35476 from ctiller:v3-svall 5358538d54
PiperOrigin-RevId: 599701775
2024-01-18 20:09:21 -08:00
Craig Tiller 98472179fb [promises] Add an observer type (#35552)
We've got a few situations coming up with promises that will want a "broadcast new value to everywhere" situation.

Closes #35552

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35552 from ctiller:obs 30fd697ae3
PiperOrigin-RevId: 599609399
2024-01-18 13:35:49 -08:00
Alan Wu b85ebb9bba [ruby] Fix use-after-free for post-fork channel recreation (#35488)
The `grpc_channel_args` is retained on the Ruby object and used for recreating the channel after forking in
grpc_rb_channel_maybe_recreate_channel_after_fork(). Previously, the key for each argument was taken from a Ruby string directly, which could be invalidated if the Ruby string is modified or moved by the GC. Duplicate the string for the key instead, so we own it.

Reproducer in https://github.com/grpc/grpc/issues/35489

<!--

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.

-->

Closes #35488

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35488 from Shopify:key-uaf c1813cee01
PiperOrigin-RevId: 599304551
2024-01-17 15:19:45 -08:00
Craig Tiller 584c0c0c98 [call-v3] Filter executor (#35533)
A call execution environment for the V3 runtime.

The `CallFilters` class will ultimately be a (private) member of `CallSpine`, and the `StackBuilder` component will be used by a channel when all of the filters it needs are known to allow the call spine to start processing a call.

This is accompanied by a reasonably extensive test suite.

I expect to fine tune semantics, implementation, and tests over the coming weeks/months as we iterate to bring up the rest of the pieces.

Closes #35533

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35533 from ctiller:filters 689c7b527b
PiperOrigin-RevId: 599220150
2024-01-17 10:39:37 -08:00
Craig Tiller c77ba326e9 [gprpp] Implement down_cast - a debug-time checked down cast (#35548)
Closes #35548

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35548 from ctiller:down_cast cd7501dadd
PiperOrigin-RevId: 599176414
2024-01-17 08:09:02 -08:00
Craig Tiller 9f6789e2b2 [chttp2] Rework settings management to be a c++ type (#35449)
Closes #35449

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35449 from ctiller:h2-settings f67e542a8b
PiperOrigin-RevId: 597970333
2024-01-12 15:21:05 -08:00