aboutsummaryrefslogtreecommitdiff
path: root/config.w32
AgeCommit message (Collapse)Author
2024-01-12[chttp2] Rework settings management to be a c++ type (#35449)Craig Tiller
Closes #35449 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35449 from ctiller:h2-settings f67e542a8b557617838e19ace37250ecff25172b PiperOrigin-RevId: 597970333
2024-01-10[call-v3] Move `grpc_call_final_info` into its own target (#35504)Craig Tiller
We probably want to reconsider this types role in the system, but for now removing it would be a large job. Move it to somewhere isolated for now. Closes #35504 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35504 from ctiller:move-it-stats 9ee755db798fa0aaaaed1855990a764b5a7078f0 PiperOrigin-RevId: 597382258
2024-01-09[xDS] read connection idle timeout from CDS resource (#35395)Mark D. Roth
Part of the work needed for in-progress gRFC A75 (https://github.com/grpc/proposal/pull/405). Closes #35395 PiperOrigin-RevId: 597064473
2024-01-09[EventEngine] Rename Posix native resolver (#35491)AJ Heller
Closes #35491 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35491 from drfloob:cleanup-posix-ee-native-resolver 1c97ff5216a8e5d6873a70ec9f1cf0c43b6f4e27 PiperOrigin-RevId: 597035026
2024-01-09[EventEngine] Implement Windows Native Resolver (#35458)AJ Heller
Closes #35458 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35458 from drfloob:windows-native-ee-resolver 364b7103424f0b15d44d4385fd2ea0d323ab6b47 PiperOrigin-RevId: 596981099
2024-01-02[chttp2] Remove a bunch of mostly-rolled-out experiments (#35426)Craig Tiller
- `memory_pressure_controller` finally - allows deletion of pid_controller throughout the codebase - `overload_protection` - one of the http2 rapid reset mitigations - `red_max_concurrent_streams` - another http2 rapid reset mitigation Closes #35426 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35426 from ctiller:new-years-cleanse 4651672e7e984a6adc2cd85ffa20cbd9b27c4608 PiperOrigin-RevId: 595205029
2024-01-02[xDS] move CDS and EDS watchers into xds resolver (#35011)Mark D. Roth
Implements gRFC A74 (https://github.com/grpc/proposal/pull/404). Closes #35011 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35011 from markdroth:xds_watchers_in_xds_resolver a39f71f37fc188f26dafc8fa8d09251e08abbc07 PiperOrigin-RevId: 595134549
2023-12-15Automated rollback of commit a5a25c7dad9ebcdb85b9d8ca282e4da7db292520.Craig Tiller
PiperOrigin-RevId: 591269197
2023-12-14Automated rollback of commit b455726401587212a39bb43158e20f40aad3e540.gRPC Team Bot
PiperOrigin-RevId: 591089109
2023-12-14[call-v3] Convert server auth filter (#35299)Craig Tiller
Closes #35299 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35299 from ctiller:v3-server-auth 32c3ee4821ee88978474ccb781fc8871b7c3583d PiperOrigin-RevId: 591000230
2023-12-11[call-v3] Convert message compression filter (#35269)Craig Tiller
Closes #35269 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35269 from ctiller:cg-compress 0304821f07f29e9132799d46a2cdf7bb8dfb5309 PiperOrigin-RevId: 590010564
2023-12-11[call-v3] Idle/max-age filters (#35270)Craig Tiller
Closes #35270 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35270 from ctiller:cg-idle 5312003ca67a3cc0841e6e2ff938161fd59bfda4 PiperOrigin-RevId: 589913523
2023-12-08[EventEngine] Add virtual a MakeSlice method into MemoryAllocatorImpl and ↵Vignesh Babu
move its default implementation to GrpcMemoryAllocatorImpl PiperOrigin-RevId: 589155443
2023-12-06[EventEngine] Posix NativeDNSResolver implementation (#35153)Yijie Ma
<!-- 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 #35153 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35153 from yijiem:native_dns_resolver a4107f7d812c5f9986b1160e20b4ae9fee6e6e62 PiperOrigin-RevId: 588543137
2023-11-10[deps] Upgrade protobuf version to v25.0 (#34513)Adam Cozzette
This commit upgrades gRPC to protobuf v25.0 and makes some fixes to account for upb changes. One major change is that upb has been merged into the protobuf repo, so we can now drop the separate `@upb` dependency. Another is that `.upb.c` files no longer exist and there are new `.upb_minitable.h` and `.upb_minitable.c` files. The longer filenames exceeded a Windows restriction, so to work around that I renamed the `upb-generated` directory to just `upb-gen`, and likewise for `upbdefs-generated`.
2023-11-09[EventEngine] WindowsDNSResolver Implementation (#34400)Yijie Ma
Design is documented at [go/windows-dns-resolver-issue](http://go/windows-dns-resolver-issue) (note that the design doc is slightly outdated regarding the shared ownership model of the virtual socket that was implemented in https://github.com/grpc/grpc/pull/34400/commits/13bd2b404eee1770c73f70d5ef49638f7b0e0dd2). Passed `//test/cpp/naming:resolver_component_tests_runner_invoker` and `//test/cpp/naming:cancel_ares_query_test`: ``` C:\Users\yijiem\projects\grpc>bazel --output_base=C:\bazel6 test --dynamic_mode=off --verbose_failures --test_env=GRPC_EXPERIMENTS=event_engine_dns --test_env=GRPC_VERBOSITY=debug --test_env=GRPC_TRACE=cares_resolver --enable_runfiles=yes --nocache_test_results //test/cpp/naming:resolver_component_tests_runner_invoker INFO: Analyzed target //test/cpp/naming:resolver_component_tests_runner_invoker (1 packages loaded, 8 targets configured). INFO: Found 1 test target... INFO: From Compiling src/core/lib/event_engine/windows/windows_engine.cc: C:\bazel6\execroot\com_github_grpc_grpc\src/core/lib/channel/channel_args.h(287): warning C4312: 'reinterpret_cast': conversion from 'int' to 'void *' of greater size Target //test/cpp/naming:resolver_component_tests_runner_invoker up-to-date: bazel-bin/test/cpp/naming/resolver_component_tests_runner_invoker.exe INFO: Elapsed time: 230.374s, Critical Path: 228.54s INFO: 9 processes: 2 internal, 7 local. INFO: Build completed successfully, 9 total actions //test/cpp/naming:resolver_component_tests_runner_invoker PASSED in 221.2s Executed 1 out of 1 test: 1 test passes. ``` ``` C:\Users\yijiem\projects\grpc>bazel --output_base=C:\bazel6 test --dynamic_mode=off --verbose_failures --test_env=GRPC_EXPERIMENTS=event_engine_dns --test_env=GRPC_VERBOSITY=debug --test_env=GRPC_TRACE=cares_resolver --enable_runfiles=yes --nocache_test_results //test/cpp/naming:cancel_ares_query_test INFO: Analyzed target //test/cpp/naming:cancel_ares_query_test (0 packages loaded, 0 targets configured). INFO: Found 1 test target... Target //test/cpp/naming:cancel_ares_query_test up-to-date: bazel-bin/test/cpp/naming/cancel_ares_query_test.exe INFO: Elapsed time: 49.656s, Critical Path: 48.00s INFO: 6 processes: 2 internal, 4 local. INFO: Build completed successfully, 6 total actions //test/cpp/naming:cancel_ares_query_test PASSED in 43.0s Executed 1 out of 1 test: 1 test passes. ``` <!-- 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-11-03[Security - Revocation] Crl Directory Watcher Implementation (#34749)Gregory Cooke
This adds the directory reloader implementation of the CrlProvider. This will periodically reload CRL files in a directory per [gRFC A69](https://github.com/grpc/proposal/pull/382) Included in this is the following: * A public API to create the `DirectoryReloaderCrlProvider` * A basic directory interface in gprpp and platform specific impls for getting the list of files in a directory (unfortunately prior C++17, there is no std::filesystem, so we have to have platform specific impls) * The implementation of `DirectoryReloaderCrlProvider` takes an event_engine and a directory interface. This allows us to test using the fuzzing event engine for time mocking, and to implement a test directory interface so we avoid having to make temporary directories and files in the tests. This is notably not in `include`, and the `CreateDirectoryReloaderCrlProvider` is the only way to construct one from the public API, so we don't expose the event engine and directory details to the user. --------- Co-authored-by: gtcooke94 <gtcooke94@users.noreply.github.com>
2023-10-19[TLS - Revocation] Crl Provider (#34715)Gregory Cooke
This reverts commit 7af5efcfd33da23e237ae09eb8ac9f60711f08aa.
2023-10-17Revert "[TLS - Revocation] Crl Provider (#33786)" (#34713)apolcyn
This reverts commit 0f0396ae928d559266dfa2e096f3f24b3e4ab0e4.
2023-10-17[channel-stack] Make ordering explicit (#32852)Craig Tiller
Ditch the old priority scheme for ordering filters, instead explicitly mark up before/after constraints. --------- Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-10-17[TLS - Revocation] Crl Provider (#33786)Gregory Cooke
The basic APIs for the CRL Reloading features. This adds external types to represent CRL Providers, CRLs, and CertificateInfo. Internally we will use `CrlImpl` - this layer is needed to hide OpenSSL details from the user. GRFC - https://github.com/grpc/proposal/pull/382 Things Done * Add external API for `CrlProvider`, `Crl`, `CertInfo` (`CertInfo` is used during CRL lookup rather than passing the entire certificate). * Add code paths in `ssl_transport_security` to utilize CRL providers * Add `StaticCrlProvider` * Refactor `crl_ssl_transport_security_test.cc` so it is more extensible and can be used with providers
2023-10-12[chttp2] Bound write sizes based on observed write performance (#34665)Craig Tiller
Instead of fixing a target size for writes, try to adapt it a little to observed bandwidth. The initial algorithm tries to get large writes within 100-1000ms maximum delay - this range probably wants to be tuned, but let's see. The hope here is that on slow connections we can not back buffer so much and so when we need to send a ping-ack it's possible without great delay.
2023-10-12[promises] Sketch out a spot for the in-process transport promise conversion ↵Craig Tiller
(#34616) Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-10-10[chttp2] Experiments for rst_stream pushback (#34642)Craig Tiller
Experiment 1: On RST_STREAM: reduce MAX_CONCURRENT_STREAMS for one round trip. Experiment 2: If a settings frame is outstanding with a lower MAX_CONCURRENT_STREAMS than is configured, and we receive a new incoming stream that would exceed the new cap, randomly reject it. --------- Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-09-28[resolver and LB policy APIs] reland: change address list to support ↵Mark D. Roth
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[chttp2] Continue refactoring towards promises (#34437)Craig Tiller
Isolate ping callback tracking to its own file. Also takes the opportunity to simplify keepalive code by applying the ping timeout to all pings. Adds an experiment to allow multiple pings outstanding too (this was originally an accidental behavior change of the work, but one that I think may be useful going forward). --------- Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-09-28Revert "[resolver and LB policy APIs] change address list to support ↵Mark D. Roth
multiple addresses per endpoint" (#34527) Reverts grpc/grpc#33567 due to import problems.
2023-09-28[resolver and LB policy APIs] change address list to support multiple ↵Mark D. Roth
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-15[EventEngine] Delete OriginalThreadPool, remove work_stealing experiment ↵AJ Heller
(#34315) This has been stable for a bit, everywhere that the EventEngine is enabled. Going forward, I think the event_engine_{client|listener} experiments can probably be used to regulate thread-pool-specific issues. --------- Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2023-09-14[round_robin] 4th attempt: delegate to pick_first as per dualstack design ↵Mark D. Roth
(#34337) Most recent attempt was #34320, reverted in #34335. The first commit here is a pure revert. The second commit fixes the outlier_detection unit test to pass both with and without the experiment.
2023-09-13[Build] re-enable grpc++_unsecure library without ssl dependencies (#34327)David Chamberlin
This is a follow up to https://github.com/grpc/grpc/pull/34103 That pull request explicitly aimed to introduce shared library builds for Windows (DLLs) while effecting zero material change to the existing build pipelines. That aspiration meant that the grpc++_unsecure library had to be effectively excluded from the build (because including it would have also included a dependency on openssl, which makes no sense given its purpose) This PR addresses that by: * Extracting the single function in grpc_tls_certificate_provider with a dependency on openssl into a separate compilation unit * Including that new .cc file into the grpc library * Including grpc_tls_certificate_provider and one other source file into grpc_unsecure for the Windows DLL build only. * Reinstating the grpc++_unsecure library which is a prerequisite for many tests. * Regenerating all files affected by the changes in Bazel BUILD that introduce the new source file. This change does affect the operation of other build pipelines - I have confirmed that it does not break the Linux Bazel build. <!-- 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-09-13Revert "[round_robin] third attempt: delegate to pick_first as per dualstack ↵Mark D. Roth
design" (#34335) Reverts grpc/grpc#34320
2023-09-12[round_robin] third attempt: delegate to pick_first as per dualstack design ↵Mark D. Roth
(#34320) Previous attempt was #34241, reverted in #34317. The second commit here makes the experiment disablable, so that we can roll it out slowly internally.
2023-09-11Revert "[round_robin] delegate to pick_first as per dualstack design" (#34317)Craig Tiller
Reverts grpc/grpc#34241
2023-09-11[round_robin] delegate to pick_first as per dualstack design (#34241)Mark D. Roth
Rolls forward the remaining changes from #32692, which were rolled back in #33718.
2023-09-05[HTTP Proxy] Rename source/header and move test (#34221)Eugene Ostroukhov
2023-08-29[Deps] Upgrade Protobuf and Upb to 24.x (#34123)Esun Kim
On top of https://github.com/grpc/grpc/pull/34120
2023-08-21[Deps] Update boringssl 202308211007 (#34115)Esun Kim
Part of gRPC release
2023-08-21[xDS] avoid creating duplicate hierarchical path attribute values (#34106)Mark D. Roth
2023-08-17[EventEngine] Improve lock contention in WorkStealingThreadPool ↵AJ Heller
(alternative) (#34065) Proposed alternative to https://github.com/grpc/grpc/pull/34024. This version has a simpler, faster busy-count implementation based on a sharded set of atomic counts: fast increment/decrement operations, relatively slower summation of total counts (which need to happen much less frequently).
2023-08-16[build metadata] Bazel to "other build systems" improvements (#33803)Jan Tattermusch
- Extract build metadata for some external dependencies from bazel build. This is achieved by letting extract_metadata_from_bazel_xml.py analyze some external libraries and sources. The logic is basically the same as for internal libraries, I only needed to teach extract_metadata_from_bazel_xml.py which external libraries it is allowed to analyze. * currently, the list of source files is automatically determined for `z`, `upb`, `re2` and `gtest` dependencies (at least for the case where we're building in "embedded" mode - e.g. mostly native extensions for python, php, ruby etc. - cmake has the ability to replace some of these dependencies by actual cmake dependency.) - Eliminate the need for manually written gen_build_yaml.py for some dependencies. - Make the info on target dependencies in build_autogenerated.yaml more accurate and complete. Until now, there were some depdendencies that were allowed to show up in build_autogenerated.yaml and some that were being skipped. This made generating the CMakeLists.txt and Makefile quite confusing (since some dependencies are being explicitly mentioned and some had to be assumed by the build system). - Overhaul the Makefile * the Makefile is currently only used internally (e.g. for ruby and PHP builds) * until now, the makefile wasn't really using the info about which targets depend on what libraries, but it was effectively hardcoding the depedendency data (by magically "knowing" what is the list of all the stuff that e.g. "grpc" depends on). * After the overhaul, the Makefile.template now actually looks at the library dependencies and uses them when generating the makefile. This gives a more correct and easier to maintain makefile. * since csharp is no longer on the master branch, remove all mentions of "csharp" targets in the Makefile. Other notable changes: - make extract_metadata_from_bazel_xml.py capable of resolving workspace bind() rules (so that it knows the real name of the target that is referred to as e.g. `//external:xyz`) TODO: - [DONE] ~~pkgconfig C++ distribtest~~ - [DONE} ~~update third_party/README to reflect changes in how some deps get updated now.~~ Planned followups: - cleanup naming of some targets in build metadata and buildsystem templates: libssl vs boringssl, ares vs cares etc. - further cleanup of Makefile - further cleanup of CMakeLists.txt - remote the need from manually hardcoding extra metadata for targets in build_autogenerated.yaml. Either add logic that determines the properties of targets automatically, or use metadata from bazel BUILD.
2023-08-11[Deps] Update abseil to 20230802 (#33974)Yijie Ma
<!-- 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-08-04[ObjC] dns service resolver for cf event engine (#33971)Hannah Shi
re-submit of #33233 with refactored tests 1. split ios event engine tests to client tests (require oracle engine) and unit test 2. disable dns server setup in [dns_test.cc](https://github.com/grpc/grpc/blob/master/test/core/event_engine/test_suite/tests/dns_test.cc#L127) for ios test, this is what's caused the revert. 3. disable dns_test in cf_event_engine_test for MacOS
2023-08-02Revert "[ObjC] dns service resolver for cf event engine" (#33964)AJ Heller
Reverts grpc/grpc#33233. This is failing 100% of builds https://source.cloud.google.com/results/invocations/248656d3-15ac-4d42-a2f8-6bec5c411e67/targets
2023-08-01[ObjC] dns service resolver for cf event engine (#33233)Hannah Shi
Implement DNS using dns service for iOS. Current limitation: 1. Using a custom name server is not supported. 2. Only supports `LookupHostname`. `LookupSRV` and `LookupTXT` are not implemented. 3. Not tested with single stack (ipv4 or ipv6) environment 4. ~Not tested with multiple ip records per stack~ manually tested with wsj.com 5. Not tested with multiple interface environment
2023-07-26[chttp2] Split ping policy from transport (#33703)Craig Tiller
Why: Cleanup for chttp2_transport ahead of promise conversion - lots of logic has become interleaved throughout chttp2, so some effort to isolate logic out is warranted ahead of that conversion. What: Split configuration and policy tracking for each of ping rate throttling and abuse detection into their own modules. Add tests for them. Incidentally: Split channel args into their own header so that we can split the policy stuff into separate build targets. --------- Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-07-21[EventEngine] PosixEventEngine DNS Resolver (#32701)Yijie Ma
This PR implements a c-ares based DNS resolver for EventEngine with the reference from the original [grpc_ares_wrapper.h](../blob/master/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h). The PosixEventEngine DNSResolver is implemented on top of that. Tests which use the client channel resolver API ([resolver.h](../blob/master/src/core/lib/resolver/resolver.h#L54)) are ported, namely the [resolver_component_test.cc](../blob/master/test/cpp/naming/resolver_component_test.cc) and the [cancel_ares_query_test.cc](../blob/master/test/cpp/naming/cancel_ares_query_test.cc). The WindowsEventEngine DNSResolver will use the same EventEngine's grpc_ares_wrapper and will be worked on next. The [resolve_address_test.cc](https://github.com/grpc/grpc/blob/master/test/core/iomgr/resolve_address_test.cc) which uses the iomgr [DNSResolver](../blob/master/src/core/lib/iomgr/resolve_address.h#L44) API has been ported to EventEngine's dns_test.cc. That leaves only 2 tests which use iomgr's API, notably the [dns_resolver_cooldown_test.cc](../blob/master/test/core/client_channel/resolvers/dns_resolver_cooldown_test.cc) and the [goaway_server_test.cc](../blob/master/test/core/end2end/goaway_server_test.cc) which probably need to be restructured to use EventEngine DNSResolver (for one thing they override the original grpc_ares_wrapper's free functions). I will try to tackle these in the next step. <!-- 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-07-14[LB policies] revert changes for dualstack design (#33718)Mark D. Roth
This reverts the following PRs: #32692 #33087 #33093 #33427 #33568 These changes seem to have introduced some flaky crashes. Reverting while I investigate.
2023-07-13[BoringSSL] Update third_party/boringssl-with-bazel (#33690)AJ Heller
Change was created by the release automation script. See go/grpc-release
2023-07-11[promises] Change physical layout of retry filter (#33479)Craig Tiller
In preparation for implementing the promise based version, separate out the legacy call data from the filter. There are two commits here, each representing one phase of this code movement: 66676d398cc5a4e9bdc6dbdc7290f45611f3687d moves `class RetryFilter` into the header and the vtable name into that class, as this will be shared code between the implementations 4c84f115ad48aa1c5b343fcee702001cac4a3050 then moves `class RetryFilter::CallData` into `class RetryFilterLegacyCallData`, and moves *that* into its own file Doing so makes me less confused as to what I'm editing going forward. No functionality should be affected. --------- Co-authored-by: ctiller <ctiller@users.noreply.github.com>