Commit Graph

1125 Commits

Author SHA1 Message Date
AJ Heller ee7c0a8e4c
Reland: Make GetDefaultEventEngine return a shared_ptr (#30563)
* Reland: "Make GetDefaultEventEngine return a shared_ptr (#30280)"

This reverts commit 45959e7cc1.

* Attempted fix with NoDestruct

* Not a process-wide singleton for the type. Just a NonDestruct

* fix
2022-08-12 08:09:31 -07:00
AJ Heller 45959e7cc1
Revert "Make GetDefaultEventEngine return a shared_ptr (#30280)" (#30558)
This reverts commit 4df74f2b4c.
2022-08-10 18:28:30 -07:00
AJ Heller 4df74f2b4c
Make GetDefaultEventEngine return a shared_ptr (#30280)
This works around valgrind memory leaks by giving EventEngines a fixed
lifetime. We eventually want ref-counted EventEngines internally, so this is
a step in the right direction as well.
2022-08-10 11:32:09 -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
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
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
AJ Heller e18d335b0e
Add common EventEngine Closure types (#30438)
* Add common EventEngine Closure types

These have been written a few times, so let's standardize on a spot for
them.

* sanitize

* format
2022-07-28 16:54:47 -07:00
Esun Kim 7360d2ea82
gtestify test/core/iomgr: partial reland (#30373)
* Revert "Revert "gtestify test/core/iomgr (#30209)" (#30362)"

This reverts commit c7c0ba6f32.

* -_-

* Regen
2022-07-25 16:19:18 -07:00
Craig Tiller c7c0ba6f32
Revert "gtestify test/core/iomgr (#30209)" (#30362)
This reverts commit 5b49a1b4bd.
2022-07-20 20:19:38 -07:00
Esun Kim 5b49a1b4bd
gtestify test/core/iomgr (#30209)
* gtestify test/core/iomgr
2022-07-20 18:58:25 -07:00
Mark D. Roth 201213c681
client channel: add tests for authority override precedence (#30172)
* client channel: add tests for authority override precedence

* add unit test

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-18 16:02:59 -07:00
Vignesh Babu fbe051fb51
Forking the posix epoll1 poller for iomgr event engine (#30135)
* start

* Forking the posix epoll1 poller for event engine

* re-generate projects

* fix test

* fix sanity checks

* fix

* update fix

* more build issue fixes

* even more fixes

* add no_windows tag

* re-generate projects

* update comment

* cleanup

* Automated change: Fix sanity tests

* review comments

* fix tsan issue

* re-generate projects

* cleanup

* fix missing build dep

* fix mac build issue

* minor fix in test

* simplifying build graph

* re-generate projects

* fix macOS build issues

* review comments

* re-generate projects

* add missing generated file

* review comments

* fix sanity checks

* rename one more build target

* fix sanity checks

* retry fix sanity checks

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2022-07-14 17:20:49 -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
Esun Kim 6bdc1810c9
gtestify test/core/slice (#30198)
* gtestify test/core/slice

* Fix

* fix

* fix
2022-07-14 11:52:04 -07:00
Esun Kim 34b380697d
gtestify test/core/http (#30200)
* Fix

* gtestify test/core/http

* Fix

* fix
2022-07-14 11:02:16 -07:00
Esun Kim 0f272f836d
gtestify test/core/gpr (#30196)
* fix

* gtestify test/core/gpr

* Fix

* fix
2022-07-14 10:50:11 -07:00
Esun Kim 57de9d7353
gtestify test/core/compression (#30204)
* gtestify core/compression

* Fix
2022-07-14 10:45:21 -07:00
Craig Tiller b590d192dc
[build] Remove errant dependency (#30291) 2022-07-14 09:51:31 -07:00
Craig Tiller 3ec0e29bcf
[test] Convert cq verifier to C++ (#30256)
* [test] Convert cq verifier to C++

* Automated change: Fix sanity tests

* fix

* dead code

* strength reduction

* dead code

* fix

* when search/replace goes wrong

* review feedback

* review feedback

* cleanup

* fixes

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-14 04:41:30 -07:00
Esun Kim 2cba5f80cf
gtestify test/core/transport (#30210)
* gtestify test/core/transport/

* Fix

* Fix2

* Fix
2022-07-13 08:50:43 -07:00
Esun Kim 89fedf9a9d
Rollback gtestified minimal_stack_is_minimal_test (#30275) 2022-07-12 10:38:26 -07:00
Esun Kim c0ec55d2f1
gtestify test/core/util (#30195)
* Gtestify cmdline_test

* gtestify histogram_test

* Fix
2022-07-11 18:18:57 -07:00
Esun Kim 98c423503c
gtestify test/core/channel (#30201)
* gtestify test/core/channel

* Update by review

* Fix 2
2022-07-11 16:07:47 -07:00
Esun Kim dfe6a8b903
gtestify test/core/gprpp (#30197)
* fix

* gtestify test/core/gprpp

* Update by review
2022-07-11 14:50:59 -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
Esun Kim 7dfd49429f
gtestify test/core/handshake (#30207)
* gtestify test/core/security (#30199)

* fix

* gtestify test/core/security

* Fix

* Fix
2022-07-07 16:51:28 -07:00
Esun Kim 156ad18623
gtestify test/core/security (#30199)
* fix

* gtestify test/core/security

* Fix
2022-07-07 10:22:34 -07:00
Esun Kim 70a311b736
gtestify test/core/tsi (#30211)
* Fix

* test/core/tsi/alts/frame_protector

* Fix

* Fix
2022-07-06 22:10:46 -07:00
Esun Kim 87c0bb1a98
gtestify test/core/address_utils (#30193)
* Fix

* Fix

* Fix

* Fix
2022-07-06 20:34:54 -07:00
Esun Kim 508279bdd5
gtestify test/core/client_channel/resolvers (#30203)
* gtestify test/core/client_channel/resolvers

* Update by review
2022-07-06 15:05:59 -07:00
Esun Kim 4749078ecc
gtestify test/core/resource_quota (#30215)
* gtestify test/core/resource_quota

* Fix
2022-07-06 13:47:19 -07:00
Esun Kim 36102dc910
gtestify test/core/surface (#30212) 2022-07-06 10:14:37 -07:00
Craig Tiller 15ae89e1fc
[arena] Add ManagedNew(), gtest-ify test (#30159)
* [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

* review feedback

* use construct/destruct more

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-01 11:24:37 -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
Craig Tiller 9824e3355d
[event engine] Handle spurious wakeups (#30092)
* handle spurious wakeups

* disable on mac, win

* Automated change: Fix sanity tests

* Update timer_test.cc

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-24 10:26:31 -07:00
Vignesh Babu a10e623494
Set uses polling to true for oracle_event_engine_posix_test (#30097)
* Set uses polling to true for oracle_event_engine_posix_test

* add a TODO

* Automated change: Fix sanity tests

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2022-06-24 05:52:45 -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
Craig Tiller 840b38ccbc
Reland (again) fuzzing event engine (#29948)
* Revert "Revert "Reland fuzzing event engine (#29943)" (#29947)"

This reverts commit dd07751c03.

* fix
2022-06-13 12:49:56 -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 720f9d65c9
[resource_quota] Periodic update tracker (#29853)
* [resource_quota] Periodic update tracker

Periodic update type that tries to do updates at some measurable
timescale without polling the current time every tick, instead trying to
approximate how many ticks will be required to fill the desired
duration.

The intent here is that we use this in RQ to donate memory back
periodically whilst keeping timer checks off the fast path.

* fix

* Automated change: Fix sanity tests

* review feedback

* fix

* fix

* review feedback

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-07 20:15:28 -07:00
Craig Tiller dd07751c03
Revert "Reland fuzzing event engine (#29943)" (#29947)
This reverts commit 72e65b03cf.
2022-06-07 19:22:34 -07:00
Yash Tibrewal 1e9fe0b8b3
Istio Echo Server Implementation (#29940)
* Istio Echo Server Implementation

* New line fix

* Fix race
2022-06-07 19:13:01 -07:00
Craig Tiller 72e65b03cf
Reland fuzzing event engine (#29943)
* Revert "Revert "[event_engine] Fuzzing event engine (#29926)" (#29942)"

This reverts commit cb2a92b5bb.

* fix unused args
2022-06-07 15:45:18 -07:00
Craig Tiller cb2a92b5bb
Revert "[event_engine] Fuzzing event engine (#29926)" (#29942)
This reverts commit 9b0afb46f9.
2022-06-07 15:04:26 -07:00
Craig Tiller 9b0afb46f9
[event_engine] Fuzzing event engine (#29926)
* [event_engine] Fuzzing event engine

* Automated change: Fix sanity tests

* fix

* Update fuzzing_event_engine.cc

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-07 10:50:55 -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
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
Craig Tiller d4aed9e615
Revert "[c++14] Remove Capture type (#29327)" (#29748)
This reverts commit 944c0b2ce9.
2022-05-20 12:58:47 -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
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
Mark D. Roth dd14f803c3
xds_end2end_test: move core XdsClient tests to their own file (#29403)
* xds_end2end_test: move core XdsClient tests to their own file

* clang-format

* also move SecureNaming and XdsStreamErrorPropagation tests
2022-04-15 12:33:50 -07:00
Mark D. Roth 214e3f3622
xds_end2end_test: Move RLS tests to their own file (#29290)
* move some code around

* remove num_backends parameter from XdsEnd2endTest

* remove use_xds_enabled_server param from XdsEnd2endTest

* remove xds_resource_does_not_exist_timeout_ms param from XdsEnd2endTest

* remove client_load_reporting_interval_seconds param from XdsEnd2endTest

* start moving CreateAndStartBackends() into individual tests

* finish moving CreateAndStartBackends() into individual tests

* remove unused variable

* remove SetEdsResourceWithDelay

* fix test flake

* clang-tidy

* clang-format

* move test framework to its own library

* fix build

* clang-format

* fix windows build

* rename TestType to XdsTestType

* move BackendServiceImpl inside of BackendServerThread

* clang-format

* move AdminServerThread to CSDS test suite

* move RLS tests to their own file

* remove unnecessary deps

* generate_projects
2022-04-14 11:22:39 -07:00
Mark D. Roth 55b0405c86
xds_end2end_test: Move fault injection tests into their own file (#29283)
* move some code around

* remove num_backends parameter from XdsEnd2endTest

* remove use_xds_enabled_server param from XdsEnd2endTest

* remove xds_resource_does_not_exist_timeout_ms param from XdsEnd2endTest

* remove client_load_reporting_interval_seconds param from XdsEnd2endTest

* start moving CreateAndStartBackends() into individual tests

* finish moving CreateAndStartBackends() into individual tests

* remove unused variable

* remove SetEdsResourceWithDelay

* fix test flake

* clang-tidy

* clang-format

* move test framework to its own library

* fix build

* clang-format

* fix windows build

* move fault injection tests to their own file

* rename TestType to XdsTestType

* move BackendServiceImpl inside of BackendServerThread

* clang-format

* generate_projects

* appease clang-tidy

* move AdminServerThread to CSDS test suite

* remove unnecessary deps

* generate_projects

* don't mark test as flaky
2022-04-14 08:32:33 -07:00
Mark D. Roth 61987ec3a2
xds_end2end_test: Move CSDS tests to their own file (#29285)
* move some code around

* remove num_backends parameter from XdsEnd2endTest

* remove use_xds_enabled_server param from XdsEnd2endTest

* remove xds_resource_does_not_exist_timeout_ms param from XdsEnd2endTest

* remove client_load_reporting_interval_seconds param from XdsEnd2endTest

* start moving CreateAndStartBackends() into individual tests

* finish moving CreateAndStartBackends() into individual tests

* remove unused variable

* remove SetEdsResourceWithDelay

* fix test flake

* clang-tidy

* clang-format

* move test framework to its own library

* fix build

* clang-format

* fix windows build

* rename TestType to XdsTestType

* move BackendServiceImpl inside of BackendServerThread

* clang-format

* move CSDS tests to their own file

* move AdminServerThread to CSDS test suite

* remove unnecessary deps

* generate_projects

* fix build

* remove flaky label
2022-04-13 13:12:39 -07:00
Mark D. Roth 60c56f7d01
Second attempt: implement ORCA RPC service for OOB backend metric reporting (#29352)
* Revert "Revert "ORCA: implement ORCA RPC service for OOB backend metric reporting (#29215)" (#29351)"

This reverts commit 71b355624f.

* move ORCA service to its own BUILD rule
2022-04-08 11:12:18 -07:00
Mark D. Roth 71b355624f
Revert "ORCA: implement ORCA RPC service for OOB backend metric reporting (#29215)" (#29351)
This reverts commit 6d6380de58.
2022-04-07 16:15:49 -07:00
Mark D. Roth 6d6380de58
ORCA: implement ORCA RPC service for OOB backend metric reporting (#29215)
* ORCA: implement ORCA RPC service for OOB backend metric reporting

* fix unused parameter error

* gen_upb_api

* add missing build deps

* increase test timing fudge factor

* add missing copyright header

* buildifier

* don't register as a generic service

* report interval defaults to min interval

* don't regenerate the response proto unless something changed

* use INTERNAL for proto parsing failure

* use absl::Duration in public API
2022-04-07 07:58:58 -07:00
Yash Tibrewal 4b8ea48c35
HTTP Proxy: Ignore empty entry in no_proxy list (#29217)
* HTTP Proxy: Ignore empty entry in no_proxy list

* Reviewer comments and add unit test

* Reviewer comments

* Fix use-after-free

* Clang-tidy
2022-03-31 17:12:40 -07:00
AJ Heller 18a8f6aad9
Refactor end2end tests to exercise each EventEngine (#29202)
* Refactor end2end tests to exercise each EventEngine

* fix incorrect bazel_only exclusions

* Automated change: Fix sanity tests

* microbenchmark fix

* sanitize, fix iOS flub

* Automated change: Fix sanity tests

* iOS fix

* reviewer feedback

* first pass at excluding EventEngine test expansion

Also caught a few cases where we should not test pollers, but should
test all engines. And two cases where we likely shouldn't be testing
either product.

* end2end fuzzers to be fuzzed differently via EventEngine.

* sanitize

* reviewer feedback

* remove misleading comment

* reviewer feedback: comments

* EE test_init needs to play with our build system

* fix golden file test runner

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2022-03-30 15:43:05 -07:00
Yash Tibrewal 76a52f7696
Revert "Revert "HTTP2: Add graceful goaway (#29050)" (#29187)" (#29190)
* Revert "Revert "HTTP2: Add graceful goaway (#29050)" (#29187)"

This reverts commit 882f64e376.

* Make sure fds are added to pollsets before the main test contents
2022-03-22 17:42:14 -07:00
AJ Heller 882f64e376
Revert "HTTP2: Add graceful goaway (#29050)" (#29187)
This reverts commit f76e1563ea.
2022-03-22 12:19:20 -07:00
Yash Tibrewal f76e1563ea
HTTP2: Add graceful goaway (#29050)
* HTTP2: Graceful GOAWAY

* Add another test

* Fix call unref

* Allow a bit of time imprecision

* Reviewer comment
2022-03-21 14:05:33 -07:00
Craig Tiller 766cd6b573
Remove epollex poller (#29160)
* start delete

* remove build.gn... again

* remove more

* Automated change: Fix sanity tests

* fixes

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-03-21 10:27:52 -07:00
Yash Tibrewal 01f333a1c1
TlsCredentials: Comparator implementation (#28940)
* TlsCredentials: Comparator implementation

* Update tests

* Redundant namespace qualifiers

* clang-tidy

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Add generator for grpc_tls_credentials_options.h

* Generator script modifications for tests

* Sanity

* Reviewer comments

* Reviewer comments

* Add a common place to look-up known types

* Formatting

* Script fix

* Reviewer comments

* Add test mode to script

* Add to sanitize.sh

* clang-tidy

* Fix

* Fix

* Reviewer comments

* Clang-format
2022-03-16 17:11:07 -07:00
Craig Tiller 3e5a5bba59
Single set pointer (#29114)
* Single set pointer

* Update single_set_ptr.h

* fix

* fix

* build

* custom deleters
2022-03-16 16:54:38 -07:00
Craig Tiller ccf70cf273
Reland channel args C++ type (#29113)
* Revert "Revert "Introduce ChannelArgs C++ type (#28860)" (#29106)"

This reverts commit f0283aac40.

* x

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-03-16 16:54:22 -07:00
Craig Tiller f0283aac40
Revert "Introduce ChannelArgs C++ type (#28860)" (#29106)
This reverts commit f82245555e.
2022-03-15 12:57:17 -07:00
Craig Tiller f82245555e
Introduce ChannelArgs C++ type (#28860)
* progress

* basics

* Automated change: Fix sanity tests

* fix

* fix

* backout protochange

* consistency in naming

* Make things load bearing, fix bugs

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-03-15 12:12:22 -07:00
Craig Tiller 736441f288
Call push/pull abstraction (#29033)
* push/pull impl

* comment

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-03-07 10:02:09 -08:00
Craig Tiller 047642c5c4
Call finalization for promises (#29008)
* Call finalization for promises

* comment

* split out and test

* dont use promise_detail:: directly

* fix

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-03-03 15:53:28 -08:00
apolcyn bbe49dc16b
Delete dns resolver connectivity test (#28994) 2022-03-01 19:19:13 -08:00
Craig Tiller 5fc3ff8203
grpc_millis -> Timestamp/Duration (#28119)
* wip

* Automated change: Fix sanity tests

* fixes

* progress

* progress

* grpc compiles

* Automated change: Fix sanity tests

* fixing tests

* x

* progress

* better code

* Automated change: Fix sanity tests

* progress

* progress

* windows fix

* Make Duration metadata trivial

* better message

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* progress

* fixes

* fix

* fix

* spam

* un-disable errantly disabled tests

* gain insight

* Automated change: Fix sanity tests

* fixes

* fixes

* fix

* debug

* tweak

* fix

* fix timeout

* fix comment

* fixes

* x

* better test

* tests

* Automated change: Fix sanity tests

* missed file

* fix

* x

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* merge

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-03-01 11:34:05 -08:00
Craig Tiller 7c74d58cbe
Disable memory_usage test on cmake builds (#28948) 2022-02-23 17:21:55 +01:00
Craig Tiller dd76a04b8c
Move resolver to core configuration (#28881)
* Move resolver to core configuration

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* resolver: clean up and modernize registry

* fix race

* update visibility

* fix internal error

* review feedback

* resolve backref issues

* windows

* x

* fix sockaddrs on windows?

* fix sockaddrs on windows?

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Co-authored-by: Mark D. Roth <roth@google.com>
2022-02-23 00:09:04 -08:00
Craig Tiller ff87ca02b2
Revive test/core/memory_usage (#28931)
* Revert "Deprecate gpr_get/set_allocation_functions"

This reverts commit 81df105ac8.

* memory stats

* Hack up to get per-call numbers

* expunge memory counters

* buildgen

* Automated change: Fix sanity tests

* sanity

* fix

* Automated change: Fix sanity tests

* simplify

* better

* Automated change: Fix sanity tests

* Disable windows memory_usage

* disable mac

* disable mac

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-02-22 15:39:40 -08:00
Yash Tibrewal c65a55383a
Gtestify credentials_test (#28897) 2022-02-16 14:33:28 -08:00
Ashitha Santhosh 1fee3d72be
remove SDK term from gRPC authz (#28843) 2022-02-14 11:44:15 -08:00
Craig Tiller df943da2c4
Promise based sleeps (#28722)
* Promise based sleep

* Embrace absl::Status

* Automated change: Fix sanity tests

* Add another test, fix bug

* fix

* fix

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-02-11 12:47:35 -08:00
Yousuk Seung 172120f6b4
Move XdsChannelCreds to CoreConfiguration (#28746)
* Move XdsChannelCreds to CoreConfiguration

* move xDS channel creds files to src/core/lib/security/credentials/xds

* Change back to returning a RefCountedPtr.

* make remove "xds_" from xds_channel_* files.

* Renamed to address comments.

* clang fix

* Fix another clang error
2022-02-09 15:33:17 -08:00
apolcyn 64082940a5
Fix google c2p resolver shutdown during metadata server queries (#28519)
* Fix c2p resolver shutdown during metadata server queries

* handle lame channels in XDS client
2022-02-07 11:36:33 -08:00
AJ Heller 2b9ffa18e4
Revert "Disable EventEngine smoke tests for ease of import (#28732)" (#28737)
This reverts commit f42b2a7368.
2022-01-31 11:29:38 -08:00
Yash Tibrewal 4a9cfa3130
HTTP2: Add GrpcNetworkStreamState metadata (#28668)
* HTTP2: Add GrpcNetworkStreamState metadata for calls that are not sent on wire and for those that are not seen by server

* Generate projects

* clang-tidy

* Fix test

* clang-tidy

* Add a negative test

* Fix for windows
2022-01-27 21:27:47 -08:00
AJ Heller f42b2a7368
Disable EventEngine smoke tests for ease of import (#28732)
This avoids having to do a cherry-pick import, and is harmless since
there are no dependencies yet on the EventEngine. This test will be
re-enabled shortly after both the import and related changes are
finished.
2022-01-27 17:17:31 -08:00
AJ Heller 47bc953a06
Matches the SetDefaultEventEngineFactory definition to its declaration (#28707)
* Matches the SetDefaultEventEngineFactory definition to its declaration

+`const`

* Add smoke test for SetDefaultEventEngineFactory

* Automated change: Fix sanity tests

* anonymous namespace

Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2022-01-26 18:13:29 -08:00
Jan Tattermusch 997bec7f24
Revert "Fix some clang-tidy issue (#28679)" (#28699)
This reverts commit b762dce244.
2022-01-26 08:36:02 -08:00
Esun Kim b762dce244
Fix some clang-tidy issue (#28679)
* Fix clang-tidy

* Generated projects
2022-01-25 16:19:39 -08:00
Esun Kim f1e79853ed
Revert "Revert "Buildify Envoy upb (#28558)" (#28648)" (#28649)
This reverts commit 01011ab259.
2022-01-25 11:19:41 -08:00
apolcyn 6bf8e22484
Add http cancel api (#28354)
Add an API to cancel HTTP1 requests
2022-01-25 10:37:05 -08:00
Craig Tiller d2042c1c05
Convert client_authority_filter to a promise. (#28565)
* Initial ideation

* progress

* progress

* x

* Automated change: Fix sanity tests

* erorrs

* better ordering

* working on it

* xx

* comment

* comment

* Get metadata pointer semantics temporarily right

* fix

* fix

* fix

* fix

* fix

* retry: send at most one cancel_stream op on each call attempt

* fixes

* revert earlier change

* split filter defn from impl

* add tests

* fixes

* Automated change: Fix sanity tests

* review feedback

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Co-authored-by: Mark D. Roth <roth@google.com>
2022-01-21 14:50:07 -08:00
Esun Kim 01011ab259
Revert "Buildify Envoy upb (#28558)" (#28648)
This reverts commit 97584d8346.
2022-01-21 08:35:13 -08:00
Esun Kim 97584d8346
Buildify Envoy upb (#28558)
* Buildigy xds

* Generate project

* Buildify envoy

* Added new upb files

* Removed unused upb targets

* Fix grpc_cel_engine

* Update envoy-api to the latest

* Regen upb

* Regen projects

* Fix bazel build on MacOS

* More fix on bazel mac

* Disable grpc_tool_test on Mac

* Regen projects
2022-01-20 22:29:58 -08:00
Craig Tiller 74a2cb6e2b
Revert "Revert "Reland slice changes (#28601)" (#28615)" (#28624)
* Revert "Revert "Reland slice changes (#28601)" (#28615)"

This reverts commit 939bbfc336.

* Change random seed back to nanoseconds
2022-01-20 12:47:33 -08:00
Craig Tiller 939bbfc336
Revert "Reland slice changes (#28601)" (#28615)
This reverts commit b33e0d40af.
2022-01-19 09:40:19 -08:00
Vignesh Babu aeea02fab8
TLS Session Keys export for GRPC C++ (#26812)
* Adding TLS Key export logic to core and c++ wrappers

* Adding and end2end cpp tls key export test and updating broken test due to interface changes

* regenerate projects

* updating tls key export core logic with addition of APIs to grpc_security.h

* undoing changes to tls_security_connector_test

* regenerate projects

* changing the logging format enum name as per GRFC comments

* regenerate projects

* removing some commented code

* updating changes as per review comments

* adding GRPCAPI annotations to functions defined in grpc_security.h

* regenerate projects

* fixed some code styling issues

* removing grpc_security.h include from tls_credentials_options.h

* updating files as per review comments

* minor fixes

* moving some code around

* removing key log format from tls session key log config and converting it to a simple string

* regenerate projects

* fixing mistakes in recent merge with master

* regenerate projects

* regenerate projects

* fixing some distrib and snity errors

* fixing formatting errors

* fixing more sanity checks and raising supported openssl versions to 1.1.1

* updating min supported openssl version to 1.1.1

* updating min supported openssl version in tls_key_export_test

* updating test to fix incorrect vector initialization

* updating as per latest comments

* fixing sanity checks

* addressing review comments

* fixing sanity checks

* fixed c++ comment style

* Automated change: Fix sanity tests

* fixing review comments

Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2022-01-18 14:44:55 -08:00
Craig Tiller b33e0d40af
Reland slice changes (#28601)
* Revert "Revert "Eliminate slice interning (#28363)" (#28598)"

This reverts commit 03bf699600.

* fix?
2022-01-18 09:29:49 -08:00
Jan Tattermusch 03bf699600
Revert "Eliminate slice interning (#28363)" (#28598)
This reverts commit 6703186b7a.
2022-01-18 15:44:18 +01:00
Craig Tiller 6703186b7a
Eliminate slice interning (#28363)
Eliminate slice interning, and structures in slices to support it.
Reduces grpc_slice_refcount from 40 bytes (+ a required 8 bytes elsewhere) to 16 bytes.
Removes a pointer dereference for every slice ref/unref.

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-01-17 20:25:45 -08:00
Yousuk Seung c02fe64bea
Support custom xDS channel creds (#28486)
This patch introduces a factory to allow supporting custom xDS channel
creds. Three types currently supported (fake, insecure, google_default)
are registered by default for backward-compatibility.
2022-01-13 23:00:10 -08:00
Craig Tiller d2d2d0650a
Allow MetadataMap to be a status in TrySeq (#28490)
* Enable metadata to be a 'status' for TrySeq

Begins to allow us to return trailing metadata and get the right
behaviors.

* comment
2022-01-11 13:51:43 -08:00
Craig Tiller 4b881c5947
Remove grpc_mdelem (#28267)
* Automated change: Fix sanity tests

* content-type

* Automated change: Fix sanity tests

* clang-format

* fix

* Move colon prefixed metadata

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* try to fix windows failure

* try and scale sizes better

* ambiguity fix?

* wip metadatavalueasslice

* Fix status code for resource exhaustion

* Revert "Revert "Move a bunch of slice typed metadata to new system (#28107)" (#28208)"

This reverts commit 7717587063.

* fix test

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* slice helper

* x

* noinline

* try and scale sizes better

* Automated change: Fix sanity tests

* fixes

* fix

* fix

* fixes

* fix build

* fix overflow

* progress

* Automated change: Fix sanity tests

* fix

* initial work

* progress

* fix

* fix

* Automated change: Fix sanity tests

* progress

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* compressor for path/authority

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* legalize

* legalize

* status-enc

* fmt

* fix

* fix

* fix

* fix

* fix/opt

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* comment

* fmt

* remove arg

* Automated change: Fix sanity tests

* remove name

* Automated change: Fix sanity tests

* sketch

* Automated change: Fix sanity tests

* progress

* add specialized encoders for compression metadata

* progress

* review feedback

* fix

* missoing files

* remove crud

* xxxxx

* more

* Small improvement in memory usage and performance

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Fix caching

* Automated change: Fix sanity tests

* omg

* fix crash in alts

* default everything

* Automated change: Fix sanity tests

* review feedback

* fixes

* fixes

* fixes

* Automated change: Fix sanity tests

* speedup

* fix

* fix

* clang-format

* fixes

* progress

* fixes

* fixes

* Automated change: Fix sanity tests

* fix

* fix

* progress

* update timeout encoding algorithm

* Automated change: Fix sanity tests

* fix

* fix

* review feedback

* progress

* progress

* progress

* progress

* builds

* Automated change: Fix sanity tests

* remove debug code

* fix ub

* unname things

* coax compilers

* reduce failures

* fix

* fix

* fix

* fix

* cleanup

* compile fix

* preserve concatenation rule

* spew

* fix

* fix

* postfix operator++ for msvc

* fix

* fix

* remove unused code

* lower cost of hpack table construction

* fix refcounting

* review feedback

* fixes

* fixes

* support multivalued traits

* Automated change: Fix sanity tests

* fix

* clearer clear

* appeasing 4.9

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-01-07 09:42:27 -08:00
krestofur 7759632a2d
Add CRL checking to gRPC Core (#28418) 2022-01-05 14:28:19 -08:00
Yash Tibrewal ab6d7b4f02
Reland rbac filter (#28442)
* Revert "Revert "xDS: Add support for RBAC HTTP filter (#28309)" (#28441)"

This reverts commit 7aae5c66df.

* Fix internal clang errors

* Ipv6 addresses are 128 bit
2021-12-29 11:42:58 -08:00
Craig Tiller 7aae5c66df
Revert "xDS: Add support for RBAC HTTP filter (#28309)" (#28441)
This reverts commit 6ea8214879.
2021-12-28 20:11:38 +00:00
Yash Tibrewal 6ea8214879
xDS: Add support for RBAC HTTP filter (#28309)
* xDS: ADD RBAC HTTP filter support

* sanity, upb regenerate files

* Revert PerChannelArg changes

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Remove unnecessary header

* Fix sanity

* Add RBAC service config parsing tests

* Don't make a copy of the metadata batch

* Revert expr_proto changes

* Some more tests

* Reviewer comments

* Reviewer comments

* No metadata changes needed

* Fix leak of DynamicXdsServerConfigSelectorProvider

* Fix deadlock issues

* Fix test compilation
2021-12-23 20:46:36 -08:00
Vignesh Babu 24778bf8ea
Revert "Enable CRL checking in gRPC core (#26287)" (#28416)
This reverts commit 7d8c9ae890.
2021-12-23 13:20:31 -08:00
krestofur 7d8c9ae890
Enable CRL checking in gRPC core (#26287)
* enable crl checking in gRPC C core
2021-12-22 13:24:20 -08:00
apolcyn 1a8d2b6760
API to cancel grpc_resolve_address (#27883)
Add an API to cancel grpc_resolve_address
2021-12-20 14:01:06 -08:00
Craig Tiller 264c321d83
Move compression related metadata to the new system (#28223)
* Eliminate most of grpc_message metadata handling

* Eliminate most of host metadata handling

* Remove more callouts without fixing code

* fiiixes

* typo

* Automated change: Fix sanity tests

* try-shrink

* Automated change: Fix sanity tests

* size tweaks

* less tricks

* deunique

* commonize

* commonize

* Automated change: Fix sanity tests

* size tuning, fixes

* Automated change: Fix sanity tests

* fix

* size tuning, fixes

* remove constexpr

* fix

* reuse code

* fix

* tweak code

* more tweaks

* tell no lies

* fixes

* fixes

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fix?

* fix binder

* fix

* fix

* fixes

* Automated change: Fix sanity tests

* fix

* initial refactoring

* optimize status encoding

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* content-type

* Automated change: Fix sanity tests

* clang-format

* fix

* Move colon prefixed metadata

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* try to fix windows failure

* try and scale sizes better

* ambiguity fix?

* wip metadatavalueasslice

* Fix status code for resource exhaustion

* Revert "Revert "Move a bunch of slice typed metadata to new system (#28107)" (#28208)"

This reverts commit 7717587063.

* fix test

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* slice helper

* x

* noinline

* try and scale sizes better

* Automated change: Fix sanity tests

* fixes

* fix

* fix

* fixes

* fix build

* fix overflow

* progress

* Automated change: Fix sanity tests

* fix

* initial work

* progress

* fix

* fix

* Automated change: Fix sanity tests

* progress

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* compressor for path/authority

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* legalize

* legalize

* status-enc

* fmt

* fix

* fix

* fix

* fix

* fix/opt

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* comment

* fmt

* remove arg

* Automated change: Fix sanity tests

* remove name

* Automated change: Fix sanity tests

* add specialized encoders for compression metadata

* review feedback

* fix

* missoing files

* Small improvement in memory usage and performance

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Fix caching

* Automated change: Fix sanity tests

* fix crash in alts

* default everything

* Automated change: Fix sanity tests

* review feedback

* fixes

* fixes

* fixes

* Automated change: Fix sanity tests

* speedup

* fix

* fix

* fixes

* fixes

* fixes

* Automated change: Fix sanity tests

* fix

* remove debug code

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-12-15 15:47:56 -08:00
Craig Tiller 1a2b459daa
Update timeout encoding algorithm (#28346)
* update timeout encoding algorithm

* Automated change: Fix sanity tests

* fix

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-12-14 09:29:55 -08:00
Craig Tiller e21505858f
Move some integer based metadata to the new system (#28198)
* Eliminate most of grpc_message metadata handling

* Eliminate most of host metadata handling

* Remove more callouts without fixing code

* fiiixes

* typo

* Automated change: Fix sanity tests

* try-shrink

* Automated change: Fix sanity tests

* size tweaks

* less tricks

* deunique

* commonize

* commonize

* Automated change: Fix sanity tests

* size tuning, fixes

* Automated change: Fix sanity tests

* fix

* size tuning, fixes

* remove constexpr

* fix

* reuse code

* fix

* tweak code

* more tweaks

* tell no lies

* fixes

* fixes

* Automated change: Fix sanity tests

* fix

* fix

* fix

* fix

* fix?

* fix binder

* fix

* fix

* fixes

* Automated change: Fix sanity tests

* fix

* initial refactoring

* optimize status encoding

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* try to fix windows failure

* try and scale sizes better

* ambiguity fix?

* wip metadatavalueasslice

* Fix status code for resource exhaustion

* Revert "Revert "Move a bunch of slice typed metadata to new system (#28107)" (#28208)"

This reverts commit 7717587063.

* fix test

* Automated change: Fix sanity tests

* slice helper

* x

* noinline

* try and scale sizes better

* Automated change: Fix sanity tests

* fixes

* fix

* fix

* fix build

* fix overflow

* fix

* fix

* fix

* fix

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-12-02 22:02:56 -08:00
Craig Tiller 888a10d8a6
Reland arena based promises (#28174)
* Revert "Revert "Arena allocated promise (#28023)" (#28171)"

This reverts commit 9b07a81b1a.

* fix

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-11-22 13:43:31 -08:00
Craig Tiller 9b07a81b1a
Revert "Arena allocated promise (#28023)" (#28171)
This reverts commit 77b4ade1a7.
2021-11-22 10:05:20 -08:00
Craig Tiller 77b4ade1a7
Arena allocated promise (#28023)
* Arena allocated promise

* finish

* Automated change: Fix sanity tests

* test

* Remove unused names

* fix

* older compiler fix

* fiiixes

* windows fixes?

* clangfmt

* fix windows?

* Document more

* fix destructors

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-11-19 13:58:24 -08:00
Craig Tiller 0794973bbb
Reland user-agent metadata work (#28109)
* Revert "Revert "user-agent metadata trait, also: grpc_core::Slice is born (#27770)" (#28108)"

This reverts commit 89d08dad9d.

* will it blend

* will it blend

* will it blend

* lcnagfmt

* sanity

* will it blend

* sleep @ end

* will it blend

* Revert "sleep @ end"

This reverts commit d6bca8ed3d.

* review feedback

* review feedback
2021-11-17 19:04:29 -08:00
Jan Tattermusch 89d08dad9d
Revert "user-agent metadata trait, also: grpc_core::Slice is born (#27770)" (#28108)
This reverts commit 7a40f50cb3.
2021-11-16 06:52:52 -08:00
Craig Tiller 7a40f50cb3
user-agent metadata trait, also: grpc_core::Slice is born (#27770)
* new slice api

* storage-classes

* Automated change: Fix sanity tests

* tweaks

* refinement

* refinement

* compiles

* Automated change: Fix sanity tests

* better impl

* convert to gtest

* clean

* fixes

* tests

* Automated change: Fix sanity tests

* more-tests

* clarity

* comments

* comments

* fixes

* comment-updates

* fixes

* spam

* Automated change: Fix sanity tests

* move transport size into transport!

* mebbefix

* fix type

* x

* fix-merge

* review feedback

* review feedback

* Automated change: Fix sanity tests

* meh

* review feedback

* fix

* resolve compile issue

* Remove slice_refcount dependency on RefCounted

* update init for channel_data in http_client_filter

* Automated change: Fix sanity tests

* remove banned function

* fixes

* will it blend

* will it blend

* fix refcount init

* fix

* fix comment

* Fix typo in bloat script

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-11-15 19:16:20 -08:00
Craig Tiller a629c9a03e
Reland resource quota work (#28017)
* Check if memory owner available prior to polling it

The transport may drop the memory owner during its destruction sequence

* tcp_fix

* Revert "Revert "New resource quota integration (#27643)" (#28014)"

This reverts commit 0ea2c37263.

* clang-format

* fix-path

* fix
2021-11-15 08:23:51 -08:00
Craig Tiller 1d63bb02b7
AVL implementation in C++ (#27782)
* avl

* move-code,add-fuzzer

* done

* fix

* Automated change: Fix sanity tests

* buildifier

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-11-12 22:26:09 +00:00
Craig Tiller 0ea2c37263
Revert "New resource quota integration (#27643)" (#28014)
This reverts commit 39f0877d25.
2021-11-11 14:26:19 -08:00
Craig Tiller 39f0877d25
New resource quota integration (#27643)
* new resource quota integration

* Automated change: Fix sanity tests

* fix

* fix

* fixes

* fixes

* fixes

* Automated change: Fix sanity tests

* fixes

* fixes

* Automated change: Fix sanity tests

* fixes

* fix

* fixes

* windows-fix

* fixes

* fixes

* fix

* fix-asan

* banned

* banned

* fixes

* clang-tidy-fix

* Automated change: Fix sanity tests

* fix-cronet

* review feedback

* review feedback

* Automated change: Fix sanity tests

* fixes

* bug fix

* fixes

* compile fix

* exclude megabyte size payloads from 1byte tests

* windows fix

* start moving ios

* keep moving windows

* Get windows compilation working.

* Automated change: Fix sanity tests

* better

* fixes

* remove slice buffer from memory_allocator.h

* Revert "remove slice buffer from memory_allocator.h"

This reverts commit 234a63b6e3.

* ugh

* #fixtests

* pthread tls fixes

* Automated change: Fix sanity tests

* fixfixfix

* xxx

* add reset

* review feedback

* fix

* fix

* fixes

* fix

* mac progress

* cpp-impl-of

* rename ptr

* Automated change: Fix sanity tests

* memory-owner-is-a-memory-allocator

* fixes

* fix

* fix from prod

* fix

* Fix issue leading to bad pointers being returned on Windows.

* Automated change: Fix sanity tests

* fix multislice bug

* argh

* hyrums law fixes

* hyrums law fixes

* clang-format

* hyrums law fixes

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-11-10 22:53:04 -08:00
ZhenLian 2e14f6fa70
Support Custom Post-handshake Verification in TlsCredentials (#25631)
* custom verification refactoring - post-handshake verification
2021-11-10 13:45:52 -08:00
AJ Heller 39adc01a57
Reintroduce the EventEngine default factory (#27920)
* Reintroduce the EventEngine default factory

An application can provide an EventEngine factory function that allows
gRPC internals to create EventEngines as needed. This factory would be
used when no EventEngine is provided for some given channel or server,
and where an EventEngine otherwise could not be provided by the
application. Note that there currently is no API to provide an
EventEngine per channel or per server.

I've also deleted some previous iterations on global EventEngine and
EventEngine factory ideas. This new code lives in a public API, and
coexists with iomgr instead of being isolated to an EventEngine-specific
iomgr implementation.

* add proper namespaces, and fix description

* put factory functions in their own file (for replaceability)

* add synchronization

* generate_projects.sh

* extract event_engine_base and event_engine_factory targets

Also separate iomgr/event_engine files in the BUILD, with comments

* gpr_platform

* move all EE factory declarations to event_engine_base

Makes internal hackery easier.

* add missing deps

* reorder dep alphabetically

* comment style change
2021-11-09 10:46:51 -08:00
Yash Tibrewal f18a0b2ac1
C++ify channel_stack_builder_test (#27789) 2021-10-25 14:45:14 -07:00
Ming-Chuan 34fdb542b5
Add resolver for binder transport URI scheme (#27529)
This commit is part of the effort to create binder channel with
GRPC_CLIENT_CHANNEL type.

The resolver will be used during name resolution, and the result will
later be used to identify the corresponding endpoint binder in
SubchannelConnector.

Besides the unit test, this change is tested with other changes locally
end to end on real device.
2021-10-21 14:17:19 +08:00
Mark D. Roth 5406048ef6
Second attempt: RLS LB policy (#27748)
* allow connectivity state watching to work on lame channels

* Revert "Revert RLS LB policy (#27738)"

This reverts commit 4567af504e.

* fix build

* fix lame_client_test
2021-10-20 07:41:07 -07:00
Ming-Chuan 4d61638857
Add endpoint binder pool for client channel creation (#27755)
The pool serves as a buffer for interaction between C++ and Java.

The buffer can let us avoid calling into Java code in channel connector
implementation (which has not been merged yet), simplifies interaction
between C++ and Java.

Temporary changes are made to channel_create.cc to keep the example apps
working but they will be rewrite after we start creating client channel
instead of direct channel.
2021-10-19 16:15:51 +08:00
Yash Tibrewal e2b044d6d8
ServerConfigSelector, provider and filter (#27717)
* ServerConfigSelector, provider and filter

* Reviewer comments

* Reviewer comments

* Add some tests

* Fix include guards

* Regenerate projects and fix sanity check

* Reviewer comments
2021-10-15 14:28:30 -07:00
Mark D. Roth 4567af504e
Revert RLS LB policy (#27738)
* Revert "fix for import of RLS LB policy (#27736)"

This reverts commit cfcdbc4905.

* Revert "RLS LB policy (#27352)"

This reverts commit 84ddc3289f.
2021-10-15 12:19:57 -07:00
Mark D. Roth 84ddc3289f
RLS LB policy (#27352)
* RLS LB policy plugin implementation

* Add RLS tests

* rls proto

* generate projects

* Fix adding child policy to child policy map

* Fix issues

* Fix rotten bits

* generate projects

* revert some strange changes

* First batch of fixes

* second batch of addressing comments

* generate_projects

* 3rd batch of fixes

* generate_projects

* 4th batch of fix

* 5th batch of fix

* Empty commit to trigger github PR refresh

* Add insecure build

* generate project

* update picker in a closure

* mutex guard audit

* clang-format

* Aggregate child policy states

* Use OrphanablePtr on ChildPolicyOwner()

* More fixes on comments

* Remove include grpc_security from rls.cc

* Fix key builder test as we removed RlsFindPathFromMetadata

* Update rls proto and add multi-target capability

* code changes to fix build after merging master

* remove support for insecure builds

* WIP

* add LB policy metadata lookup API

* add API for creating errors from C++ strings

* add missing include

* finished updating JSON parsing

* use DualRefCounted<> for ChildPolicyWrapper

* use grpc_core::Mutex instead of std::recursive_mutex

* add lock annotations and fix some lifetime issues

* misc fixes and cleanups

* simplify child policy connectivity state machine

* add comment about hopping into ExecCtx

* don't use wait_for_ready for RLS call

* extraKeys and constantKeys support

* add lock annotations for child policy wrapper connectivity state

* improve logging

* simplify child policy state handling in picker

* use C++ style comments

* remove rls_config.proto, since it's not needed

* rewrote tests

* fix build

* fix copyright headers

* clang-format

* appease clang-tidy

* remove unnecessary dependendency on grpclb

* buildifier

* remove illegal term

* remove unneeded includes

* clang-format

* fix clang-tidy

* fix build

* move class declaration into .cc file

* clang-tidy again

* fix build

* reorganize code and misc cleanups

* clang-format

* fixed a bunch of asan bugs; still some left to debug

* fix asan problem

* make test work on IPv6-only machines

* move LRU list handling into Cache::Entry and add lock annotations

* use preincrement instead of postincrement

* fix deadlock

* add more FIXMEs

* clean up backoff timer logic

* fix build from merge

* clang-format

* fix include path to work on podspec builds

* clean up picker logic

* clang-format

* update rls.proto

* populate reason and stale_header_data in RLS request

* improve logging and fix some cache size type issues

* clang-format

* add some TODOs about a better way to expose channel creds to LB policies

* centralize handling of channel's default authority

* clang-format

* fix backup poller bug

* fix handling of call creds and authority on RLS channel

* remove unused params

* clang-format

* use two-phase update for child policies to avoid deadlocks

* fix portability issue

* minor cleanups

* update for change in grpc_error_get_status() API

* change test to store RLS requests and responses in proto form

* clang-format

* account for test slowdown factor in timeouts

* fix tsan failure and channelz linkage

* fix RLS authority death test

* fix test to not try to connect to target that should not work

* remove illegal term

* cacheSizeBytes is a required field

* add missing BUILD deps from merge

* add tests for connectivity state reporting and fix bugs found

* fix BUILD sanity

* buildifier

* fix BUILD package path

* fix bugs related to child policy lifetime and updates

* remove unnecessary srand() call from grpc_init()

* add test for two cache entries with the same target

* update rls.proto

* change RLS config parser test to support GRPC_ERROR_IS_ABSEIL_STATUS

* update upb codegen

* fix include path

* add env var guard

* avoid duplication of CountedService

* generate_projects

* add upper limit for cacheSizeBytes

* fix build

Co-authored-by: Muxi Yan <mxyan@google.com>
2021-10-14 12:53:46 -07:00
Craig Tiller 1df153f46e
Revert "Revert "Move metadata setting into HPackParser (#27545)" (#27686)" (#27688)
This reverts commit 0e6ced8800.
2021-10-13 08:44:57 -07:00
Craig Tiller 0e6ced8800
Revert "Move metadata setting into HPackParser (#27545)" (#27686)
This reverts commit f57a1f7d8c.
2021-10-12 08:37:00 -07:00
Craig Tiller f57a1f7d8c
Move metadata setting into HPackParser (#27545)
* forward work to get append, limit check into parser

* further cleanup

* Remove chttp2_incoming_metadata_buffer

* Automated change: Fix sanity tests

* test fixes

* fix cronet

* wip

* first pass mementofication of parsing - libgrpc compiles

* further progress

* fixes

* fixes

* fix leak

* Automated change: Fix sanity tests

* fix leak

* fixes

* x

* improve fuzzer

* init ordering fix

* Update hpack_parser_table.h

* Update hpack_parser.cc

* Update hpack_parser_test.cc

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* i mustache myself why

* fix use after free

* Automated change: Fix sanity tests

* fixes

* eliminate second pass metadata - this is an illegal frame and fails the new parser

* handle mementos with size > sizeof(intptr_t)

* fix

* add parsed metadata header, test

* Automated change: Fix sanity tests

* fix includes

* phase1

* phase2

* Update parsed_metadata.h

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-11 20:02:29 -07:00
Craig Tiller a21ad2c296
Remove UDP code - it's unused (#27595)
* Remove UDP code - its unused

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-11 13:34:47 -07:00
Craig Tiller 8d8d07139c
Fix client idle filter (#27611)
* trial-change

* compiles!

* added test

* Automated change: Fix sanity tests

* update test

* Fix slow idle detection

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-08 12:30:11 -07:00
Craig Tiller a67a9a5cd5
Exclude microbenchmarks from cmake (#27588)
* Exclude microbenchmarks from cmake

* Trigger automation

* fix
2021-10-05 10:13:57 -07:00
Craig Tiller 84d9e7e9fa
Speed up microbenchmark tests (#27584)
* Speed up microbenchmark tests

* Automated change: Fix sanity tests

* Update grpc_benchmark_config.bzl

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-05 07:09:02 -07:00
Craig Tiller 60a5e474b8
Reland promise benchmarks (#27551) (#27560)
* Revert "Revert promise benchmarks (#27551)"

This reverts commit ae96af3780.

* fixes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-04 11:54:14 -07:00
Esun Kim 1c6634ac44
Changed grpc_error_get|set_str to use std string instead of slice (#27466)
* Changed grpc_error_get|set_str to use std string

* Fix init order in tests with gtest

* Undo gtest-tify credentials_test
2021-10-01 18:58:47 -07:00
Craig Tiller ae96af3780
Revert promise benchmarks (#27551)
* Revert "Update BUILD"

This reverts commit 4472c81232.

* Revert "Promises benchmarks (#27291)"

This reverts commit 47921ba5e8.
2021-10-01 12:49:11 -07:00
Craig Tiller 47921ba5e8
Promises benchmarks (#27291)
* Promise benchmark

* Automated change: Fix sanity tests

* fix leak

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-01 10:21:01 -07:00
Craig Tiller 253d7076fc
Chunked vector type (#27517)
* chunked vector type

* Automated change: Fix sanity tests

* compile fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-29 18:13:13 -07:00
Craig Tiller 82c99362b5
Rewrite memory quota management in C++ with Promises library (#27327)
* first pass new memory quota

* forget the ee stuff - it should be a wrapper on top

* beginning to finalize

* compiles

* basic tests pass

* fixes

* Automated change: Fix sanity tests

* merge

* Automated change: Fix sanity tests

* add rebind test

* flesh out the rest

* Automated change: Fix sanity tests

* add increase

* prog

* Automated change: Fix sanity tests

* allow cancellation during run

* fixes

* clang-format

* better allocation strategy

* better allocation strategy

* Automated change: Fix sanity tests

* Update memory_quota.cc

* format

* better comment

* remove block size - this is probably unnecessary complexity

* fmt

* cleanup

* size_t

* Automated change: Fix sanity tests

* fixes

* move makeslice into memoryallocator

* move makeslice into memoryallocator

* add container allocator, tests

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

* add some docs

* Automated change: Fix sanity tests

* fix doc

* comment vector

* Automated change: Fix sanity tests

* fixes

* ditch the thread

* exec_ctx integration

* Automated change: Fix sanity tests

* progress!

* fuzzer

* initial_corpora

* Automated change: Fix sanity tests

* bigger_objects

* better-fuzzer

* add stress test

* Automated change: Fix sanity tests

* Remove unused header

* Iwyu

* Automated change: Fix sanity tests

* Portability fix, comment

* Fix unused arg

* Remove unused names

* Removed unused name

* Automated change: Fix sanity tests

* windows

* Automated change: Fix sanity tests

* cleanup

* fix-mac

* cleanup, eliminate atomicbarrier

* exclude some platforms

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-29 11:13:54 -07:00
Craig Tiller 91a2db9bc2
Make deadline the first metadata trait (#27468) 2021-09-28 10:09:04 -07:00
Craig Tiller d1cecad651
ExecCtx based Activity wakeup mechanism (#27454)
* wakeup scheduler

* wakeup scheduler

* Automated change: Fix sanity tests

* Update exec_ctx_wakeup_scheduler_test.cc

* Remove unused name

* fix_build

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-24 15:23:02 -07:00
Craig Tiller c5172a134e
Fix build splitup for slices. (#27452)
* slice fix

* fix properlike

* Automated change: Fix sanity tests

* actually delete the code that should have been

* fixes

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-23 16:36:43 -07:00
Craig Tiller d4407b7e59
Revert "Remove dead code (#27445)" (#27461)
This reverts commit 693f36f91c.
2021-09-23 12:56:40 -07:00
Craig Tiller 693f36f91c
Remove dead code (#27445)
* Remove dead code

* Automated change: Fix sanity tests

* build

* remove benchmark

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-22 19:31:00 -07:00
Craig Tiller 87a973f01d
Add structurally aware fuzzing support (#27405)
* Add a dependency on libprotobuf-mutator

* Changes for structured fuzzing

* fuzznificent

* add a config that will build fuzzers

* bazel run --config=fuzzer_asan //path/to:fuzzer fuzzes!

* fixes

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fixes

* fix

* sanitizer fix

* fix directory

* regen stuff

* compile error

* remove fuzzers from cmake build

* Automated change: Fix sanity tests

* review feedback

* remove unnecessary load

* review feedback

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-22 14:40:43 -07:00
Craig Tiller b669a3c521
Revert "Revert "a useful change (#27381)" (#27411)" (#27412)
This reverts commit 5db17f7350.
2021-09-20 19:46:11 -07:00
Craig Tiller 5db17f7350
Revert "a useful change (#27381)" (#27411)
This reverts commit 11eb70bbed.
2021-09-20 10:30:59 -07:00
Craig Tiller 11eb70bbed
a useful change (#27381)
* a useful change

* Automated change: Fix sanity tests

* fix

* fix

* QsortCompare it is!

* Automated change: Fix sanity tests

* add missing header

* clang-tidy fixes, tweak clamp to only use <

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-20 09:13:27 -07:00
Craig Tiller ce95fd2586
For-each loop for promises (#27241)
* For-each loop for promises

* Automated change: Fix sanity tests

* Fix older compilers

* Automated change: Fix sanity tests

* review feedback

* clang-tidy fixes

* clangfmt

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-08 15:07:05 -07:00
Ta-Wei Tu 3df113f6d6
Add binder server (#27036)
Add `grpc::BinderServerCredentials()` and other related functionalities for the server to listen to binder transactions through a phony "binder port".
The APIs are temporarily placed in internal headers until the corresponding gRFC is merged.
2021-09-05 23:45:45 -07:00
Craig Tiller 999e36fb31
Rebuild HPACK encoder table as C++ (#27192)
* Rebuild HPACK encoder table as C++

* move comment

* incguards

* build

* Automated change: Fix sanity tests

* c++ initialization ftw

* Automated change: Fix sanity tests

* Add missing header

* Add missing header

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-02 14:55:33 -07:00
Craig Tiller 3214be885d
Add initial pipe facility for promises (#27202)
* Add initial pipe facility for promises

* Automated change: Fix sanity tests

* fixes for windows?

* comment tests

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-02 12:26:19 -07:00
AJ Heller 2d16865693
Delete libuv-iomgr implementation and GRPC_UV build option (#27188)
This has been unmaintained for years, last supported in gRPC-core v1.24.
2021-08-31 13:26:43 -07:00
Tamir Duberstein 76e95f6afd
Generalize pthread TLS to any trivial type (#27009)
* Avoid copy constructor

```
src/core/lib/gpr/log_linux.cc:78:33: error: copying variable of type 'grpc_core::PthreadTlsImpl<long>' invokes deleted constructor
  static GPR_THREAD_LOCAL(long) tid = 0;
                                ^     ~
./src/core/lib/gpr/tls.h:64:3: note: 'PthreadTlsImpl' has been explicitly marked deleted here
  PthreadTlsImpl(const PthreadTlsImpl&) = delete;
  ^
1 error generated.
```

* Generalize pthread TLS to any trivial type

Use multiple pthread keys for types larger than a machine word.

Implement generic timer TLS optimization on all platforms.
2021-08-30 11:32:47 -07:00
Craig Tiller 1ce8bd7067
Observable primitive for promises (#27082)
* promise sequences

* Activities for promises

* Observable primitive - single writer/multiple reader

* Automated change: Fix sanity tests

* dedup some code

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-27 14:56:48 -07:00
Craig Tiller 12cd59426b
Latch synchronization primitive (#27080)
* promise sequences

* Activities for promises

* Latch synchronization primitive

* Wakeups between actors in the same activity

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-27 12:43:28 -07:00
Ta-Wei Tu ab57f03b30
Reland: Import binder transport tests (#27138)
* Import binder transport tests

* Fix copybara import errors

* Add testonly labels
2021-08-26 15:33:37 +08:00
Ashitha Santhosh 1ff1f8fd83
SDK authorization filter. (#26468)
* SDK authorization filter.
2021-08-25 21:00:35 -07:00
Craig Tiller 90c4a2a5eb
Revert "Import binder transport tests (#26970)" (#27126)
This reverts commit 006464c57d.
2021-08-25 09:56:22 -07:00
Ta-Wei Tu 006464c57d
Import binder transport tests (#26970)
This PR imports unit tests and end-to-end tests of binder transport from the internal repository. No further changes will be made to internal repository.
2021-08-25 17:56:35 +08:00
Craig Tiller 5cdaec9a4f
Promise Activities (#26921)
* promise sequences

* Activities for promises

* Automated change: Fix sanity tests

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-24 22:21:58 -07:00
Craig Tiller 6a06f0cd4a
promise sequences (#27058) 2021-08-23 17:39:12 -07:00
Craig Tiller 46afdf9989
Add test and mitigation for clang 11 compiler bug (#27073)
* Add test and mitigation for clang 11 compiler bug

* document

* document

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-22 22:35:51 -07:00
Craig Tiller f292f001ee
Promise join combinator (#26918)
* Add construct/destruct helper functions

Will be used in upcoming promise implementation

* Poll type for promises library

* Library to talk about things that look like promises if you squint

* Helper code for promises to deal with status types generically

* Library to talk about things that make promises

* build

* Join combinator for promise library

* Changes to sync required for promise activities

* sanitized

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Update basic_join.h

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-19 21:06:38 -07:00
Craig Tiller 724ad871d4
Promise loop (#26913)
* Poll type for promises library

* Library to talk about things that look like promises if you squint

* Library to talk about things that make promises

* Promises loop construct

* build

* Changes to sync required for promise activities

* sanitized

* add comments

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-18 10:36:14 -07:00
Craig Tiller aacd32c721
Promise library context management helpers (#26912)
* Promise library context management helpers

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

* missing file

* Automated change: Fix sanity tests

* compatibility

* build

* Automated change: Fix sanity tests

* propagate

* Automated change: Fix sanity tests

* merge with head

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-17 09:48:06 -07:00
Craig Tiller 4744aceb68
Promises race (#26915)
* Poll type for promises library

* Promises race construct

* Changes to sync required for promise activities

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-17 09:27:40 -07:00
Craig Tiller cad2255d8c
First stab at config framework (#27014)
* First stab at config framework

* Automated change: Fix sanity tests

* add test for threaded initialization

* better test

* clang format

* better filenames

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-16 19:46:59 -07:00
Craig Tiller 7ea742f3d5
Promise if construct (#26914)
* Poll type for promises library

* Library to talk about things that look like promises if you squint

* Library to talk about things that make promises

* Promises if construct

* build

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-16 12:08:38 -07:00
Craig Tiller 8ed20ae479
Promise map operator (#26917)
* Poll type for promises library

* Library to talk about things that look like promises if you squint

* Promise helpers, and basic type erasure

* Promise map operator - change return type via a function

* build

* Changes to sync required for promise activities

* sanitized

* Automated change: Fix sanity tests

* fixes

* fixes

* Automated change: Fix sanity tests

* fix build

* review feedback

* Automated change: Fix sanity tests

* comment

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-13 17:15:43 -07:00
Craig Tiller 152b79144c
Extract HPACK Encoder Hash Map to a separate file (#26973)
* comments

* Extract hash map from hpack encoder

* Automated change: Fix sanity tests

* x

* x

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-13 13:08:24 -07:00
Craig Tiller 71b2042c56
Promise factories (#26990)
* Poll type for promises library

* Library to talk about things that look like promises if you squint

* Library to talk about things that make promises

* build

* Changes to sync required for promise activities

* sanitized

* remove bad comment

* possible windows fix?

* fix

* ugh

* comment fix

* fix build

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-12 16:10:57 -07:00
Craig Tiller 2e56b42ada
Generic promise facilities (#26916)
* Poll type for promises library

* Library to talk about things that look like promises if you squint

* Promise helpers, and basic type erasure

* build

* Changes to sync required for promise activities

* sanitized

* Automated change: Fix sanity tests

* suppressions

* try to fix windows failure

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-11 16:17:50 -07:00
Craig Tiller bb4311baed
Add a utility to capture arguments by move even in C++11 (#26923)
* Add a utility to capture arguments by move even in C++11

* add test

* Automated change: Fix sanity tests

* missing file

* Automated change: Fix sanity tests

* better test

* Automated change: Fix sanity tests

* fmt

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-11 15:31:22 -07:00
Craig Tiller 58d3161aac
Split the filter popularity counting into a separate module (#26884)
* split hpack encoder filter into a separate class

* chores

* fix

* Automated change: Fix sanity tests

* include guards

* add suppressions

* Update popularity_count_test.cc

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-08-09 10:16:46 -07:00
Yash Tibrewal 3e197acaa1
Limit initial window size increases and per-stream window delta (#26342)
* Limit initial window size increases/decreases by flow control windows of active streams

* Limit stream flow control window updates to maximum allowable

* Reviewer comments

* Alternative way

* Clean-up

* Add tests

* Remove unnecessary cq_verifier

* Generate projects

* Initialize recv_message

* Get around compilation issue

* Test size large
2021-08-09 09:05:28 -07:00