Commit Graph

1678 Commits

Author SHA1 Message Date
Craig Tiller 7e341a545a
[metadata] Add a hook point for custom metadata (#32650)
Aim here is to allow adding custom metadata types to the internal 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.

-->

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-03-27 19:43:07 -07: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
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
Alisha Nanda 19d06a78ec
Add random early rejection for metadata (#32600)
(hopefully last try)

Add new channel arg GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE as hard limit
for metadata. Change GRPC_ARG_MAX_METADATA_SIZE to be a soft limit.
Behavior is as follows:

Hard limit
(1) if hard limit is explicitly set, this will be used.
(2) if hard limit is not explicitly set, maximum of default and soft
limit * 1.25 (if soft limit is set) will be used.

Soft limit
(1) if soft limit is explicitly set, this will be used.
(2) if soft limit is not explicitly set, maximum of default and hard
limit * 0.8 (if hard limit is set) will be used.

Requests between soft and hard limit will be rejected randomly, requests
above hard limit will be rejected.
2023-03-27 14:13:20 -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
AJ Heller 85f7aa3468
[EventEngine] Windows Listener iomgr shims (#32541)
Exercised with the `//test/core/end2end:h2_full_test@*` set of tests,
using the `event_engine_listener` experiment.
2023-03-21 13:58:26 -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
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
Yash Tibrewal 5029af9578
OpenCensus: Use new CallTracer interfaces (#32618)
This change mostly aims to get OpenCensus to use the new
ServerCallTracer interface. Note that the interfaces nor the code are in
their final states. There are a bunch of moving pieces, but I thought
this might be a nice mid-step to check-in and make sure that our
internal traces can also work with these changes.

Overall changes -
1) call_tracer.h shows what the hierarchy of new call tracer interfaces
looks like. Open to renaming suggestions.
2) Moved most of the common interface between `CallAttemptTracer` and
`ServerCallTracer` into a common `CallTracerInterface`. We should be
able to eventually move `RecordReceivedTrailingMetadata` and `RecordEnd`
as well to these common interfaces, but it requires some additional
work.
3) The compression filter is now responsible for recording the recv and
send messages for both the subchannel call and the server, and adds in
ability to record compressed and decompressed messages as well.
4) The OpenCensus server filter now uses the new `ServerCallTracer`
interface, and so doesn't need to be a filter anymore.
5) A new ServerCallTracerFilter was added. Ideally, we should be able to
move it to the current connected filter, but it is in a bit of an
interesting state right now, so I would prefer making those changes in a
separate PR with Craig's eyes on it.
6) A new context element `GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE`
was created that replaces the old `GRPC_CONTEXT_CALL_TRACER`, and the
new `GRPC_CONTEXT_CALL_TRACER` is mainly to pass the `CallAttemptTracer`
down the stack. This should go away in the new promise-based world.



<!--

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.

-->

<!-- Reviewable:start -->
- - -
This change is [<img src="https://reviewable.io/review_button.svg"
height="34" align="absmiddle"
alt="Reviewable"/>](https://reviewable.io/reviews/grpc/grpc/32618)
<!-- Reviewable:end -->
2023-03-15 22:39:41 -07: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
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
AJ Heller 8f7cd1eeed
[EventEngine] WindowsEventEngine Listener v2 (#32488)
Continued from https://github.com/grpc/grpc/pull/32295 after landing the
cleanup and logging pieces separately.
2023-02-28 20:33:03 -08:00
AJ Heller 151399183f
[build] Require Windows-specific code to be cherrypicked (#32457)
Internal Windows builds will catch issues that we cannot yet catch in
OSS. This will be mostly remedied once we have clang-cl in our CI (See a
rough roadmap in https://github.com/grpc/grpc/pull/32448). For now, this
PR identifies folders where most Windows-specific code is developed, and
requires cherrypicks for PRs that touch anything inside those folders.

This PR also refactors gpr and gprpp source files to better isolate all
platform-specific code ~the Windows-only code~. ~I will reorganize the
other platform-specific files using this structure if there are no
objections.~

This subset of folders covers about half of the `#ifdef GPR_WINDOWS`
usages in gRPC, but nearly all of the actively-developed Windows code
locations.
2023-02-23 11:48:59 -08:00
Mark D. Roth 3faeb3af80
client channel: create a header file for internal interfaces (#32423)
This is just a bit of a code reorganization, no functional changes.
2023-02-21 13:12:29 -08:00
Mark D. Roth 50e6af14ff
Bump dev version to 1.54.0-dev (#32426) 2023-02-21 12:03:19 -08:00
Yash Tibrewal 04e3a8e73d
GCP Observability : Framework for detecting the environment (#32294)
This code is not plumbed through yet, but it provides the core
infrastructure needed to detect the proper GCP environment resources
needed to set up the labels/attributes/resources for stats, tracing and
logging.

Details on how the various environment resources are setup has been
derived by looking at java's cloud logging library and OpenTelemetry's
future plans. (Could be better explained in an offline review since some
links are internal).

Requesting @veblush for a full review and @markdroth for a structural
review.

<!--

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-16 16:20:20 -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
Yousuk Seung b98f527260
Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorde… (#32301)
* Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)" (#32279)" (#32293)"

This reverts commit 1f960697c5.

* Do not create CallMetricRecorder if call is null.
2023-02-06 12:00:39 -08:00
Craig Tiller 1f960697c5
Revert "Revert "Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)" (#32279)" (#32293)
This reverts commit 4475e74c6a.
2023-02-03 13:18:23 -08:00
Yousuk Seung 4475e74c6a
Revert "Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)" (#32279)
* Revert "Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)"

This reverts commit deb1e25543.

* Fix by caching call metric recording stuff in async request

PR #32106 caused msan errors in some tests while de-referencing the
server object where async calls are active after the server is
destroyed. Instead cache the ServerMetricRecorder pointer.

* copyright headers fixed

* clang fixes.
2023-02-03 11:49:32 -08:00
AJ Heller a163b983d8
[EventEngine] Remove SocketNotifier interface (#32277)
* [EventEngine] Remove SocketNotifier interface

* Automated change: Fix sanity tests

---------

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2023-02-03 09:18:16 -08:00
Xuan Wang deb1e25543
Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)
This reverts commit c7f641da0d.
2023-02-02 09:58:29 -08:00
AJ Heller a9e2ef199e
[EventEngine] Skip legacy fork handling for ExecCtx when in an EventEngine thread (#32229)
* [EventEngine] Implement EventEngine::IsWorkerThread()

* lighter-weight thread pool check

* add lightweight thread_local flag for EventEngine/iomgr fork

* generate_projects; add files

* fix

* back out EE implementation changes

* better description

* fix
2023-02-01 17:10:14 -08:00
Craig Tiller 0893fca089
[promises] Roll forward server promise calls with fixes (#32261)
* stuff

* spam-cleanup

* Revert "Revert "[promises] Server call (#31448)" (#32260)"

This reverts commit dbfb888e1f.

* spam-cleanup

* Automated change: Fix sanity tests

* asserts-for-sanity

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-02-01 16:07:46 -08:00
Yousuk Seung c7f641da0d
server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)
* backend metric sampling

* Comments addressed.

* More comments addressed.

* Pushing changes left behind locally.

* Removed empty lines

* Update OrcaService to use ServerMetricRecorder (no named metrics yet)

* Comments addressed.

* More comments addressed

* More comments addressed.

* Comments fixed

* Comments addressed.

* Test fixed

* make seq returned always up-to-date

* skip atomic load when not cached

* Fixed ABSL_GUARDED_BY

* Comments addressed except client_lb_end2end_test

* test updated

* Comments addressed

* BUILD fix.

* BackendMetricDataState moved to a separate header

* comments addressed

* Fixed clang and buildifier errors

* More sanity check errors fixed.

* Fixed xds tests

* Ran generate_projects.sh

* Comments addressed

* comments addressed.

* generate project

* Build fixed

* generate project

* sanity check errors fixed

* test fixed

* Backup poller period override moved to main()

* Also move cfstream override

* Clang fixes, sanitize

* generate_projects.sh

* portable print format fix

* Removed outdated comment
2023-02-01 14:54:57 -08:00
Craig Tiller dbfb888e1f
Revert "[promises] Server call (#31448)" (#32260)
* Revert "[promises] Server call (#31448)"

This reverts commit bbeb15006a.

* clang-fmt
2023-02-01 09:18:04 -08:00
Craig Tiller bbeb15006a
[promises] Server call (#31448)
* add experiment

* allow instantiation

* scratchings

* scratchings

* sniffly

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* progress

* change pipe labels to enable server code to be written

* better api

* Automated change: Fix sanity tests

* progress

* [promises] Implementation of deadline for server-based-calls

* compression filter compiles again

* Automated change: Fix sanity tests

* fix

* server tracing fixes

* get client initial metadata

* progress

* progress

* server call surface progress

* Automated change: Fix sanity tests

* move payload

* server-progress

* recv-message-server-connchan

* logging

* fix context-gate

* recv fix@top

* Automated change: Fix sanity tests

* recv close on server

* top termination start

* [promises] Move Empty to be first class

* fixes

* fix

* flow control fix

* got to orphan!

* orphan

* call orphan

* spam cleanup

* fix

* new cancelation semantics

* progress

* large metadata fixes

* fix

* fix

* log

* better logs

* fix-chanz

* logging, necessaryness

* fix typo

* fixes

* fix

* fix

* fix-pipe

* cleanup logging

* fix

* build-fix

* fix

* Automated change: Fix sanity tests

* logging

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* better primitive

* Revert "better primitive"

This reverts commit 119b5ee244.

* fix

* fix

* trrracing

* Automated change: Fix sanity tests

* get-trailing-metadata

* cancellation

* Automated change: Fix sanity tests

* add transform pipeline to pipe

* add transform pipeline to pipe

* interceptor lists

* new server initial md api into filters

* convert connected_channel

* convert call

* initial promise based filter conversion

* convert promise based filter

* build fixes

* compile fix

* fixes

* fix ordering

* fixes

* check-metadata

* revert later: debug code

* better debug

* fix metadata ordering with messages in promise based filter

* fix ordering problem between batch completion and promise completion

* properly handle failure on receive message path on client

* more debug, fix a repoll bug in pbf

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

* cleanup logging

* fixes

* missing file

* fixes

* logging

* Automated change: Fix sanity tests

* fixes

* convert logging filter

* fix

* Automated change: Fix sanity tests

* fix bad server response test

* Revert "Disable logging test (#32049)"

This reverts commit 5fc92eaeae.

* fix

* Automated change: Fix sanity tests

* fix memory leaks, logging

* Automated change: Fix sanity tests

* slice refcount debugging

* asan-canaries

* leak-fix

* leak-fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* remove mistaken line

* add-comment

* fix refcounting bug

* Automated change: Fix sanity tests

* rename variable

* renames

* bleh

* carry pipe close status from bottom of pipe to top to appease
recv-close-on-server

* backport cancellation

* Revert "carry pipe close status from bottom of pipe to top to appease"

This reverts commit fa33301dcd.

* fix

* Automated change: Fix sanity tests

* review-feedback

* comment-ordering

* monostate

* renames

* undo-review-feedback

* fix

* review-feedback

* review-feedback

* fix

* review-feedback

* drop debugloc constructor

* interceptor-list-rev-feedback

* interceptor-list-rev-feedback

* pipe test

* review-feedback

* undo-mistaken-change

* Automated change: Fix sanity tests

* pipe error state

* detect send/recv failures and report

* iwyu, build

* fix submodules

* fix

* warning

* cleanup

* Automated change: Fix sanity tests

* fix

* fix for windows

* fix

* null pointer fix

* iwyu

* gen projex

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-01-30 21:39:11 -08:00
Esun Kim 905df9dee6
Update Abseil to 20230125 (#32139)
* Update abseil to 1.20230125.0

* Fix IWYU
2023-01-30 16:20:24 -08:00
Esun Kim 1dc254c488
Podspec... (#32200) 2023-01-29 18:04:37 -08:00
AJ Heller d14020d4e2
[EventEngine] Add invalid handle types to the public API (#32202)
* [EventEngine] Add invalid handle types to the public API

* Automated change: Fix sanity tests

* add definition for static constexpr members

* sanitize

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2023-01-25 17:31:34 -08:00
Vignesh Babu fa5a6c42a6
[EventEngine] Modify iomgr to allow creation of posix event engine listeners and server side endpoints (#31928)
* [WIP] EventEngine iomgr endpoint shims

* [WIP] EventEngine::Endpoint iomgr shims for the PosixEventEngine

* Util functions to help with posix engine listener implementation

* sanity

* update comments in posix_engine_listener_utils.h

* review comments

* iwyu

* revert prev commit

* iwyu

* update build

* update

* regenerate projects

* regenerate projects

* minor fixes

* update BUILD

* sanity

* update build

* regenerate projects

* fix unused parameter

* sanity

* update

* sanity

* regenerate_projects

* remove unused variable

* start

* update

* regenerate_projects

* sanity

* update

* fixes

* update

* regenerate_projects

* update

* fix sanity and msan failure

* more fixes

* build failure

* update

* fix

* sanity

* fixes

* update

* regenerate projects

* fix sanity

* review comments

* An EventEngine subclass to be implemented by all posix based event engines

* sanity

* comments

* update

* review comments

* re-word

* fix

* update

* review comments

* regenerate projects

* syntax fix

* add lock free event benchmark

* releasable mutex lock

* fix build isue

* update

* start

* regenerate projects

* update

* fix

* windows build

* update

* windows portability issue

* update

* update

* update

* update

* format

* update

* update

* start

* Update tcp server interface to move on_accept_cb to create method

* update

* start

* update

* update

* update

* update

* update

* update

* update

* update

* sanity

* update

* update

* update

* windows build

* fix msan

* fix sanity

* regenerate projects

* update

* iwyu

* Fix resolved address length related bugs in tcp_socket_utils and listener_utils

* iwyu

* cleanup

* cleanup src/core/lib/event_engine/tcp_socket_utils.cc

* iwyu

* fix

* regenerate projects

* fix sanity

* re-write endpoint shim

* more re-write

* cleanup

* update

* regenerate projects

* review comments

* build issue

* more build issue fixes plus adding event_engine_trace

* even more build issue fixes

* iwyu

* add static_cast

* fix sanity

* update

* update

* sanity

* fix

* Fix

* Review comments

* fix

* iwyu

* fix build issue

Co-authored-by: AJ Heller <hork@google.com>
2023-01-24 18:22:14 -08:00
Mark D. Roth 1c4b138322
Revert "Revert "WRR: xDS LB policy support (#32067)" (#32180)" (#32182)
This reverts commit d7193a28c4.
2023-01-23 14:14:32 -08:00
Alisha Nanda d7193a28c4
Revert "WRR: xDS LB policy support (#32067)" (#32180)
This reverts commit 8a024963f5.
2023-01-23 09:16:11 -08:00
Mark D. Roth 8a024963f5
WRR: xDS LB policy support (#32067)
* WRR: port StaticStrideScheduler to OSS

* WIP

* Automated change: Fix sanity tests

* fix build

* remove unused aliases

* fix another type mismatch

* remove unnecessary include

* move benchmarks to their own file, and don't run it on windows

* Automated change: Fix sanity tests

* add OOB reporting

* generate_projects

* clang-format

* add config parser test

* clang-tidy and minimize lock contention

* add config defaults

* add oob_reporting_period config field and add basic test

* Automated change: Fix sanity tests

* fix test

* change test to use basic RR

* WIP: started exposing peer address to LB policy API

* first WRR test passing!

* small cleanup

* port RR fix to WRR

* test helper refactoring

* more test helper refactoring

* WIP: trying to fix test to have the right weights

* more WIP -- need to make pickers DualRefCounted

* fix timer ref handling and get tests working

* clang-format

* iwyu and generate_projects

* fix build

* add test for OOB reporting

* keep only READY subchannels in the picker

* add file missed in a previous commit

* fix sanity

* iwyu

* add weight expiration period

* add tests for weight update period and OOB reporting period

* Automated change: Fix sanity tests

* lower bound for timer interval

* consistently apply grpc_test_slowdown_factor()

* cache time in test

* add blackout_period tests

* avoid some unnecessary copies

* clang-format

* add field to config test

* simplify orca watcher tracking

* attempt to fix build

* iwyu

* generate_projects

* update xds proto dependency

* add xDS LB policy entry to registry

* add "_experimental" suffix to policy name

* update LB policy name and remove debug log

* add env var protection

* generate_projects

* gen_upb_api

* WRR: update tests to cover qps plumbing

* WIP

* Automated change: Fix sanity tests

* more WIP

* basic WRR e2e test working

* add OOB test

* add xDS WRR e2e test

* clang-format

* fix sanity

* ignore duplicate addresses

* Automated change: Fix sanity tests

* add new tracer to doc/environment_variables.md

* retain scheduler state across pickers

* Automated change: Fix sanity tests

* use separate mutexes for scheduler and timer

* sort addresses to avoid index churn

* remove fetch_sub for wrap around in RR case

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2023-01-23 08:08:52 -08:00
Vignesh Babu 8cf04e9a54
[EventEngine] Modify iomgr to allow creation of event engine clients and client side endpoints (#31661)
* [WIP] EventEngine iomgr endpoint shims

* [WIP] EventEngine::Endpoint iomgr shims for the PosixEventEngine

* Util functions to help with posix engine listener implementation

* sanity

* update comments in posix_engine_listener_utils.h

* review comments

* iwyu

* revert prev commit

* iwyu

* update build

* update

* regenerate projects

* regenerate projects

* minor fixes

* update BUILD

* sanity

* update build

* regenerate projects

* fix unused parameter

* sanity

* update

* sanity

* regenerate_projects

* remove unused variable

* start

* update

* regenerate_projects

* sanity

* update

* fixes

* update

* regenerate_projects

* update

* fix sanity and msan failure

* more fixes

* build failure

* update

* fix

* sanity

* fixes

* update

* regenerate projects

* fix sanity

* review comments

* An EventEngine subclass to be implemented by all posix based event engines

* sanity

* comments

* update

* review comments

* re-word

* fix

* update

* review comments

* regenerate projects

* syntax fix

* add lock free event benchmark

* releasable mutex lock

* fix build isue

* update

* start

* regenerate projects

* update

* fix

* windows build

* update

* windows portability issue

* update

* update

* update

* update

* format

* update

* update

* update

* update

* update

* fix sanity

* regenerate projects

* update

* iwyu

* Fix resolved address length related bugs in tcp_socket_utils and listener_utils

* iwyu

* cleanup src/core/lib/event_engine/tcp_socket_utils.cc

* iwyu

* fix

* regenerate projects

* fix sanity

* re-write endpoint shim

* more re-write

* cleanup

* update

* review comments

* build issue

* more build issue fixes plus adding event_engine_trace

* even more build issue fixes

* iwyu

* add static_cast

* update

* remove redundant code

* update

* deduplicate

* iwyu

* Fix review comments and regenerate_projects

* sanity

* review comments

* fix include guards

Co-authored-by: AJ Heller <hork@google.com>
2023-01-20 19:47:14 -08:00
Mark D. Roth 76c82265b4
WRR: implement WRR LB policy (#31904)
* WRR: port StaticStrideScheduler to OSS

* WIP

* Automated change: Fix sanity tests

* fix build

* remove unused aliases

* fix another type mismatch

* remove unnecessary include

* move benchmarks to their own file, and don't run it on windows

* Automated change: Fix sanity tests

* add OOB reporting

* generate_projects

* clang-format

* add config parser test

* clang-tidy and minimize lock contention

* add config defaults

* add oob_reporting_period config field and add basic test

* Automated change: Fix sanity tests

* fix test

* change test to use basic RR

* WIP: started exposing peer address to LB policy API

* first WRR test passing!

* small cleanup

* port RR fix to WRR

* test helper refactoring

* more test helper refactoring

* WIP: trying to fix test to have the right weights

* more WIP -- need to make pickers DualRefCounted

* fix timer ref handling and get tests working

* clang-format

* iwyu and generate_projects

* fix build

* add test for OOB reporting

* keep only READY subchannels in the picker

* add file missed in a previous commit

* fix sanity

* iwyu

* add weight expiration period

* add tests for weight update period and OOB reporting period

* Automated change: Fix sanity tests

* lower bound for timer interval

* consistently apply grpc_test_slowdown_factor()

* cache time in test

* add blackout_period tests

* avoid some unnecessary copies

* clang-format

* add field to config test

* simplify orca watcher tracking

* attempt to fix build

* iwyu

* generate_projects

* add "_experimental" suffix to policy name

* WRR: update tests to cover qps plumbing

* WIP

* more WIP

* basic WRR e2e test working

* add OOB test

* fix sanity

* ignore duplicate addresses

* Automated change: Fix sanity tests

* add new tracer to doc/environment_variables.md

* retain scheduler state across pickers

* Automated change: Fix sanity tests

* use separate mutexes for scheduler and timer

* sort addresses to avoid index churn

* remove fetch_sub for wrap around in RR case

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2023-01-20 12:14:37 -08:00
Jan Tattermusch 7fd808f6f9
Bump version to 1.53.0-dev (on master branch) (#32086)
* bump version to 1.53.0-dev

* regenerate projects
2023-01-18 09:41:33 +01:00
AJ Heller 6778bb3501
[EventEngine] Relandx3: WindowsEventEngine client (#32031)
* Reland x3: "WindowsEventEngine Client implementation (#31848)"

This reverts commit 2c4d55b3a1.

* fixes

* fix

* fix
2023-01-12 10:26:17 -08:00
Vignesh Babu 5680a9b57b
Move posix event engine to new interface defined in #31816 (#31890)
* update

* regenerate projects

* fix sanity

* review comments

* An EventEngine subclass to be implemented by all posix based event engines

* sanity

* comments

* update

* review comments

* re-word

* fix

* update

* review comments

* regenerate projects

* syntax fix

* add lock free event benchmark

* releasable mutex lock

* fix build isue

* update

* start

* regenerate projects

* update

* fix

* windows build

* update

* windows portability issue

* update

* update

* format

* update

* update

* update

* fix sanity

* regenerate projects

* update

* iwyu

* fix

* fix

* update

* fix sanity

* review comments
2023-01-12 09:41:55 -08:00
Eugene Ostroukhov 73fa138432
xds_override_host LB: move XdsOverrideHostLbConfig to `internal` namespace (#32061) 2023-01-11 10:29:38 -08:00
Craig Tiller 67f364e23e
[cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757)
* crash function

* progress

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fixes

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* fix

* fix

* use cpp attr

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fix

* fix

* add exclusion

* fix

* typo

* fix

* fmt

* Update tcp_socket_utils.cc

* Automated change: Fix sanity tests

* fix

* revert php changes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-01-11 08:50:32 -08:00
Mark D. Roth b0d7131ab3
WRR: plumb qps in backend metric data (#31903)
* plumb qps in backend metric data

* pull in updated orca proto

* gen_upb_api

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2023-01-09 10:07:58 -08:00
Andres Beltran 2904ee8fd3
Add support for systemd socket activation (#31667)
* Revert "Revert "Add support for systemd socket activation (#30485)" (#31617)"

This reverts commit 867dc6cae2.

* Add checks to unix tests

* Ran generate_projects.sh and fixed styling in test

* Fix variable in unit test

* Use reinterpret_cast in test

* Rebase and fix sanity failures
2023-01-05 14:53:33 -08:00
AJ Heller 2c4d55b3a1
Revert "Revert "Revert "WindowsEventEngine Client implementation (#31848)" (#… (#31974)" (#32018)
This reverts commit aa83319695.
2023-01-04 11:09:56 -08:00
AJ Heller aa83319695
Revert "Revert "WindowsEventEngine Client implementation (#31848)" (#… (#31974)
* Revert "Revert "WindowsEventEngine Client implementation (#31848)" (#31965)"

This reverts commit 58ad7950a0.

* iwyu & visibility
2023-01-03 16:21:29 -08:00
AJ Heller 58ad7950a0
Revert "WindowsEventEngine Client implementation (#31848)" (#31965)
This reverts commit bc7e155e55.
2022-12-22 09:59:14 -08:00
Eugene Ostroukhov 878a0ea6c2
xds_override_host LB: add basic support for overriding host (#31954)
This is same as #31819 but with fixed compilation issues.
2022-12-21 16:30:09 -08:00
Eugene Ostroukhov 60e4aea792
Revert "xds_override_host LB: add basic support for overriding host (#31819)" (#31948)
This reverts commit a500a74c6c.
2022-12-21 10:02:39 -08:00
Eugene Ostroukhov a500a74c6c
xds_override_host LB: add basic support for overriding host (#31819)
Implement picking the subchannel by address if the address is provided to a policy.

Co-authored-by: Mark D. Roth <roth@google.com>
2022-12-21 10:00:15 -08:00
Craig Tiller 72c296a3c2
[event_engine] Add SliceCast (#31831)
* [event_engine] Add SliceCast

* Automated change: Fix sanity tests

* windows-fix

* comments

* comments

* comments

* build-fix

* fix

* Update port_platform.h

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-12-20 19:46:27 -08:00
AJ Heller bc7e155e55
WindowsEventEngine Client implementation (#31848)
* rename task-handle mutex

* rename TimerClosure

* tmp commit, building, not tested

* add test for client connection to a non-listening port

* fix posix EE tests

* re-fix windows test suite after posix compatibility

* (unfinished, backup): passing the suite's NonExistingListener client test

* remove redundant windows client test

* integrate IOCP worker loop

* initial commit of echo test tool; fixes

* move echo client to test_suite/tools; I do not yet like the setup, it's about time for a macro that generates all useful test/tool targets

* cleanup

* add --target arg to echo_client. requires URI

* Automated change: Fix sanity tests

* build fixes

* fix

* fix

* reviewer feedback

* warning fix

* delete logic on cancellation

* fix

* cancel connect deadlock; improved template code

* fix build failure with linux environments building windows targets

* fix

* fix

* no ++ for atomics

* remove the test changes, to be landed separately

* Automated change: Fix sanity tests

* remnants

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2022-12-20 17:04:54 -08:00
Craig Tiller 49a3035d44
[iwyu] Fix CI job (#31921)
* fix-includes

* fix

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* add warning label

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-12-19 08:18:39 -08:00
Cheng-Yu Chung b72da316bb
[cleanups] Remove `include/grpc/impl/codegen/slice.h` (#31871)
* Remove `include/grpc/impl/codegen/slice.h`

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests
2022-12-15 14:36:04 +08:00
Cheng-Yu Chung b887534111
[cleanups] Remove `include/grpc/impl/codegen/propagation_bits.h` (#31870)
* Remove `include/grpc/impl/codegen/propagation_bits.h`

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests
2022-12-15 11:08:02 +08:00
Mark D. Roth 5192021637
Second attempt: xDS stateful session affinity: add config plumbing (#31874)
* Revert "Revert "xDS stateful session affinity: add config plumbing (#31827)" (#31873)"

This reverts commit 4f15d3dcf9.

* fix build for compilers too dumb to recognize the full set of enum values
2022-12-13 15:47:24 -08:00
Cheng-Yu Chung 9a7e77318b
[cleanups] Remove `include/grpc/impl/codegen/grpc_types.h` (#31835)
* Remove `include/grpc/impl/codegen/grpc_types.h`

* Automated change: Fix sanity tests

* Fix typo

* Automated change: Fix sanity tests
2022-12-14 02:29:17 +08:00
Richard Belleville 4f15d3dcf9
Revert "xDS stateful session affinity: add config plumbing (#31827)" (#31873)
This reverts commit f76948b12d.
2022-12-12 14:26:27 -08:00
Mark D. Roth f76948b12d
xDS stateful session affinity: add config plumbing (#31827)
* WIP

* sanitize

* add endpoint tests

* add plumbing through LB policies

* clang-tidy
2022-12-12 08:19:31 -08:00
Cheng-Yu Chung 2e9e6439f8
Remove `include/grpc/impl/codegen/connectivity_state.h` (#31728)
* Remove `include/grpc/impl/codegen/connectivity_state.h`

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests
2022-12-12 18:03:33 +08:00
Craig Tiller a6843d4659
[promises] Convert client load reporting to promises (#31854)
* [promises] Convert client load reporting to promises

* fix

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-12-11 20:22:57 -08:00
Mark D. Roth 040617028c
Revert "Revert "xDS stateful session affinity: support xDS HTTP filter config (#31793)" (#31821)" (#31823)
This reverts commit 0fd59754b1.
2022-12-06 14:51:42 -08:00
Cheng-Yu Chung 0d3fcb41ea
Revert "Move google_default channel_credentials out of `include/grpc/grpc_security.h` (#31786)" (#31822)
This reverts commit 3d59abc94e.
2022-12-06 11:39:43 -08:00
AJ Heller 0fd59754b1
Revert "xDS stateful session affinity: support xDS HTTP filter config (#31793)" (#31821)
This reverts commit 7f054ffab0.
2022-12-06 11:22:13 -08:00
Mark D. Roth 7f054ffab0
xDS stateful session affinity: support xDS HTTP filter config (#31793)
* stateful session affinity: implement filter

* register filter config parser

* fix unused parameter errors

* remove some FIXMEs that are not longer needed

* clang-tidy

* iwyu

* xDS stateful session affinity: support xDS HTTP filter config

* buildifier

* iwyu

* revert iwyu changes to observability_logging_sink.cc

* generate_projects

* generate_projects

* Automated change: Fix sanity tests

* fix build

* fix xds_http_filters_test

* add tests

* clang-format

* shorten filter name

* don't use absl::optional for path

* fix build

* don't add cookie to trailing metadata unless it's Trailers-Only

* fix sanity

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-12-06 09:31:47 -08:00
Cheng-Yu Chung 5fe132a211
Revert "Revert "Remove `include/grpc/impl/codegen/gpr_slice.h` (#31774)" (#31805)" (#31806)
This reverts commit 39a4343044.

Fixing forward the original PR. The content should be the same as the original PR. The broken part is in the internal.
2022-12-07 00:43:18 +08:00
Cheng-Yu Chung 3d59abc94e
Move google_default channel_credentials out of `include/grpc/grpc_security.h` (#31786) 2022-12-06 10:59:57 +08:00
Mark D. Roth 5e4d9f4bcf
xDS stateful session affinity: implement C-core filter (#31788)
* stateful session affinity: implement filter

* register filter config parser

* fix unused parameter errors

* remove some FIXMEs that are not longer needed

* clang-tidy

* iwyu

* iwyu

* revert iwyu changes to observability_logging_sink.cc

* generate_projects

* shorten filter name

* don't use absl::optional for path

* fix build

* don't add cookie to trailing metadata unless it's Trailers-Only
2022-12-05 16:32:04 -08:00
Cheng-Yu Chung 39a4343044
Revert "Remove `include/grpc/impl/codegen/gpr_slice.h` (#31774)" (#31805)
This reverts commit ac1dee8ac1.
2022-12-05 11:11:42 -08:00
Cheng-Yu Chung ac1dee8ac1
Remove `include/grpc/impl/codegen/gpr_slice.h` (#31774) 2022-12-06 02:33:11 +08:00
Eugene Ostroukhov 1e13612d4a
Introduce the xds_override_host policy (#31730)
Introduce the xds_override_host policy
2022-12-02 13:31:29 -08:00
Zhan Jiang ec6d6025e5
security: Refactor some utility functions in TSI for better internal use (#31736)
security: Refactor some utility functions in TSI for better internal use
2022-11-30 15:48:40 -08:00
AJ Heller 557e558825
[EventEngine] WindowsEndpoint (#31735)
* [EventEngine] WindowsEndpoint

Initial sketch, all tests passing

* Port fix from #28432

* GPR_WINDOWS guard

* use MemoryAllocator::MakeReservation for allocated buffers

* better logging (respect slice length)

* Automated change: Fix sanity tests

* improvements

* Automated change: Fix sanity tests

* InlinedVector<WSABUF, kMaxWSABUFCount>

* initial attempt at socket util reunification

* posix fixes + local run of sanitize.sh

* posix socket includes

* fix

* Automated change: Fix sanity tests

* remove unused include (breaks windows)

* remove stale comment

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2022-11-28 14:13:10 -08:00
Mark D. Roth 808347ffe8
ServerConfigSelector: clean up API (#31683)
* ServerConfigSelector: clean up API

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-11-28 13:45:50 -08:00
Cheng-Yu Chung c34d99fd9a
Remove `include/grpc/impl/codegen/compression_types.h` (#31726)
* Remove `include/grpc/impl/codegen/compression_types.h`

* Automated change: Fix sanity tests
2022-11-22 14:41:55 -05:00
Craig Tiller c545350633
Reland: [promises] Compression filter conversion (#31686)
* Revert "Revert "[promises] Compression filter conversion (#31204)" (#31682)"

This reverts commit fa31b36cb1.

* fix?

* fix
2022-11-17 14:08:43 -08:00
Yijie Ma b6f2af4682
Revert "security: Refactor some utility functions in TSI for better internal use (#29728)" (#31687)
This reverts commit 8984a264b8.
2022-11-16 21:55:55 -08:00
Craig Tiller fa31b36cb1
Revert "[promises] Compression filter conversion (#31204)" (#31682)
This reverts commit a8c983528a.
2022-11-16 17:01:11 -08:00
Vignesh Babu c5a66bb08d
Posix Event Engine listener implementation (#31513)
* Util functions to help with posix engine listener implementation

* sanity

* update comments in posix_engine_listener_utils.h

* review comments

* iwyu

* revert prev commit

* iwyu

* update build

* update

* regenerate projects

* regenerate projects

* minor fixes

* update BUILD

* sanity

* update build

* regenerate projects

* fix unused parameter

* sanity

* update

* sanity

* regenerate_projects

* remove unused variable
2022-11-16 13:52:51 -08:00
Craig Tiller a8c983528a
[promises] Compression filter conversion (#31204)
* Convert compress filter

* decompress sketch

* Automated change: Fix sanity tests

* progress

* progress

* got the new filter impls compiling

* Automated change: Fix sanity tests

* declare the bits

* allocate control types

* stub in pipe accessors

* init pipes

* send-path

* working through the state machines

* [arena] pool allocator

* add tests

* Automated change: Fix sanity tests

* better sizes

* iwyu

* Automated change: Fix sanity tests

* first pass cut fragments

* fix1

* fix

* Automated change: Fix sanity tests

* fix

* iwyu

* build-deps

* fix for windows

* fix

* fixes

* better-logs

* better-logs

* callpushpush-->tryconcurrently

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* logging improvements

* logging improvements

* fixes

* Automated change: Fix sanity tests

* respect flag

* handle eos

* cancel_after_client_done

* handle failed sends

* more error handling

* Automated change: Fix sanity tests

* more stuff

* remove unnecessary conversion

* hackity hack hack

* fixes

* progress

* Automated change: Fix sanity tests

* capture metadata from promise to recieve up

* spacing

* debug,fix

* not-used

* fix

* fix

* tune

* unify compress/decompress

* fixes

* send_message/send_trailing_metadata ordering

* cleanup loop

* remove minimal stack bits

* better error generation

* fix-build

* Automated change: Fix sanity tests

* cancellation of recv message for forwarded receives

* fix

* compile fix

* fix clobbering

* fix test, convert to gtest

* fix

* Automated change: Fix sanity tests

* cleanup

* fixes

* fix

* fix

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fixes

* add test

* Automated change: Fix sanity tests

* fix

* fix

* fix

* no need to store message per filter

* Automated change: Fix sanity tests

* danke yash

* iwyu

* clang-tidy

* Automated change: Fix sanity tests

* fix

* [promise] CallPushPull -> more general TryConcurrently

* Automated change: Fix sanity tests

* [promise] Introduce map_pipe, cleanup factories

* [promise] Promise based filter changes for messages

* [log] Longer space for filenames

* [test] Add some debugability affordances to async_end2end_test

* add comment

* Automated change: Fix sanity tests

* fix-merge

* fix-merge

* fix

* [chttp2] Fix a bug whereby trailers-only is not reported

We don't report trailers-only if the trailers are parsed prior to executing recv_initial_metadata

* comments

* fix for ruby

* review feedback

* merge

* fix

* Automated change: Fix sanity tests

* fix bm?

* re-add dropped flag

* turn on some traces to try and debug ruby

* debug for ruby problem

* proposed chttp2 fix

* Revert "turn on some traces to try and debug ruby"

This reverts commit 1bf3cfd552.

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-11-15 20:16:18 -08:00
Zhan Jiang 8984a264b8
security: Refactor some utility functions in TSI for better internal use (#29728) 2022-11-14 16:43:34 -08:00
Craig Tiller a116fa7e25
Revert "Revert "[chaotic-good] Reland basic frame serialization (#316… (#31637)
* Revert "Revert "[chaotic-good] Reland basic frame serialization (#31631)" (#31635)"

This reverts commit 4e2b936e88.

* windows fix?
2022-11-14 09:37:01 -08:00
Craig Tiller 4e2b936e88
Revert "[chaotic-good] Reland basic frame serialization (#31631)" (#31635)
This reverts commit 571e98f6d5.
2022-11-12 17:00:04 -08:00
Craig Tiller 571e98f6d5
[chaotic-good] Reland basic frame serialization (#31631)
* Revert "Revert "[chaotic-good] Basic frame serialization/deserialization (#31257)" (#31630)"

This reverts commit e8ac147311.

* fix build
2022-11-11 20:45:50 -08:00
Craig Tiller e8ac147311
Revert "[chaotic-good] Basic frame serialization/deserialization (#31257)" (#31630)
This reverts commit 8185a56322.
2022-11-11 16:06:36 -08:00
Craig Tiller 8185a56322
[chaotic-good] Basic frame serialization/deserialization (#31257)
* [chaotic-good] initial sketch of frame serialization

* Automated change: Fix sanity tests

* tinkering

* fix up

* add tests,fuzzers

* more tests

* fix

* fuzzers

* Automated change: Fix sanity tests

* fix-build

* Automated change: Fix sanity tests

* fix inf loop

* fix refcounting bug

* fixdeps

* fix

* fix continuations

* iwyu

* fix build

* fix

* build fixes

* better split

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fixes

* iwyu

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-11-11 13:28:12 -08:00
Craig Tiller 867dc6cae2
Revert "Add support for systemd socket activation (#30485)" (#31617)
This reverts commit a638c407bb.
2022-11-10 16:24:30 -08:00
Richard Belleville 51f296b4f8
Bump master branch to 1.52.0-dev (gribkoff) (#31618)
* bump version to 1.52.0-dev

* regenerate projects
2022-11-10 16:11:08 -08:00
Esun Kim 42c2767c19
Revert "Bump v1.51.x to 1.51.0-pre1 (#31620)" (#31621)
This reverts commit bae9dd79aa.
2022-11-10 15:21:14 -08:00
Richard Belleville bae9dd79aa
Bump v1.51.x to 1.51.0-pre1 (#31620)
* bump version to 1.51.0-pre1

* regenerate projects
2022-11-10 15:17:59 -08:00
Andres Beltran a638c407bb
Add support for systemd socket activation (#30485)
* Add socket-activated functionality

* Fix GRPC_ERROR_NONE in tcp_server_posix_test and sanity checks

* Fix epoll1 error, sanity checks

* Use AF_INET6 in tcp_server_posix_test

Co-authored-by: Vignesh Babu <vigneshbabu@google.com>
2022-11-10 11:05:14 -08:00
Vignesh Babu 249645608e
Reland posix event engine tcp client (#31563)
* Revert "Revert "Posix event engine tcp client (#31074)" (#31452)"

This reverts commit d760c1fef7.

* regenerate_projects
2022-11-07 09:32:37 -08:00
Craig Tiller 107beb7435
Revert "[promises] Eliminate switch.h (#30317)" (#31523)
This reverts commit c866d65966.
2022-11-02 11:55:35 -07:00
Mark D. Roth 49da06c3a1
Revert "Revert "service config: use new JSON API (#30467)" (#31485)" (#31486)
This reverts commit 008661a5d6.
2022-10-28 16:03:59 -07:00
Mark D. Roth 008661a5d6
Revert "service config: use new JSON API (#30467)" (#31485)
This reverts commit b853ccc6db.
2022-10-27 15:13:18 -07:00
Craig Tiller 2f9ac46a5d
Revert "Revert "[promise] CallPushPull -> more general TryConcurrently (#31429)" (#31480)" (#31481)
* Revert "Revert "[promise] CallPushPull -> more general TryConcurrently (#31429)" (#31480)"

This reverts commit 821443e9b5.

* fix
2022-10-27 12:42:13 -07:00
Mark D. Roth b853ccc6db
service config: use new JSON API (#30467)
* Declarative JSON parser

* Automated change: Fix sanity tests

* fix

* shrinking stuff a little

* static vtables

* separate fns

* simpler?

* make maps work

* windows fixes

* Automated change: Fix sanity tests

* simplify code

* Automated change: Fix sanity tests

* vtable-test

* dont always create vec/map impls for every type

* comments

* make error consistent

* move method private

* progress

* durations!

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* post-load

* Automated change: Fix sanity tests

* document JsonPostLoad() and add static_assert

* don't copy field names, to avoid length limitations

* use absl::Status

* accept either string or number for numeric values

* add test for direct data member of another struct type

* remove unused method

* add support for retaining part of the JSON wirthout processing

* update test for changes in Json::Parse() API

* add absl::optional support

* Automated change: Fix sanity tests

* fix tests, improve error messages, and add overload to parse to existing object

* remove overload of LoadFromJson()

* change special case for Json to instead use Json::Object

* rename resolver_result_parsing to client_channel_service_config

* split up service_config_test into a separate test for each component

* convert client channel service config parser to new API

* fix build

* converted retry global params

* convert retry method-level parsing, but still need to find a way to control parsing via a channel arg

* improve error structure, add missing types, and improve tests

* clang-format

* Automated change: Fix sanity tests

* fix build

* add LoadJsonObjectField(), add LoadFromJson() overload that takes an ErrorList parameter, and add tests for parsing bare top-level types

* fix msan

* Automated change: Fix sanity tests

* fix error message

* Automated change: Fix sanity tests

* fix test

* add ability to disable fields

* plumb in channel args to disable parsing

* Automated change: Fix sanity tests

* use const char* instead of absl::string_view for enable_key

* fix resolver_component_test

* Automated change: Fix sanity tests

* work around mac build problem

* Automated change: Fix sanity tests

* work around gcc6 problem

* Automated change: Fix sanity tests

* fix build

* fix build

* don't use alternative builder in tests

* convert message size service config parser

* convert fault injection service config parser

* rename files

* add specialization for unique_ptr

* avoid moves in client channel service config parser

* avoid moves in retry service config parser, and do some cleanup

* avoid moves in message_size service config parser

* avoid moves for fault injection service config parser, and use internal channel arg

* convert rbac service config parser

* clang-format

* WIP

* convert top-level service config parser

* clang-format

* fix build

* fix rbac service config parser test

* fix signed-ness problem and reversed-conditional bug

* fix unused param

* fix json_string method

* fix max message length defaults

* add copy ctors to appease windows compiler

* fix RLS LB config parser test

* fix name resolution test

* fix build

* work around gmock portability bug

* fix sanity

* add missing build dep

* make RBAC principal and permissions movable, not copyable

* Revert "make RBAC principal and permissions movable, not copyable"

This reverts commit 53315bccc9.

* attempt to simplify HeaderMatcher and StringMatcher parsing

* more bloat reduction in RBAC service config parser

* fix sanity

* add missing build dep

* attempt work-around for MSVC bug

* Revert "attempt work-around for MSVC bug"

This reverts commit e54c89e1e4.

* attempt work-around for Windows build problem

* try another work-around

* fix sanity

* appease clang-tidy

* generate_projects

* attempt to fix Windows build

* more windows fixes

* more windows fix

* yet more windows fixes

* try without noexcept

* remove unnecessary boilerplate

* code review changes

* fix breakage

Co-authored-by: Craig Tiller <craig.tiller@gmail.com>
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Co-authored-by: Craig Tiller <ctiller@google.com>
Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-10-27 11:51:05 -07:00
AJ Heller 821443e9b5
Revert "[promise] CallPushPull -> more general TryConcurrently (#31429)" (#31480)
This reverts commit 11a8f66cca.
2022-10-27 09:47:23 -07:00
Craig Tiller 11a8f66cca
[promise] CallPushPull -> more general TryConcurrently (#31429)
* [promise] CallPushPull -> more general TryConcurrently

* Automated change: Fix sanity tests

* add comment

* simplify

* debugassert

* less vtable init

* smaller shared

* iwyu

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix miscompiles on windows'

* Automated change: Fix sanity tests

* fix

* iwyu

* Automated change: Fix sanity tests

* review feedback

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-26 20:02:46 -07:00
Craig Tiller 58c628a7ad
[promise] Introduce map_pipe, cleanup factories (#31430)
* [promise] Introduce map_pipe, cleanup factories

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-25 14:28:07 -07:00
Vignesh Babu d760c1fef7
Revert "Posix event engine tcp client (#31074)" (#31452)
This reverts commit 390ae5d412.
2022-10-25 11:00:14 -07:00
Vignesh Babu 390ae5d412
Posix event engine tcp client (#31074)
* removing EndpointConfig::Get method

* Automated change: Fix sanity tests

* cleanup

* fix

* fix review comments

* review comments

* cleanup

* update comments

* fix

* cleanup

* update comments

* Automated change: Fix sanity tests

* fix misleading comments

* bug fixes

* fix

* fix

* start

* revert some changes for bug fixes and allow spurious wakeups for poll based poller

* sanity

* fix

* minor fix

* review comments

* fix

* comment

* remove re-defined function

* fix review comments

* fix windows iocp build issue due to removed function

* change Milliseconds return type

* fix

* remove header

* regenerate projects

* fix sanity

* code

* fix sanity

* Automated change: Fix sanity tests

* Forking iomgr internal_errqueue defines for posix event engine

* fix BUILD file

* start

* update

* sanity

* regenerate_projects

* Automated change: Fix sanity tests

* rename

* review comments

* update

* review comments

* Automated change: Fix sanity tests

* fix BUILD

* add no_windows tag

* update

* update

* remove debug statements

* delete unused file

* update

* fix BUILD

* regenerate projects

* update

* fix BUILD

* update

* fix sanity

* minor additions to configure global tcp user timeout values

* cleanup

* fix build syntax

* start

* update

* fix

* change poller interface for posix event engine

* update event_poller_posix_test

* fix build error

* Add more unit tests

* windows ee changes

* update comment

* remove unused deps

* fix msan issue

* add comment

* adding rcv lowat helper to socket wrapper

* fix sanity

* review comments

* fix build issue

* fix sanity

* sanity

* iwyu sanity

* fix build

* merge conflict

* Automated change: Fix sanity tests

* update

* update

* fix macos issue

* fix msan and ubsan issues

* fix macos build issue

* comment

* review comments

* remove unused dep

* sanity

* merge conflict

* mac build issue

* regenerate projects

* build issue

* fix test issues

* add test

* fix typo and address review comments

* review comments

* Automated change: Fix sanity tests

* update

* merge issue

* add a test to check connect timeouts and cancellation

* regenerate projects

* sanity

* remove unnecessary code

* Add utils to create and prepare socket for tcp client

* some fixes

* fixes

* review comments

* sanity

* fix build issue

* review comments

* add thread annotations

* MacOS fix unused variable

* add some more #endif comments

* fixes

* update

* more fixes

* regenerate projects

* sanity

* some fixes

* more fixes

* rm hdr file

* macos fixes

* typo

* more build issues

* macos crashes

* windows build

* adding Poller::Work to event engine constructor

* update client_test

* iwyu

* iwyu

* regenerate projects

* cleanup

* cleanup

* regenerate projects

* regenerate projects

* fix

* fix

* merge conflict

* comments

* add experiments flag

* fix

* newline

* newline

* iwyu

* fix

* fix

* remove some ifdefs

* fix tsan issue in bm_event_engine_run

* sanity

* sanity

* Add a quiesce to threadpool

* fix

* Automated change: Fix sanity tests

* fixes

* typo

* comments

* fix build

* fixes

* macos fixes

* more macos fixes

* handle shutdown better

* updated poller kicked api contract and fix bug

* iwyu

* fix sanity

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
Co-authored-by: Craig Tiller <ctiller@google.com>
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-24 14:36:52 -07:00
Craig Tiller 0724a90fd8
Revert "Revert "[arena] pool allocator (#31298)" (#31414)" (#31415)
This reverts commit 2c11e56433.
2022-10-20 18:15:09 -07:00
Alisha Nanda 2c11e56433
Revert "[arena] pool allocator (#31298)" (#31414)
This reverts commit 5e27b2df97.
2022-10-20 12:57:49 -07:00
Craig Tiller 5e27b2df97
[arena] pool allocator (#31298)
* [arena] pool allocator

* add tests

* Automated change: Fix sanity tests

* better sizes

* iwyu

* Automated change: Fix sanity tests

* first pass cut fragments

* fix1

* fix

* Automated change: Fix sanity tests

* fix

* iwyu

* build-deps

* fix for windows

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-20 10:08:06 -07:00
Vignesh Babu e8c30b487f
Invoking Poller::Work in posix event engine constructor (#31128)
* adding Poller::Work to event engine constructor

* iwyu

* iwyu

* cleanup

* regenerate projects

* fix

* comments

* add experiments flag

* fix

* newline

* newline

* iwyu

* remove some ifdefs

* fix tsan issue in bm_event_engine_run

* Add a quiesce to threadpool

* fix

* Automated change: Fix sanity tests

* disable posix_event_engine_test on windows

Co-authored-by: Craig Tiller <ctiller@google.com>
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-19 23:25:04 -07:00
Mark D. Roth bd4b5d70c8
xDS: remove v2 support (#31327)
* xDS: remove v2 support

* remove unnecessary templating in fake xDS server code

* remove now-unnecessary workaround for clang bug

* clang-format

* fix unit tests

* iwyu

* remove now-unused v2 proto files

* fix from merge

* clang-format

* fix typo
2022-10-18 08:45:42 -07:00
Mark D. Roth 5d0d5fe1a7
xDS: implement xds_wrr_locality LB policy and return xDS LB config from XdsClient (#31160)
* XdsBootstrap: move two more methods out of the interface

* Automated change: Fix sanity tests

* XdsClient: add unit test

* Automated change: Fix sanity tests

* fix memory leaks

* add helper method

* add unsubscription

* add test for multiple subscriptions

* clang-format

* fix build

* fix flakiness

* add checking for other node fields

* add v2 test

* add response builder

* add test for update from server

* add test for update containing only changed resources

* clang-format

* fix build

* add test for resource not existing upon subscription

* add test for stream closed by server

* add test for multiple watchers for the same resource

* add test for connection failure

* clang-format

* add test for resources wrapped in Resource wrapper message

* add test for resource validation failure

* add test for multiple invalid resources, and fix a case in XdsClient

* add test for validation failure for already-cached resource

* add test for server not resending resources after stream disconnect

* clang-format

* fix XdsClient to report channel errors to newly started watchers

* fix XdsClient to send cached errors/does-not-exists to newly started watchers

* fix watcher to ensure events arrive in the expected order

* fix tests

* clang-format

* add test for multiple resource types

* fix xds_cluster_e2e_test

* Automated change: Fix sanity tests

* cleanup

* add federation tests

* clang-format

* remove now-unnecessary XdsCertificateProviderPluginMapInterface

* code review comments

* simplify XdsResourceType::Decode() API

* XdsClient: add unit tests for XdsClusterResourceType

* add XdsClient with gRPC bootstrap config

* add LB policy tests

* started adding CertificateProvider tests

* update for recent API changes

* fix merge bugs

* xDS resource validation: identify extensions by type_url instead of name

* fix build

* migrate to ValidationErrors

* add xds_common_types_test

* finish TLS tests and add LRS tests

* move ScopedExperimentalEnvVar to its own library and remove redundant e2e tests

* add circuit breaking and outlier detection tests

* add validation to outlier detection LB policy parsing

* clang-format

* Automated change: Fix sanity tests

* fix signedness

* fix sanity

* xDS: implement xds_wrr_locality LB policy and return xDS LB config from XdsClient

* fix unused parameter

* fix sanity

* fix test

* Automated change: Fix sanity tests

* fix aggregate cluster bug

* Automated change: Fix sanity tests

* absl::make_unique -> std::make_unique

* fix sanity

* fix sanity

* iwyu

* iwyu

* update code for XdsResourceTypeImpl changes

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-10-17 11:22:43 -07:00
Craig Tiller 20d1efc38a
[stats] Move core stats to C++ (#30936)
* begin c++

* Automated change: Fix sanity tests

* progress

* progress

* missing-files

* Automated change: Fix sanity tests

* moved-from-stats

* remove old benchmark cruft, get tests compiling

* iwyu

* Automated change: Fix sanity tests

* fix

* fix

* fixes

* fixes

* add needed constructor

* Automated change: Fix sanity tests

* iwyu

* fix

* fix?

* fix

* fix

* Remove ResetDefaultEventEngine

Now that it is a weak_ptr, there's no need to explicitly reset it. When
the tracked shared_ptr is deleted, the weak_ptr will fail to lock, and a
new default EventEngine will be created.

* forget existing engine with FactoryReset

* add visibility

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Co-authored-by: AJ Heller <hork@google.com>
2022-10-09 21:22:08 -07:00
Esun Kim 32923ac191
Removed no_error_on_hotpath (#31225) 2022-10-05 09:47:19 -07:00
Craig Tiller 2d00d50c59
[event_engine] Improve scaling in threadpool (#31234)
* fixes

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fixes

* fixes

* fix

* fix-win

* fix iwyu

* fix

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-05 00:17:23 -07:00
Craig Tiller 66c8e098ee
[slice] Remove murmur implementation (#31118)
* [slice] Remove _internal variants of APIs

* Automated change: Fix sanity tests

* fix

* reduce bloat

* fixes

* Automated change: Fix sanity tests

* murmurings

* Automated change: Fix sanity tests

* progress

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-10-01 21:26:45 -07:00
Craig Tiller db5fe72da9
[tsan] Threadsafe strerror implementation (#31167)
* fix

* spread

* fix

* Automated change: Fix sanity tests

* fix

* remove unnecessary .c_strs

* lashes

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-30 11:43:33 -07:00
Craig Tiller beb5bdca62
[promises] Promise based grpc_call (#29598)
* Automated change: Fix sanity tests

* fix

* fixes

* fixup allocator story - we should require a context

* fixes

* doodling

* context scribbles

* [arena] Add ManagedNew(), gtest-ify test

Add a ManagedNew() method to Arena that calls the relevant destructor at Arena destruction time.

There are some cases coming up in the promise based call work where this becomes super convenient, and I expect it's likely that there are other places that's true too.

* Automated change: Fix sanity tests

* progress

* lalalal

* progress

* x

* Automated change: Fix sanity tests

* fixes

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* fixes

* fixes

* fixes

* Automated change: Fix sanity tests

* progress

* fix client streaming

* handle invalid flags

* Automated change: Fix sanity tests

* no logging

* progress

* progress

* channelz

* tentative fix

* fix

* lalala

* Automated change: Fix sanity tests

* more readable trace

* logging improvements, leading to bug fix in connected channel

* fix

* improve debuggability

* fix

* progress to better refcounting

* progress

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* fix

* fix

* threading

* Automated change: Fix sanity tests

* fix

* fix

* improve debuggability

* fix

* fix

* Automated change: Fix sanity tests

* fix

* make promises runtime configurable

* Automated change: Fix sanity tests

* fix

* fix build

* fix broken test

* clean up api

* deal with stats better

* peer string!

* introduce fragments

* Automated change: Fix sanity tests

* use fragments

* stuff

* [promises] Add AtomicWaker type

* Automated change: Fix sanity tests

* fix

* fix write path

* fix

* polling-entity-hell

* review feedback

* fix

* fix

* fix

* fix

* make an experiment

* [experiments] Make output more diffable/readable

* Automated change: Fix sanity tests

* buildifier sized indentations

* fix

* fix

* Automated change: Fix sanity tests

* fix?

* fix promise

* prototype

* progress

* implement new api

* Revert "fix promise"

This reverts commit ded85e7d19.

* Revert "Revert "fix promise""

This reverts commit c2acef1958.

* progress

* done

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* updates

* review feedback

* first pass feedback

* Automated change: Fix sanity tests

* review feedback

* naming

* better-logs

* fix test

* Automated change: Fix sanity tests

* comments

* fix

* progress

* validation

* iwyu

* fix

* ugh this needs to be any

* fix flakiness in asan

* call tracing

* cleanup unused args

* fix windows

* fix build

* ugh

* fix tsan race

* threading-fix

* bloat1

* bloat2

* bloat3

* fix

* unused-args

* sanity

* iwyu

* fix

* fix

* this is ok

* iwyu, exchange

* fix

* Automated change: Fix sanity tests

* fix ee lifetime issue

* fix

* review feedback

* Automated change: Fix sanity tests

* comment

* x

* fix tsan race

* iwyu

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-29 20:03:05 -07:00
Esun Kim f11282df8d
Bump dev version v1.51-dev (#31174)
* bump version to 1.51.0-dev

* regenerate projects
2022-09-29 14:58:01 -07:00
Craig Tiller ebc4f236b6
[slice] Remove _internal variants of APIs (#30953)
* [slice] Remove _internal variants of APIs

* Automated change: Fix sanity tests

* fix

* reduce bloat

* fixes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-24 13:34:00 -07:00
Craig Tiller f15ba1ffc7
[tls] Remove support for pthread tls (#31040)
* [tls] Remove support for pthread tls

* fix

* fix

* fix

* lalala

* fix

* fix

* Clean up deployment target changes

* additional clean up of deployment target

* regen podspec for updated file list

* remove destination change

* deployment target override for ios cpp test

* fix?

* fix run test script & update test destination

* [tls] Remove support for pthread tls

* fix

* fix

* fix

* lalala

* fix

* fix

* Clean up deployment target changes

* additional clean up of deployment target

* regen podspec for updated file list

* remove destination change

* deployment target override for ios cpp test

* fix?

* fix run test script & update test destination

* merge

* fix

* final script fix for proper destination & target

* more deployment target fix

* objc ios test script fix

Co-authored-by: Denny C. Dai <dennycd@me.com>
Co-authored-by: dennycd <dennycd@google.com>
2022-09-22 22:39:35 -07:00
Craig Tiller e8df8185e5
[debug] Fine grained event tracing (#31105)
* moved-from-stats

* [debug] Fine grained event tracing

* Automated change: Fix sanity tests

* comment

* Automated change: Fix sanity tests

* iwyu

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-22 16:32:10 -07:00
AJ Heller c0e5e35c7a
Replace EventEngine::Promise with grpc_core::Notification (#31027)
* Replace EventEngine::Promise with grpc_core::Notification

* remove promise.h

* Automated change: Fix sanity tests

* fix windows

* fix iocp

* fix client_test

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2022-09-21 09:30:23 -07:00
Denny C. Dai 343cb0ecb9
Setting C++ lang dialect for objc cocoapod specs (#31071) 2022-09-20 13:59:17 -07:00
Mark D. Roth 07df5ff9c7
json_object_loader: refactor ErrorList into its own library (#31049)
* json_object_loader: refactor ErrorList into its own library

* fix observability_config_test

* generate_projects

* iwyu
2022-09-20 11:58:27 -07:00
Craig Tiller d9ac89a441
[gprpp] absl::Notification polyfill (#31008)
* [gprpp] absl::Notification polyfill

* grpc_core::

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-16 09:06:03 -07:00
Craig Tiller c2ab8c99bb
Revert "Revert "[c++] Move environment functions to C++ (#30937)" (#30986)" (#30988)
This reverts commit 96264e07b8.
2022-09-14 14:19:36 -07:00
Craig Tiller 96264e07b8
Revert "[c++] Move environment functions to C++ (#30937)" (#30986)
This reverts commit 74c0d6fe3f.
2022-09-14 11:53:55 -07:00
Craig Tiller 74c0d6fe3f
[c++] Move environment functions to C++ (#30937)
* [gprpp] Move env to C++

* move headers/impl

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* Update http_proxy.cc

* fix

* fix

* rename

* fix merge

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-14 10:17:15 -07:00
Craig Tiller 92f58c18a8
Revert "Revert "[chttp2] Improve huffman decode efficiency (#30479)" (#30961)" (#30962)
This reverts commit bfea47093f.
2022-09-13 13:16:55 -07:00
Craig Tiller bfea47093f
Revert "[chttp2] Improve huffman decode efficiency (#30479)" (#30961)
This reverts commit 6c7f921f5f.
2022-09-13 12:25:00 -07:00
Craig Tiller 6c7f921f5f
[chttp2] Improve huffman decode efficiency (#30479)
* first pass

* refinement #1

* fix

* opt

* 8

* 5

* 12

* 10

* 7

* 15

* 8n

* 15n

* 8a

* 16a

* 15a

* 5a

* 10a

* 7a

* 9a

* 12a

* 11a

* 11b

* 11b

* 7b

* 15b

* 14b

* 15i

* 12i

* 9i

* 10i

* finalizing

* fix

* tweak

* 10f

* 10r

* 7r

* 8r

* 9r

* more

* rething

* 8s

* 9s

* 12s

* 7s

* 10s

* 15snr

* 12snr

* 14snr

* 13snr

* 11snr

* 20snr

* 15snr

* 18snr

* 7snr

* 7snr

* 12-2stp

* 13-2stp

* 14-2stp

* 11-2stp

* 10-2stp

* 9-3stp

* 8-3stp

* 7-3stp

* 8-2stp

* auto-tune1

* max-depth-2

* max-depth-3

* max-depth-2

* abbreviate

* working version

* add benchmark

* fix

* fix

* fix

* ditch define

* better code layout

* static fns

* fix

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix build

* cleanup and comment

* fmt

* fix

* test

* tag

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* progress

* progress

* progress

* fixes

* cleanup

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fmt

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* fix

* add encode/decode fuzzer

* Automated change: Fix sanity tests

* fix

* fix

* fix

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-13 11:24:35 -07:00
Craig Tiller a27073f7a8
[config] Move proxy mapper into core configuration (#30842)
* [config] Move proxy mapper into core configuration

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-09 15:09:31 -07:00
Craig Tiller 346c103a1c
[build] Remove dependency cycle for grpc_init/shutdown (#30921)
* [build] Remove dependency cycle for grpc_init/shutdown

* missing files

* Automated change: Fix sanity tests

* fix

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-09 14:58:57 -07:00
Craig Tiller 7ba58bb925
[build] Move certificate provider registry into its own build target (#30836)
* [build] Move cert registry into its own build target

* Automated change: Fix sanity tests

* fix

* forgot to save file

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-07 17:23:03 -07:00
Craig Tiller 381976dc99
[windows] Handling for tchar type in C++ (#30845)
* [windows] Handling for tchar type in C++

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* Update tchar.cc

* Update tchar.h

* Update tchar.h

* Update env_windows.cc

* Update string_util_windows.cc

* Update tmpfile_windows.cc

* Update env_windows.cc

* Update env_windows.cc

* Update subprocess_windows.cc

* Automated change: Fix sanity tests

* fix

* Update subprocess_windows.cc

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-07 14:37:37 -07:00
Craig Tiller ca8b437613
[experiments] Single experiments flag (#30822)
* single experiments flag

* add missing files

* fix

* empty-string-fix

* fix

* Automated change: Fix sanity tests

* ensure cold path is out of line

* add log for enabled/disabled experiments

* remove bad sentence

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-01 23:13:02 -07:00
Vignesh Babu 029f945504
Migrating posix event pollers to use new event poller interface (#30419)
* Migrating posix event pollers to use new event poller interface

* add inline attributes

* Automated change: Fix sanity tests

* remove ref/unref from iomgr engine closure ad add custom closure types internal to the pollers

* updating time util usage

* use unique_ptrs

* update comments

* Automated change: Fix sanity tests

* fix review comments

* review comments

* cleanup

* update comments

* fix

* cleanup

* update comments

* Automated change: Fix sanity tests

* fix misleading comments

* bug fixes

* fix

* fix

* revert some changes for bug fixes and allow spurious wakeups for poll based poller

* sanity

* fix

* review comments

* fix

* comment

* remove re-defined function

* fix review comments

* fix windows iocp build issue due to removed function

* change Milliseconds return type

* remove header

* regenerate projects

* fix sanity

* fix sanity

* Automated change: Fix sanity tests

* delete unused file

* build issue

* cleanup

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2022-08-31 17:45:30 -07:00
Craig Tiller c580d0d9a7
[experiments] Add experiment framework (#30775)
* [experiments] Add experiment framework

* auto-ci-config

* fix

* fix

* Automated change: Fix sanity tests

* support different configs

* Automated change: Fix sanity tests

* cleaner generated code

* Automated change: Fix sanity tests

* enforce expiry

* make sure expiry isnt far in the future

* fix

* Automated change: Fix sanity tests

* remove specified testing

* cleaner

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* docstring

* clean up code

* Automated change: Fix sanity tests

* review feedback

* build fix

* Automated change: Fix sanity tests

* ownership

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-08-31 10:52:40 -07:00
Craig Tiller 004788af3d
[cleanup] Remove profiling timers (#30779)
* [cleanup] Remove profiling timers

- nobody has used this system in years
- if we needed it, we'd probably rewrite it at this point to be something more modern
- let's remove it until that need arises

* fix

* fixes
2022-08-30 13:40:08 -07:00
Craig Tiller 18da150733
[metadata] Reduce size by packing (#30474)
* [metadata] Reduce size by packing

* fix

* comment

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* windows workaround?

* Revert "fix"

This reverts commit 925211164b.

* iterate encodables correctly

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-08-29 13:21:27 -07:00
Mark D. Roth 0e30264a5d
XdsBootstrap: split interface from implementation (#30759)
* create XdsBootstrapInterface

* move gRPC-specific bootstrap code into its own module

* move LookupAuthority() back to base class

* share constants

* clang-format

* Automated change: Fix sanity tests

* fix xds_bootstrap_test

* clang-format

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-08-26 15:10:28 -07:00
apolcyn 778f04dccf
Bump version on master branch to 1.50.0.dev (#30614)
* bump version to 1.50.0-dev

* regenerate projects
2022-08-17 18:20:27 -07:00
AJ Heller 0c5b6171ad
EventEngine Forkables (#30473)
A (currently) pthread_atfork-based fork support mechanism, allowing EventEngines - or any other object that wants to implement the Forkable interface - respond to forks.
2022-08-09 08:41:16 -07:00
AJ Heller 8f5300b95d
Rename the default EventEngine headers (#30528)
* Rename the default EventEngine headers

Small cleanup. This code hasn't been related to factories for a month or
two.

* ensure only one target contains default_event_engine.h

* src + hdr in same target

* include guards
2022-08-08 13:13:53 -07:00
Craig Tiller c866d65966
[promises] Eliminate switch.h (#30317)
* [promises] Eliminate switch.h

Instead build a jump table that we can index into and call the appropriate function. Means that the dispatch mechanism can be done in C++ without a code generator, and so eliminates a bunch of fiddly code.

* fix

* ensure static initialization

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-08-05 08:28:33 -07:00
Craig Tiller 15a81131a8
[c++] Add a non-destructed type (#30491)
* [c++] Add a non-destructed type

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* comment

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-08-04 09:38:47 -07:00
Mark D. Roth af634e19b4
Declarative JSON parser (#30442)
* Declarative JSON parser

* Automated change: Fix sanity tests

* fix

* shrinking stuff a little

* static vtables

* separate fns

* simpler?

* make maps work

* windows fixes

* Automated change: Fix sanity tests

* simplify code

* Automated change: Fix sanity tests

* vtable-test

* dont always create vec/map impls for every type

* comments

* make error consistent

* move method private

* progress

* durations!

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* post-load

* Automated change: Fix sanity tests

* document JsonPostLoad() and add static_assert

* don't copy field names, to avoid length limitations

* use absl::Status

* accept either string or number for numeric values

* add test for direct data member of another struct type

* remove unused method

* add support for retaining part of the JSON wirthout processing

* update test for changes in Json::Parse() API

* add absl::optional support

* Automated change: Fix sanity tests

* fix tests, improve error messages, and add overload to parse to existing object

* remove overload of LoadFromJson()

* change special case for Json to instead use Json::Object

* fix build

* improve error structure, add missing types, and improve tests

* clang-format

* Automated change: Fix sanity tests

* fix build

* add LoadJsonObjectField(), add LoadFromJson() overload that takes an ErrorList parameter, and add tests for parsing bare top-level types

* fix msan

* Automated change: Fix sanity tests

* fix error message

* Automated change: Fix sanity tests

* add mechanism to conditionally disable individual fields

* fix build

Co-authored-by: Craig Tiller <craig.tiller@gmail.com>
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Co-authored-by: Craig Tiller <ctiller@google.com>
Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-08-03 16:35:48 -07:00
AJ Heller c752a6b25e
Reland: Windows IOCP implementation for the WindowsEventEngine (#30480)
Reverts #30466, relanding #30389. Requires a cherrypick.
2022-08-03 15:18:57 -07:00
Craig Tiller a5cab10d6f
[load_balancing] Move interfaces to src/core/lib/load_balancing (#30465)
* [load_balancing] Move interfaces to src/core/lib/load_balancing

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-08-03 13:45:56 -07:00
AJ Heller 9d4e0e17fe
Revert "Windows IOCP implementation for the WindowsEventEngine (#30389)" (#30466)
This reverts commit 52402afdd4.
2022-08-02 12:27:13 -07:00
AJ Heller 52402afdd4
Windows IOCP implementation for the WindowsEventEngine (#30389)
This is a partial fork of the windows iomgr code - specifically the IOCP and Socket pieces - with some improved architecture and encapsulation. And the start of a WindowsEventEngine.

Once this code is used in a gRPC TCP context, I imagine a few issues will shake out. Also, getting sanitizers set up with MSVC will take a bit of work (see a commit referencing abseil and MSVC bugs to hack around).

I forked the IomgrEventEngine's posix poller interfaces in the hope of negotiating compatibility between the platforms, but the interfaces diverged a fair bit, and I'm doubtful we'll be able to use these "pollers" generically in the same TCP code. Reunification might not happen, and that's probably fine, we'll see how similar the TCP code looks once it's fleshed out.

I also extracted the IomgrEventEngine's timer piece into a separate component, usable by both engines.
2022-08-01 17:06:03 -07:00
Craig Tiller 05e6bf2e4a
[build] Add test/core/util, test/core/event_engine to auto build deps (#30364)
* [build] Add test/core/util, test/core/event_engine to auto build deps

* deal with suppressions

* fix suppressions

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* progress

* Automated change: Fix sanity tests

* fix

* fix

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-25 21:59:25 -07:00
Craig Tiller 6fc2511e4d
[resource_quota] Periodically return memory to central quota (#30268)
* [resource_quota] Periodically return memory to central quota

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* optionalize features

* fix periodic update behavior around initialization

* fix

* fix

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-19 07:56:43 -07:00
Mark D. Roth 90cc6fa706
xDS: upgrade the commit of the xDS protos that we're using (#30318)
* xDS: upgrade the commit of the xDS protos that we're using

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-18 13:37:34 -07:00
Esun Kim b37996d50e
Removed GRPC_ERROR_IS_ABSEIL_STATUS (#30267)
* Removed GRPC_ERROR_IS_ABSEIL_STATUS

* Remove error_internal.h
2022-07-14 16:44:48 -07:00
Craig Tiller 830940a103
[gprpp] Move time averaged stats to gprpp (#30265)
* move to gprpp

* use the shared thing

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-14 15:38:28 -07:00
Craig Tiller caf0a49e67
[build] Reland grpc_base autodeps (#30235)
* Revert "[build] Automate deps for grpc_base (#29995)"

This reverts commit 5956fb8829.

* fix merge

* Revert "fix merge"

This reverts commit 75d73ca362.

* Revert "Revert "[build] Automate deps for grpc_base (#29995)""

This reverts commit c3bec79a21.

* [build] Reland grpc_base autodeps

* add note

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-13 13:23:56 -07:00
Mark D. Roth 4491ed26aa
BUILD: move work_serializer to its own build target (#30255)
* BUILD: move work_serializer to its own build target

* add autodeps tag

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-13 13:21:07 -07:00
AJ Heller 1076a7d447
Use AnyInvocable in EventEngine APIs (#30220) 2022-07-08 16:25:54 -07:00
Craig Tiller 1b5295a4a2
[iomgr] Remove executor/...
I've tried this before in #27445 and we found some internal usage of this code. Today I can find no such usage, so let's try again.
2022-07-08 12:07:36 -07:00
Mark D. Roth a3afb81274
Second attempt: XdsClient: refactor transport code to make it injectable (#30225)
* Revert "Revert "XdsClient: refactor transport code to make it injectable (#30183)" (#30223)"

This reverts commit fa57b9d0bc.

* fix deadlock seen internally

* Automated change: Fix sanity tests

* fix memory leak

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-07 10:03:23 -07:00
AJ Heller fa57b9d0bc
Revert "XdsClient: refactor transport code to make it injectable (#30183)" (#30223)
This reverts commit bd9bc5fd3e.
2022-07-06 12:29:57 -07:00
AJ Heller 71c0eb090a
Revert "[WIP] Use AnyInvocable in EventEngine APIs (#30208)" (#30219)
This reverts commit dbbf16f07a.
2022-07-06 10:28:48 -07:00
AJ Heller dbbf16f07a
[WIP] Use AnyInvocable in EventEngine APIs (#30208)
This provides a move-only alternative to std::function.

fix oracle and engine factory

fix generate_projects for any_invocable

fix

format & iwyu

Automated change: Fix sanity tests (#30205)

Co-authored-by: drfloob <drfloob@users.noreply.github.com>

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2022-07-06 10:27:11 -07:00
Mark D. Roth bd9bc5fd3e
XdsClient: refactor transport code to make it injectable (#30183)
* XdsClient: refactor transport code to make it injectable

* clang-format

* Automated change: Fix sanity tests

* remove unnecessary dtor

* fix build

* re-add missing drain of WorkSerializer queue after receiving a message

* remove unused code

* fix memory leak

* Automated change: Fix sanity tests

* fix another memory leak

* fix unused parameter

* fix tsan failure

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-06 09:26:34 -07:00
Yash Tibrewal 89f7534e43
Bump dev version 202207012203 (#30177)
* bump version to 1.49.0-dev

* regenerate projects
2022-07-04 16:38:08 -07:00
Esun Kim 27509c345c
Update upb to 20220621 (#30156)
* Update third_party/upb to e4635f223e7d36dfbea3b722a4ca4807a7e882e2

* Update grpc_deps

* Update src/upb/gen_build_yaml.py

* Regen projects

* Gen_upb_api

* Fix missing json files

* Fix missing textformat

* Fix missing upb/arena

* Sanitize

* Fix missing port_def

* Fix missing array.h
2022-07-01 13:57:56 -07:00
Esun Kim dcf9612186
Upgrade Abseil to LTS 20220623.0 (#30155)
* Upgrade abseil to 20220623.0

* Fix subchannel include
2022-06-30 16:02:08 -07:00
Craig Tiller 6648dd7447
[slice] Remove dead code (#30139)
* Remove dead code

* More dead code

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-29 11:18:04 -07:00
Craig Tiller eb5ae61470
Reland (again) bytestream removal (#29987)
* Revert "Revert "Reland bytestream removal (#29911)" (#29964)"

This reverts commit e6c6840db3.

* initial fc fuzzer

* fixes

* add rq to fc fuzzer

* fleshing things out

* Automated change: Fix sanity tests

* cleanup

* send with payload

* ensure if no reader no flow control tokens are granted

* remove some public methods

* remove bogus benchmarks

* account for pending size

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* better logic

* Automated change: Fix sanity tests

* fix

* fixes

* fuzz pending size

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* huh

* increase too short timeout

* review feedback

* review feedback

* fix u32 overflow

* fix

* robustness fixes for channelz_servicer_test

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* dont send window updates if read closed

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-27 21:21:23 -07:00
Denny C. Dai 98eeb8ae5d
[gRPC/iOS] Remove libuv pod dependnecy from iOS cocoapod build (#30096) 2022-06-23 17:43:39 -07:00
Vignesh Babu c03388853c
Revert "Revert "Creating a posix oracle event engine and a suite of event engine client tests"" (#30060)
* Revert "Revert "Creating a posix oracle event engine and a suite of event engine client tests (#29714)" (#30042)"

This reverts commit 1630efd8ab.

* fix typos
2022-06-23 11:12:14 -07:00
Craig Tiller 24caf53835
Roll forward iomgr ee fork (#30022)
* Revert "Revert "[event-engine] Fork timer code (#29816)" (#30020)"

This reverts commit cda2127776.

* fix-import

* [event_engine] Use durations for scheduling things

* fix

* Automated change: Fix sanity tests

* run-after

* fix

* Automated change: Fix sanity tests

* rename

* Automated change: Fix sanity tests

* format is changing, expunge corpus

* update api_fuzzer

* fix

* Automated change: Fix sanity tests

* fix

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-21 13:55:27 -07:00
Vignesh Babu 1630efd8ab
Revert "Creating a posix oracle event engine and a suite of event engine client tests (#29714)" (#30042)
This reverts commit 19e6a6d232.
2022-06-17 12:55:12 -07:00
Vignesh Babu 19e6a6d232
Creating a posix oracle event engine and a suite of event engine client tests (#29714)
* Creating a posix oracle event engine and a suite of event engine client tests

* regenerate projects

* addressing review feedback

* creating a promise.h in src/core/lib/event_engine

* regenerate projects

* fix errors

* remove no_mac tag for posix oracle event engine test

* Automated change: Fix sanity tests

* fix a static_cast

* adding a no_windows tag

* fixing macos build and test issues

* adding some static_casts

* removing connection manager usage in client_test to improve readability

* fix nits

* fix minor typo

* fix sanity checks

* update fuzzing_event_engine_test to new api

* update event engine time type

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2022-06-16 19:47:32 -07:00
AJ Heller cda2127776
Revert "[event-engine] Fork timer code (#29816)" (#30020)
This reverts commit 977ebbef09.
2022-06-15 11:17:33 -07:00
Craig Tiller 977ebbef09
[event-engine] Fork timer code (#29816)
* move files

* [event-engine] Fork timer code from iomgr

* progress

* thread-pool

* x

* fixes

* tests

* Automated change: Fix sanity tests

* x

* wip

* Automated change: Fix sanity tests

* timer-heap-test

* flesh-things-out

* wip

* Automated change: Fix sanity tests

* fix-test

* fix

* Automated change: Fix sanity tests

* fix

* fix windows

* Automated change: Fix sanity tests

* fix mac

* fix

* review feedback

* fix

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

* review feedback

* Automated change: Fix sanity tests

* fix

* annotate

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-14 21:07:18 -07:00
apolcyn e6c6840db3
Revert "Reland bytestream removal (#29911)" (#29964)
* Revert "Reland bytestream removal (#29911)"

This reverts commit 98dcba2807.

* Automated change: Fix sanity tests
2022-06-09 08:51:06 -07:00
Alessio Buraggina 990bb66ebf
Add MacOS system roots loading support. (#29957)
This change includes:
* adding a cert file path for MacOS
* updating related test to run on MacOS too
* s/linux/supported/ since this now includes more platforms
* regenerating files affected by the name change
2022-06-09 07:20:45 -07:00
Craig Tiller 98dcba2807
Reland bytestream removal (#29911)
* Revert "Revert "Revert "Revert "[transport] Remove ByteStream (#29637)" (#29890)" (#29894)" (#29910)"

This reverts commit 713a1581d5.

* fix
2022-06-05 18:42:28 -07:00
Craig Tiller 713a1581d5
Revert "Revert "Revert "[transport] Remove ByteStream (#29637)" (#29890)" (#29894)" (#29910)
This reverts commit 93cdc8b77e.
2022-06-05 11:01:48 -07:00
Craig Tiller 93cdc8b77e
Revert "Revert "[transport] Remove ByteStream (#29637)" (#29890)" (#29894)
* Revert "Revert "[transport] Remove ByteStream (#29637)" (#29890)"

This reverts commit d53986657f.

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-04 15:51:16 -07:00
Craig Tiller d53986657f
Revert "[transport] Remove ByteStream (#29637)" (#29890)
This reverts commit aacf0e252b.
2022-06-02 19:34:49 -07:00
Craig Tiller aacf0e252b
[transport] Remove ByteStream (#29637)
* A starter SliceBuffer implementation

* Add comments and fix sanity checks

* Minor fixes

* more minor fixes

* Addressing review comments and adding a slice_buffer_test

* fix sanity checks

* regenerate projects

* fixing undefined function error

* reverting changes from memory_allocator.cc and adding them to src/core/lib/slice/slice_buffer.cc to allow memory allocator lib to build correctly

* fix sanity checks

* adding an open source slice definition

* regnerate projects

* fix asan error

* Automated change: Fix sanity tests

* addressing review comments

* fix sanity checks

* regenerate projects

* update

* fix sanity checks

* Converting slice buffer to retarin ownership of the underlying ctype

* [slice_buffer] Introduce grpc_core::SliceBuffer

* add test

* Automated change: Fix sanity tests

* [byte-stream] Delete ByteStream

* progress

* progress

* missing files

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* progress

* sanity

* progress

* progress

* progress

* progress

* progress

* progress

* progress

* progress

* progress

* iwyu

* fix

* progress

* fix

* fix

* progress

* code compiles

* fix?

* bogus assert

* Automated change: Fix sanity tests

* fix

* fix

* fix?

* fix

* fix

* better expression of function

* fix?

* Automated change: Fix sanity tests

* x

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* add fullstack test without retry filter

* debug

* missing files

* gc

* fix h2_full_no_retry

* remove headers

* fixes

* Automated change: Fix sanity tests

* x

* fix

* fix

* fix

* progress

* x

* tear apart flow control

* continue itnegration

* fix

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* cleanup

* Automated change: Fix sanity tests

* fix

* x

* x

* Revert "debug"

This reverts commit 0120a94492.

* undo debug

* fix

* Automated change: Fix sanity tests

* better inproc

* fixes

* iwyu

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fix stalled streams

* properly handle non-terminal trailers

* fix test

* fix channelz test

* fix subchannel_stream_client

* fix server load reporting

* review feedback

* review feedback

* review feedback

* review feedback

* Automated change: Fix sanity tests

* remove compression test from python

* fix

* x

* Automated change: Fix sanity tests

* iwyu fix

* Revert "remove compression test from python"

This reverts commit 5fe0512077.

* cripple python tests

* Revert "fix"

This reverts commit 6df476b22f.

* Automated change: Fix sanity tests

* review feedback

* Automated change: Fix sanity tests

* fix

* fix

* fix

* ugh

Co-authored-by: Vignesh Babu <vigneshbabu@google.com>
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-02 16:04:32 -07:00
Yash Tibrewal 5d9cdc8e67
xds: Add XdsLbRegistry (#29756)
* xds: Add XdsLbRegistry

* Formatting

* Fix upb output

* Allow alternative type url for Custom LBs

* Cleanup

* Reviewer comments

* Add some comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Unused parameters

* Change to make TextFormat usage work internally

* Fix namespace qualification error
2022-06-01 14:08:26 -07:00
Richard Belleville 761bb3bfc3
Bump version to 1.48.0-dev (on master branch) (#29829)
* bump version to 1.48.0-dev

* regenerate projects
2022-05-27 15:16:27 -07:00
Craig Tiller da7069e33d
[iwyu] rest of the owl: src/core/ext (#29642)
* [iwyu] rest of owl: src/core/ext, excluding binder

* merge

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-05-24 12:50:30 -07:00
Mark D. Roth 709dff9ca8
security and subchannel: implement UniqueTypeName and use it in these interfaces (#29709)
* implement UniqueTypeName API

* convert security code to use UniqueTypeName

* change subchannel data producer API to use UniqueTypeName

* sanitize

* add missing build dep

* fix credentials_test

* fix certificate_provider_store_test

* fix tls_security_connector_test

* attempt to fix windows build

* avoid unnecessary allocation

* work around MSVC 2017 bug

* sanity

* change factory to not be templated

* fix sanity

* fix bug in chttp2 connector that used server creds instead of channel creds

* add missing build dep

* simplify API
2022-05-23 09:45:20 -07:00
Craig Tiller 9a46171833
Revert "Revert "[c++14] Remove Capture type (#29327)" (#29748)" (#29749)
This reverts commit d4aed9e615.
2022-05-20 17:29:16 -07:00
Nicolas Noble 667691c499
server: per-rpc backend metric reporting (#29621)
Users can now report per-rpc metrics from servers to clients.
2022-05-20 15:54:30 -07:00
Craig Tiller d4aed9e615
Revert "[c++14] Remove Capture type (#29327)" (#29748)
This reverts commit 944c0b2ce9.
2022-05-20 12:58:47 -07:00
AJ Heller 1df32ca680
Delete the EventEngine-driven iomgr implementation (#29654)
This code is not compiled by default and has fallen out of sync with the
rest of the codebase. There's a good chance it won't be used, given our
current work to use an iomgr-drive EventEngine instead.

This code will continue to live in git history, should we need to bring
pieces of it back.
2022-05-20 10:18:53 -07:00
Craig Tiller 944c0b2ce9
[c++14] Remove Capture type (#29327)
* Remove Capture type

* Automated change: Fix sanity tests

* update

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-05-20 09:56:23 -07:00
donnadionne 03cf989610
outlier detection: implement LB policy and xDS configuration (#29343)
* Initial skeleton for outlier detection

* fixing code review comments (modifying child policy)

* Skeleton and all tests passing except for 1

* small code review comments fix

* Adding the parsing of the policy in cds and put it in discovery
mechansim json format

* Parsing outlier detection json policy from parent

* Adding parsing of the updates

* Added Subchannel wrapper and watcher wrapper: and all states pass
through and all tests still pass

* added framework to do eject and uneject

* fixing code review comments

* restore a test

* fixing code review comments

* taking care of code review comments

* removing debug code and rebuild build files

* fixing according to code review comments

* fixing code review comments

* Adding address to subchannel map

* addressing code review comments

* adding call counter

* Refcount SubchannelState (in the map) and store them in Subcahnnel Wrapper

* fixing counterss

* Call counter and tracker skleton added

* Call counter

* addressing code review comments

* addressing code review comments

* Added CallCounter and timer

* fixing sanity; but more importantly: taking out timer temporarly as it
was causing test failures.

* sanity

* fixing according to code review comments

* addressing code review comments

* all algorithms implemented

* addressing code review comment about starting the timer

* protect private vars

* small fix

* Added one more corner case

* fixing EjectionTimer

* Fixing according to code review suggestions.

* fixing according to code reveiw comments

* taking care of code review comments

* fixing sanity issues

* Adding proto to tests

* First test

* Fixing according to code review comments

* Tests all working now

* fixing a crash

* fixing build files

* fixing sanity

* sanity

* Simplifying tests

* merge and update

* format

* sanity and format

* Fixing asan error

* fixing parsing logic and error handling

* 6 more tests done

* Added verifying unejection to tests

* Added all the tests

* fixing according to code review comments

* fixing asan and ubsan

* Fixing tests according to code review comments

* Added both algorithm tests

* added percentage enforcement tests

* fixing tsan error

* keeping debug, but fix warning

* remove debugs

* fixing IWYU and build errors after

* test comments change only but very important

* fixing code review comments

* one more refactorying of util function

* Removed debugs and added one more helper method

* one more logic fix

* Fixing last bit of code review comments and added disable tests

* fixing code review comments

* fixing IWYU

* sanity format

* protecting the feature with environment var:
registering policy and generating policy

* added a todo according to code review comments

* fixing a clang finding at import time

* build fix after synching to latest
2022-05-16 21:37:34 -07:00
AJ Heller 250b8d2dae
IomgrEventEngine Redux (#29693)
* Revert "Revert "IomgrEventEngine (#29616)" (#29692)"

This reverts commit 246d13e392.

* temporarily disable EE usage to coordinate landing

* spelling
2022-05-16 10:32:07 -07:00
AJ Heller 246d13e392
Revert "IomgrEventEngine (#29616)" (#29692)
This reverts commit 7f09b98201.
2022-05-13 16:06:19 -07:00
AJ Heller 7f09b98201
IomgrEventEngine (#29616) 2022-05-13 13:12:05 -07:00
Anirudh Ramachandra 063c36cb46
Revert "Revert "Move TCP Connect into its own handshaker. (#29111)" (#… (#29626)
Rollforward with TCP connect handshaker again(#29111) after fixing broken internal targets.

The changes needed were just visibility changes to the handshaker and the http_connect_handshaker libraries as they are used internally.
2022-05-12 13:29:12 -07:00
Craig Tiller 7798e3b741
[slice] Introduce grpc_core::SliceBuffer (#29635)
* A starter SliceBuffer implementation

* Add comments and fix sanity checks

* Minor fixes

* more minor fixes

* Addressing review comments and adding a slice_buffer_test

* fix sanity checks

* regenerate projects

* fixing undefined function error

* reverting changes from memory_allocator.cc and adding them to src/core/lib/slice/slice_buffer.cc to allow memory allocator lib to build correctly

* fix sanity checks

* adding an open source slice definition

* regnerate projects

* fix asan error

* Automated change: Fix sanity tests

* addressing review comments

* fix sanity checks

* regenerate projects

* update

* fix sanity checks

* Converting slice buffer to retarin ownership of the underlying ctype

* [slice_buffer] Introduce grpc_core::SliceBuffer

* add test

* Automated change: Fix sanity tests

* missing files

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* sanity

Co-authored-by: Vignesh Babu <vigneshbabu@google.com>
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-05-11 13:44:35 -07:00
Vignesh Babu 1494b1ef26
A starter slice buffer implementation to unblock event engine endpoints (#29367)
* A starter SliceBuffer implementation

* Add comments and fix sanity checks

* Minor fixes

* more minor fixes

* Addressing review comments and adding a slice_buffer_test

* fix sanity checks

* regenerate projects

* fixing undefined function error

* reverting changes from memory_allocator.cc and adding them to src/core/lib/slice/slice_buffer.cc to allow memory allocator lib to build correctly

* fix sanity checks

* adding an open source slice definition

* regnerate projects

* fix asan error

* Automated change: Fix sanity tests

* addressing review comments

* fix sanity checks

* regenerate projects

* update

* fix sanity checks

* Converting slice buffer to retarin ownership of the underlying ctype

* fix nits

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2022-05-11 10:32:32 -05:00
AJ Heller 9f7311e399
Revert DNSResolver cancellation (#29581 and #29631) (#29634)
This reverts commit 075e84314d.
2022-05-10 14:13:23 -07:00