Commit Graph

1891 Commits

Author SHA1 Message Date
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
Craig Tiller 3d26032736
Poll type for promises library (#26907)
* Poll type for promises library

* sanitized

* suppressions

* Add a comment
2021-08-06 18:14:30 -07:00
Craig Tiller a989e0bfb5
Table type (#26698)
* first pass table type

* indexed table with comments

* clang-tidy

* build stuff

* sanity fixes

* fixes for clang4

* add tests for size

* build fixes

* Add port_platform-only library

* remove port_platform exceptions

* merge new port_platform lib

* Add a bitset abstraction

* set(bool)

* bitset integration

* fixup test

* all or nothing

* comments, clangfmt

* add bitset tests

* add bitset tests

* merge stuff

* clang-tidy

* add c++ attribute detection

* use macro

* fmt

* typo

* exclude test from windows
2021-07-24 17:58:51 -07:00
Craig Tiller 0e6fe3f42c
Bitset (#26716)
A simple bitset type -- to replace `std::bitset` usage in #26698 and #26254 
`std::bitset` uses at least 64 bits even to store two bits, and the usages I'm looking at would benefit from having something smaller in those circumstances
2021-07-23 08:53:45 -07:00
Ming-Chuan 02c6d81eea
Create binder transport folder (#26602)
* Add folder for bindertransport and its smoke test

We will import the sources in the next few pull requests. Main purpose
of this commit is to create the folder and add dummy smoke test to make
sure nothing breaks

* regenerate projects.
2021-07-16 15:53:39 +08:00
Craig Tiller 0bd70a7e3e
Add Match/Overload abstractions (#26640)
* match/overload abstraction

* update projects

* match should really not accept mutable args

* typo

* tests

* usage comment

* mutable version

* build stuff

* clang-format

* add an escape hatch to avoid needing port_platform.h in files that do not need port_platform.h

* unused args

* Make it possible for a test to not depend on gpr

* add tests

* compile fix

* sepelling
2021-07-09 17:30:19 -07:00
AJ Heller 25d91e3091
New iomgr implementation backed by the EventEngine API (#26026)
This code adds an iomgr implementation that's backed by an EventEngine. This uses the EventEngine API alone, and separate work will introduce an EventEngine prototype to plug into it.

See also drfloob#1: @nicolasnoble has a pull request against this branch, implementing the libuv-based EventEngine. One goal here is to implement the iomgr code such that it can be merged independently without affecting normal builds.

This implementation can be built using bazel build --cxxopt='-DGRPC_USE_EVENT_ENGINE' :all

Some shortcuts are being taken to get a working, testable version of the engine. EventEngines are not pluggable, for example.
2021-06-18 12:30:09 -07:00
Yash Tibrewal b53f60d353
Disable handshake_verify_peer_options_test (#26452) 2021-06-17 15:35:37 -07:00
Ashitha Santhosh b9a643a817
Static policy provider implementation. (#26134) 2021-06-03 23:18:08 -07:00
shangwu-google 8b3f4fca25
Client context test peer (#25610)
* Create client_context_test_peer.h

mock-up class for ClientContext

* Add ClientContextTestPeer as a friend for test

* Update client_context_test_peer.h

* Update client_context_test_peer.h

* unit test for client_context_test_peer.h

* unit test for client_context_test_peer.h

* fix for tools/buildgen/generate_projects.sh

* Revert "fix for tools/buildgen/generate_projects.sh"

This reverts commit b007aa8c2b.

* re-fix for tools/buildgen/generate_projects.sh

* Remove an empty line

Co-authored-by: Vijay Pai <vpai@google.com>
2021-05-25 18:51:34 -07:00
Ashitha Santhosh 457fd3d41c
RBAC Engine implementation. (#25948) 2021-04-28 10:10:22 -07:00
Esun Kim 2d8936b097
Added status_helper (#25901)
Added status_util
2021-04-22 11:54:19 -07:00
Ashitha Santhosh 628bf7fe08
RBAC engine matchers implementation. (#25997) 2021-04-19 13:05:27 -07:00
Ashitha Santhosh 8489a6050b
Revert "Rbac Matcher implementation. (#25653)" (#25957)
This reverts commit 1fb4f715db.
2021-04-12 17:22:44 -07:00
Ashitha Santhosh 1fb4f715db
Rbac Matcher implementation. (#25653) 2021-04-08 22:33:06 -07:00
AJ Heller 4c59b17d40
Remove eventmanager_libuv code (#25811)
Reintroduces this code removal after a failed import. This needed special handling via cherry pick.
2021-04-08 13:32:53 -07:00
AJ Heller a63f188153
Add conversion method for absl::Status to grpc_error* (#25896) 2021-04-07 18:13:13 -07:00
Yash Tibrewal 53ba4a101e
Implement FilterChainMatch algorithm (#25757)
* Implement FilterChainMatch logic

* Add tests for transport protocol too

* Tests for duplicate NACKing

* Introduce ConnectionManager as an interface for config fetchers

* Do not parameterize IncrementIfNonZero

* Some formatting

* Reviewer comments

* Add filter chain match information for duplicate match error

* Reviewer comments

* Some cleanup

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Clang-tidy
2021-03-25 14:12:46 -07:00
Esun Kim 10b17f3739
Added mock_stream_test (#25103) 2021-03-25 14:04:39 -07:00
AJ Heller 1694984846
Revert "Remove unused eventmanager_libuv code (#25796)" (#25807)
This caused problems internally. The interface deletion needs a cherrypick, but I will do an overnight test first, before I reintroduce. CC @nicolasnoble
2021-03-24 17:17:42 -07:00
AJ Heller 077f627aef
Remove unused eventmanager_libuv code (#25796) 2021-03-24 11:21:05 -07:00
Lidi Zheng b457f43227
Implement C++ Admin Interface API (#25753)
* Implement C++ Admin Interface API

* Address reviewer's requests

* Remove static asserts for raw pointers

* Make sanity tests happy

* Windows: pacify conflict between ifndef and macros

* Disable admin services test on iOS

* Make iOS happy by:

* Letting grpcpp_admin conditionally depend on grpcpp_csds

* Fix an unexpected side-effect of dependency update
2021-03-23 09:53:12 -07:00
Ashitha Santhosh bd86187f19
SDK authorization policy translator. (#25361)
* SDK authorization policy translator.
2021-03-05 09:05:11 -08:00
Vijay Pai af76d0321a
Restore callback microbenchmarks but make them manual for now (#25491) 2021-02-19 13:36:11 -08:00
Esun Kim 0cf94e3fdd Add time-util 2021-02-01 17:31:46 -08:00
Zhouyihai Ding 6f6bdd03e6
Merge pull request #25175 from ZhouyihaiDing/callback_add_context
Support ServerContext for callback API
2021-01-20 11:52:02 -08:00
ZhouyihaiDing a584bc4f02 Support ServerContext for callback API 2021-01-19 22:00:10 -08:00
Ashitha Santhosh 4ca878799b Refactor [String/Header/Path]matchers in xds_api. 2021-01-15 12:32:54 -08:00
AJ Heller 3b15b508dd Convert URIParser test to googletest
Note: Adding gtest caused the sanitizer to reorder a few build files.
2020-12-28 14:02:51 -08:00
Jan Tattermusch 79cc237947 regenerate projects 2020-12-15 17:18:30 +01:00
Yash Tibrewal c9e99945ec Add SANs matching for xDS credentials 2020-12-08 15:15:39 -08:00
Esun Kim e7b9404dc0 Added grpc_stacktrace_minloglevel 2020-11-25 17:16:50 -08:00
ZhenLian d74e43da95 Add File Watcher Certificate Provider API 2020-11-19 13:36:13 -08:00
Esun Kim 61deee2217 Disable ASSERT_EQ in ConnectLoop on Mac 2020-11-14 00:20:42 -08:00
Chuan Ren bedaeb5265 Add aws signature v4 signer 2020-11-11 15:55:16 -08:00
Yash Tibrewal d45bbe46e0 File watcher certificate provider config parsing 2020-11-10 15:49:23 -08:00
Esun Kim ccdfcc2ee8 Add workaround for bazel 2020-11-05 11:50:45 -08:00
capstan 3b9484afcb Rerun tools/buildgen/generate_projects.sh under Python 3.
This generates reordered lists, presumably dict traversal issues, and there are whitespace diffs in the emitted .json files.
2020-11-04 01:31:40 +01:00
Esun Kim e0cbc7e5dd
Merge pull request #24245 from veblush/stacktrace
Add stack-tracer to gRPC
2020-11-03 13:50:41 -08:00
Esun Kim f3e75c1fa9 Add stack-tracer to gRPC 2020-11-01 23:02:39 -08:00
Yash Tibrewal e11a670736 Add XdsCertificateProvider 2020-10-30 10:15:57 -07:00
ZhenLian d5d35650b0 add API to get last modification time of a file 2020-10-29 10:43:29 -07:00
ZhenLian 518ed1303c Add Credential Loading From Static Providers For TLS Credentials 2020-10-22 13:55:31 -07:00
Yash Tibrewal ea027f0ef5 CertificateProviderStore implementation 2020-10-20 23:05:36 -07:00
Yash Tibrewal c52cb09f47 Add experimental XdsCredentials with support for insecure channel_credentials and security_connector 2020-10-08 20:37:47 -07:00
Mark D. Roth 98841a990d Implement DualRefCounted interface for objects needing strong and weak refs. 2020-09-25 07:39:23 -07:00
Esun Kim 83c3fe5d7e
Merge pull request #24158 from grpc/revert-24081-revert-23710-shutdown
Fix-forward "Implemented conditional shutdown" (#23710)
2020-09-17 15:33:34 -07:00
Yash Tibrewal 11abbd3828 Add parsing logic for GoogleMeshCaConfig 2020-09-17 09:33:10 -07:00
Esun Kim b8ac1b1e5c
Revert "Revert "Implemented conditional shutdown"" 2020-09-15 11:36:28 -07:00
“Mohan 876021f313 Fix two bugs for channelz_sampler_test 2020-09-10 10:17:50 -07:00
mohanli-ml 2ec0868ebf
Merge pull request #23860 from mohanli-ml/channelz-sampler-work
Channelz sampler
2020-09-09 14:07:01 -07:00
Yash Tibrewal 24ba65d6a1
Merge pull request #24080 from yashykt/caregimpl
Add certificate provider registry implementation
2020-09-09 14:05:38 -07:00
ZhenLian fb4dd355e8
Merge pull request #23572 from ZhenLian/zhen_dynamic_file_reloading_1
Add tls_certificate_distributor implementation
2020-09-08 23:28:47 -07:00
Esun Kim 7a0f16e805
Revert "Implemented conditional shutdown" 2020-09-08 15:21:14 -07:00
Yash Tibrewal cdda406115 Add certificate provider registry implementation 2020-09-08 14:50:37 -07:00
“Mohan 4039a8d405 Make minor changes to pass github check 2020-09-08 11:29:23 -07:00
ZhenLian 1a275d7eab Add tls_certificate_distributor implementation 2020-09-08 10:20:21 -07:00
Esun Kim aff01d7139 Implemented conditional shutdown 2020-09-03 16:45:28 -07:00
Alexander Polcyn 46d4a27cb6 Add a test which reproduces the original crash that is fixed by https://github.com/grpc/grpc/pull/23984 2020-08-31 16:57:48 -07:00
ashithasantosh 5820e833fc Add activation logic and endpoint getters. 2020-08-18 19:12:22 -07:00
Yash Tibrewal 55821f5cf8 Revert "Merge pull request #23786 from michaelywg/cel_create_activation"
This reverts commit fe59761648, reversing
changes made to 1856e224c3.
2020-08-17 14:01:53 -07:00
Mark D. Roth 12fc8f6a35 Change URI parser to take absl::string_view and move tests to correct directory. 2020-08-17 10:46:01 -07:00
Michael Wang b8771966f1 Added tests for eval_args address/port getters. Implemented said getters and CreateActivation.
Added logging for unsupported attributes

fixed make issues by moving grpc_authorization_engine under grpc

changed inet_aton to inet_pton

fixed issue leftover from initial implementation of evalargs
2020-08-14 04:30:42 +00:00
Jan Tattermusch 1a37d291ea
Merge pull request #23717 from jtattermusch/run_tests_using_cmake2
Use cmake for C/C++ build in run_tests.py
2020-08-13 17:44:09 +02:00
apolcyn 647f37c76f
Merge pull request #23732 from apolcyn/mark_flakey
Mark stranded_event_test as flaky
2020-08-11 00:19:48 -07:00
Michael Wang d0311ac81a Basic class definition and constructor Cel eval engine
Merge remote-tracking branch 'upstream/master' into celeval_constructor

Iterate through policies and store CEL condition

git push origin ce Merge remote-tracking branch 'upstream/master' into celeval_constructor

added class and constructor comments for CelEvaluationEngine

CelEvaluationEngine class and constructor

Added cel_evaluation_engine to build

ran clang_tidy_code.sh

updated BUILD with cel_evaluation_engine

added rbac.upb.h/cc to BUILD

Rewrote cel_evaluation_engine code with upb conventions

removed unnecessary deps for cel_evaluation_engine in BUILD

Cel_evaluation_engine uses arenas to manage condition pointers

Used upb::Arena instead of upb_arena*, added temp_arena to save memory

Added action_allow_ member variable

Added fullstops to comments

initialize action_allow_

changed variable names to be more clear

removed unnecessary headers

correctly initialize the action_allow_ variable

changed constructor to use an initializer list

ran clang_tidy and clang_format scripts

added cel_engine_test

resolved merge conflicts and rewrote cel engine constructor to use new map api

changed variables to be more clear and made them const

changed syntax.upb.h so the build succeeds

changed syntax.upb.h so the build succeeds

changed version of upb in bazel_dpes

regenerated upb files with new upb version

added TODO regarding two-policy design

modified CelEvaluationEngine and tests to use two rbac policies

Made test messages consistent and added a case with too many policies

changed name from cel_engine to authorization_engine

fixed merge issues and updated authorization engine to v3 rbac

made constructor public and added namespace grpc_core
2020-08-04 18:23:21 +00:00
Alexander Polcyn 3021bc975a Mark stranded_event_test as flaky 2020-08-04 10:27:22 -07:00
Jan Tattermusch eb1838b7c7 regenerate projects 2020-08-03 19:18:39 +02:00
Mark D. Roth c35a37d6c2 Remove TargetAuthorityTable in favor of a per-address channel arg. 2020-07-23 08:23:05 -07:00
Alexander Polcyn bdfd96ad03 Remove MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL to ensure timely
processing of events
2020-07-21 11:18:39 -07:00
Mark D. Roth 492889f1c0 Convert chttp2 server connection-handling code to C++. 2020-06-19 11:32:18 -07:00
Yash Tibrewal 0af1907f50 Regenerate projects 2020-06-05 02:15:22 -07:00
Jan Tattermusch a43082112f
Merge pull request #23068 from jtattermusch/concurrent_connectivity_flaky
Mark concurrent_connectivity_test as flaky
2020-06-01 15:47:50 +02:00
Jan Tattermusch 3856831776 regenerate projects 2020-05-28 03:20:11 -04:00
Jan Tattermusch b4441c9fba regenerate projects 2020-05-28 01:37:41 -04:00
Esun Kim d2fbaf7f46
Merge pull request #22819 from veblush/time-convert-flag
Remove flaky flag from ChannelzChannelTest::LastCallStartedTime
2020-05-17 16:08:04 -07:00
yang-g 5872d49c83 generate projects 2020-05-14 12:24:40 -07:00
Esun Kim 1be6f7aedb Remove flaky flag from channelz_test 2020-05-04 11:40:53 -07:00
Mark D. Roth d74548e611 Remove StringViewToCString() and src/core/lib/gprpp/string_view.h 2020-04-27 12:28:28 -07:00
Mark D. Roth 09b42371e7 Remove grpc_core::InlinedVector<> and grpc_core::Optional<>. 2020-04-23 11:24:41 -07:00
Vijay Pai e677f3d166
Merge pull request #22621 from grpc/vjpai-patch-1
Unmark flaky on streaming_pump
2020-04-10 11:02:54 -07:00
Jan Tattermusch 697f411fef mark client_channel_stress_test as flaky 2020-04-09 10:06:33 -04:00
Vijay Pai 719ec593d0 Regen projects 2020-04-08 10:31:47 -07:00
Mark D. Roth 77c10eeedc
Merge pull request #22553 from markdroth/control_plane_creds_revert
Revert "Merge pull request #19693 from apolcyn/control_plane_creds"
2020-04-03 07:23:38 -07:00
Muxi Yan 9a9fe5b361 build_projects 2020-04-02 12:27:39 -07:00
Mark D. Roth 41cfae4234 Revert "Merge pull request #19693 from apolcyn/control_plane_creds"
This reverts commit 162fccdb90, reversing
changes made to 228e7557fa.
2020-04-02 08:13:26 -07:00
Jan Tattermusch c9ae8ed9c7 regenerate projects 2020-03-18 05:13:04 -04:00
Jan Tattermusch bccdd0cb29
Merge pull request #22356 from jtattermusch/more_flakes
Mark client_lb_end2end_test as flaky
2020-03-17 17:51:13 +01:00
Jan Tattermusch b24ddc02fd regenerate projects 2020-03-17 06:26:09 -04:00
Jan Tattermusch e863750403 regenerate projects 2020-03-17 05:34:19 -04:00
Jan Tattermusch bf206eb4fa regenerate projects 2020-03-16 03:31:41 -04:00
Jan Tattermusch 5a92850ca6 regenerate projects 2020-03-16 03:28:45 -04:00
Jan Tattermusch 12d5e51175
Merge pull request #22319 from jtattermusch/fix_test_suffix
Add missing "_test" suffix for some bazel tests
2020-03-16 07:52:55 +01:00
Jan Tattermusch 75c6034859 regenerate projects 2020-03-12 06:48:32 -04:00
Jan Tattermusch 8655e5e745 regenerate projects 2020-03-12 05:58:52 -04:00
Esun Kim 30f88e8b76
Merge pull request #22210 from veblush/docker-for-sanity
Docker for sanity
2020-03-03 14:22:07 -08:00
matthewstevenson88 b47e0e51c5
Merge pull request #22168 from matthewstevenson88/tls-documentation-1
Add comments to TlsFetchKeyMaterials API and add test file for C-core TLS credentials options.
2020-03-03 13:44:26 -08:00
Esun Kim b308241343 Fix clang-tidy issues 2020-03-03 12:27:41 -08:00
Alexander Polcyn e482b79ee8 Change grpclb policy to use internal connectivity state watch API 2020-02-28 00:16:47 -08:00
Matthew Stevenson e0a748d2e4 Fix build.yaml vs build_autogenerated.yaml 2020-02-27 10:15:04 -08:00
Matthew Stevenson 3c87fb610f Add comments to TlsFetchKeyMaterials API and add a test file for the TLS credentials options. 2020-02-27 10:01:14 -08:00
Jan Tattermusch 3bb4d312df regenerate projects 2020-02-26 19:58:42 -05:00
Lidi Zheng abebd4085d Generate tests.json 2020-02-18 16:28:19 -08:00
Yash Tibrewal 360f69bc46
Merge pull request #21781 from yashykt/apifuzzernuke
Delete api_fuzzer
2020-02-11 10:59:23 -08:00
Mark D. Roth 01e87e2d93 Remove old JSON API 2020-02-04 15:21:27 -08:00
Yash Tibrewal 74309886bb Replace LogicalThread with WorkSerializer 2020-01-30 13:20:57 -08:00
Mark D. Roth 380eb750ec New JSON API 2020-01-29 14:52:19 -08:00
Yash Tibrewal 6f5b4624af Delete api_fuzzer 2020-01-23 13:26:00 -08:00
Zhen Lian 618771dc6a [Exposing ALTS Context 2/2] Utility Wrapper Class
This PR contains:

1. An ALTS context exposed for users to use, and a GetAltsContextFromAuthContext() function to get ALTS context from an AuthContext. Functionality-wise this part is similar with a previous PR https://github.com/grpc/grpc/pull/21536, but in this PR, we adjusted the code structure and made some minor changes to better suit function clientAuthzCheck()
2. A clientAuthzCheck() function for users to check if the server is authorized
2020-01-03 09:30:46 -08:00
Guantao Liu b341ddf72b
Revert "[Exposing ALTS Context 2/2] Utility Wrapper Class" 2019-12-16 15:29:27 -08:00
Zhen Lian 98391c8f76 [Exposing ALTS Context 2/2] Utility Wrapper Class 2019-12-13 13:31:38 -08:00
Guantao Liu b9c06e043f
Merge pull request #21216 from guantaol/libuv_em_basic
Bare bones of the libuv EventManager.
2019-12-10 17:07:57 -08:00
Yihua Zhang 059884ea73 fix a build error 2019-12-06 08:20:13 -08:00
Yihua Zhang a6dbc7adb5 rename spiffe to tls 2019-12-05 16:03:37 -08:00
Guantao Liu ee4b311605 Merge remote-tracking branch 'upstream/master' into libuv_em_basic 2019-12-04 17:41:35 -08:00
Mark D. Roth 68df397aa2 Remove vtables from JSON library 2019-12-04 13:03:55 -08:00
Guantao Liu e2b53bec09 Address review comments. 2019-12-02 16:59:37 -08:00
Guantao Liu d969d8c706 Fix build rules. 2019-12-02 16:59:37 -08:00
Guantao Liu 19d1776c0d Rebase the workspace to fix the submodule discrepancy. 2019-12-02 16:57:17 -08:00
Yash Tibrewal d4d9e45990 Use std::function instead of grpc_closure 2019-11-22 13:24:05 -08:00
Mikko Rantanen 3351fa4a7e
Re-generate build files with the new test 2019-11-13 08:09:59 +02:00
Esun Kim 3a519a0b64 Replaced grpc_core New & Delete with C++ new & delete 2019-11-06 17:52:26 -08:00
Esun Kim 0228f76515
Merge pull request #20462 from veblush/remove-gpr-allocation
Remove gpr_get/set_allocation_functions
2019-11-04 21:57:47 -08:00
Esun Kim 81df105ac8 Deprecate gpr_get/set_allocation_functions 2019-11-04 19:47:33 -08:00
Alexander Polcyn 6bb8629879 Add tests that expose a race and lock cycle in alts client, fix TSAN issues 2019-11-04 15:58:19 -08:00
Vijay Pai 621955e39e Merge branch 'master' into tmt_cleanup 2019-10-17 17:46:06 -07:00
Vijay Pai d16c6792b0 Make thread_manager_test look like other tests 2019-10-15 15:40:56 -07:00
Mark D. Roth 9a276c07fa Revert "Merge pull request #20593 from grpc/revert-20380-xds_client_bootstrap"
This reverts commit 0bd5efa55f, reversing
changes made to f92c283a5d.
2019-10-15 07:33:53 -07:00
Jan Tattermusch 13abbd9a75
Revert "xds client bootstrap file" 2019-10-14 16:51:32 +02:00
Mark D. Roth 2afaec231d xds client bootstrap file 2019-10-09 14:06:48 -07:00
Esun Kim 1743519aa9 Activate C++ stdlib 2019-10-01 16:36:56 -07:00
Mark D. Roth cb67811c47 Revert "Merge pull request #20407 from markdroth/transport_connectivity_state_watcher_revert"
This reverts commit 48550de866, reversing
changes made to 24b529e408.
2019-09-30 11:22:32 -07:00
Mark D. Roth 33f139b6e6 Revert "Merge pull request #20255 from markdroth/transport_connectivity_state_watcher"
This reverts commit 0f5a111aad, reversing
changes made to 1276a8f628.
2019-09-30 10:06:14 -07:00
Mark D. Roth ece8fd6642 Change transport connectivity watch API to not be lossy. 2019-09-26 11:20:02 -07:00
Hope Casey-Allen 0f116eb282 Fix 2019-09-24 15:41:29 -07:00
Mark D. Roth 51d18ecc63 Convert mpscq API from C to C++. 2019-09-05 10:32:36 -07:00
rmstar 1c89c363b3
Merge pull request #19948 from rmstar/timer_test
Added test for timer wakeups
2019-08-21 15:10:19 -07:00
Prashant Jaikumar 41986e8ed8 Added test for timer wakeups 2019-08-20 15:51:02 -07:00
Alexander Polcyn 4e61956ef4 Add run: false to grpclb_fallback_test 2019-08-19 16:08:57 -07:00
Esun Kim fff51d3842 Remove sources_and_headers.json 2019-08-16 10:54:19 -07:00
Esun Kim 15f8ae71dd Change cc to c++ 2019-08-14 09:30:26 -07:00
Yihua Zhang ae863630d5 Add spiffe client-side credential reload 2019-08-12 14:12:13 -07:00
Juanli Shen 45dd8be442 Use LRS in xds policy 2019-08-09 12:08:32 -07:00
Esun Kim be4e684a82 Migrated tsi/alts from nanopb to upb 2019-08-08 16:39:05 -07:00
Juanli Shen 79f191114e Use EDS in xds LB policy 2019-08-07 22:43:45 -07:00
Esun Kim 807cd08f4a Fix upb build typo 2019-08-07 16:03:08 -07:00
Esun Kim c6b0bd08c7 Updated grpclb to use upb 2019-08-07 13:25:49 -07:00
Esun Kim 6ddfb384c1 Added google/protobuf/descriptor.upb.* to google_api_upb 2019-08-07 12:08:06 -07:00
Esun Kim f7454a9876 Modified health_check to use upb proto instead of nanopb 2019-08-07 09:16:08 -07:00
Esun Kim 8dfa3c2255 Remove upb targets from BUILD 2019-08-06 17:40:02 -07:00
Esun Kim f88bd06ee5 Go UPB! 2019-08-06 15:27:14 -07:00
Yash Tibrewal e6756a58ed
Merge pull request #19316 from yashykt/delegating_channel
Add Delegating Channel
2019-08-02 12:08:10 -07:00
Yash Tibrewal 3653439ba6 Merge master and move to experimental 2019-08-01 16:15:31 -07:00
yunjiaw26 f14f1dd61d
Merge pull request #19695 from yunjiaw26/bm_threadpool
Add threadpool benchmark and build files
2019-07-29 18:38:22 -07:00
Esun Kim 7e367da22a Added more protos to upb 2019-07-26 09:11:46 -07:00
Nicolas Noble 1769169178
Merge pull request #19433 from nicolasnoble/moiz-upb
Building ubp in Bazel properly.
2019-07-25 14:10:39 -07:00
Esun Kim 05d6f9f2b1
Merge pull request #19702 from veblush/move-cronet
Create sub package for cronet
2019-07-24 16:52:26 -07:00
Esun Kim ded9f46c06 Refactored BUILD file to isolate cronet rules 2019-07-24 14:55:35 -07:00
Qiancheng Zhao 29480c4f6b add client idle filter 2019-07-24 10:04:41 -07:00
Alexander Polcyn 6898c23a5d Add experimental control plane creds C-core API 2019-07-22 16:03:02 -07:00
Yunjia Wang c6bc2b1875 Add threadpool benchmark and build files 2019-07-19 10:23:22 -07:00
yunjiaw26 1e607d3dc0
Merge pull request #19544 from yunjiaw26/thread_pool
Threadpool
2019-07-18 15:02:59 -07:00
Nicolas "Pixel" Noble 5495a7f7b1 Merge branch 'master' of https://github.com/grpc/grpc into moiz-upb 2019-07-16 19:07:24 +02:00
Alexander Polcyn 3958a53bf7 Address review comments; fix sanity 2019-07-11 19:08:27 -07:00
Alexander Polcyn 4999420c7d Add a test client for certain grpclb fallback scenarios 2019-07-11 18:31:21 -07:00
Esun Kim bd5ed4fddd Move compiler targets from /BUILD to /src/compiler/BUILD 2019-07-10 10:53:07 -07:00
Julien Boeuf 109edca971 Adding C++ API and implementation for STS credentials:
- marked as experimental.
- also changed the name of a field in the options struct.
2019-07-09 22:28:44 -07:00
Nicolas "Pixel" Noble d01633944c Merge branch 'master' of https://github.com/grpc/grpc into moiz-upb 2019-07-09 23:39:53 +02:00
Yunjia Wang 15d2f0390b Merge remote-tracking branch 'upstream/master' into thread_pool 2019-07-09 10:00:40 -07:00
Moiz Haidry 5ae9afdc55
Merge pull request #19517 from mhaidrygoog/grpc_to_grpc_impl_async_callback
Move grpc async, callback and sync implementation to grpc_impl namespace
2019-07-03 13:56:36 -07:00
Nicolas "Pixel" Noble 3de02bc8cd Merge branch 'master' of https://github.com/grpc/grpc into moiz-upb 2019-07-03 19:54:22 +02:00
yunjiaw26 aec511e0e0
Merge pull request #19358 from yunjiaw26/mpmcqueue
MPMCQueue
2019-07-02 18:27:06 -07:00
Moiz Haidry bf994e48d9 Move grpc async, callback and sync implementation to grpc_impl namespace 2019-07-01 14:05:54 -07:00
Yunjia Wang 410451c126 Add threadpool implementation 2019-07-01 14:02:58 -07:00
Yunjia Wang 0141b18d66 Merge remote-tracking branch 'upstream/master' into threadpool 2019-07-01 13:38:18 -07:00
Soheil Hassas Yeganeh 39e982a263
Merge pull request #19488 from soheilhy/string-view2
Introduce string_view and use it for gpr_split_host_port
2019-07-01 13:53:16 -04:00
apolcyn 58ed35407a
Merge pull request #19489 from apolcyn/fix_ares_throttle
Fix DNS resolver cooldown
2019-06-27 18:09:18 -07:00
Soheil Hassas Yeganeh dbf88dd66f Revert "Revert "Introduce string_view and use it for gpr_split_host_port.""
This reverts commit 80c177d4c4.
2019-06-27 20:56:15 -04:00
Alexander Polcyn 0d2c622f9e Fix DNS resolver cooldown 2019-06-27 15:12:05 -07:00
Karthik Ravi Shankar bddcb6c906 Don't move ServerContext to impl 2019-06-26 14:28:34 -07:00
Yunjia Wang 5b6c9473cd Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-26 13:59:28 -07:00
Soheil Hassas Yeganeh f9516b04d5
Merge pull request #19218 from soheilhy/string-view
Introduce string_view and use it for gpr_split_host_port.
2019-06-26 13:15:52 -04:00
Nicolas "Pixel" Noble 81da76ca3e Updating build files with changing upb directories. 2019-06-26 01:51:22 +02:00
Karthik Ravi Shankar 8b91dc5fd2 Move more of usage to grpc_impl
1) Create server_context_impl and completion_queue_impl headers.
2) Move more of usage of ClientContext, ServerContext to grpc_impl
2019-06-22 17:17:29 -07:00
Yunjia Wang a68e7bc461 Remove extra header file, change to c test, change new/delete 2019-06-21 17:16:29 -07:00
Yunjia Wang d95877ba97 Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-21 09:25:16 -07:00
Soheil Hassas Yeganeh ef0f9bf7ec Introduce string_view and use it for gpr_split_host_port. 2019-06-20 23:19:34 -04:00
Yash Tibrewal 9427b3e4b2
Merge pull request #19376 from yashykt/badstreamtests
Add tests for bad stream IDs
2019-06-20 19:54:48 -07:00
Yunjia Wang ad22f9d7bf Add delete operator overload 2019-06-19 16:24:59 -07:00
Yunjia Wang 1def76bf1d Add Makefile 2019-06-17 17:16:46 -07:00
Yash Tibrewal 4fc02c6bf5 add tests for bad stream IDs 2019-06-17 16:30:06 -07:00
Yash Tibrewal e60c43ff3e Add out of bounds frame tests 2019-06-14 16:13:19 -07:00
Yunjia Wang e4adb6ac56 Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-14 15:52:46 -07:00
Yunjia Wang 9df04d95a2 merge upstream/master 2019-06-14 15:52:36 -07:00
Yash Tibrewal 17afa603a1
Merge pull request #19275 from yashykt/unknown_frame_attack
Add unknown frame type tests for HTTP2 parsing
2019-06-13 17:16:45 -07:00
Moiz Haidry 186875337c Sync with master 2019-06-11 16:16:27 -07:00
Yash Tibrewal 94e7edad99 Add Delegating Channel 2019-06-11 15:07:12 -07:00
Yash Tibrewal 7994ea53fc Add detailed unknown frame type tests 2019-06-06 11:49:57 -07:00
Karthik Ravi Shankar 522ddfe273 Move ClientContext to grpc_impl
ClientContext is another file which needs to be moved from grpc to
grpc_impl for referencing it.
2019-06-05 16:31:39 -07:00
Moiz Haidry 226e63dd0c Move server context implementation to grpc_impl namespace and typedef the ref to it 2019-06-05 10:41:30 -07:00
Mark D. Roth 28ccd61cf5 Use SubchannelInterface to hide implementation from LB policy API. 2019-05-29 12:21:15 -07:00
Yash Tibrewal 4746a8734d Merge branch 'master' into validatesvccfg 2019-05-24 15:27:16 -07:00
Yash Tibrewal 886dc10daa Move validate_service_config to a new file 2019-05-24 14:29:16 -07:00
Karthik Ravi Shankar dc9897dfe3
Merge pull request #19067 from karthikravis/channel-cq-scq-impl
Fold Channel and CompletionQueue into grpc_impl
2019-05-22 16:10:58 -07:00
Karthik Ravi Shankar 5ffb32c069 Fix clang errors 2019-05-22 13:43:07 -07:00
Karthik Ravi Shankar 0b50670b23 Make some test fixes 2019-05-22 12:42:40 -07:00
Esun Kim 90fbdc92f5 Roll-forward "Config migration"
This reverts commit 236ae12bb1.
2019-05-20 15:47:24 -07:00
Karthik Ravi Shankar 03b079499c Move CompletionQueue and Channel 2019-05-17 09:16:32 -07:00
Karthik Ravi Shankar 40210d3b8a Move Channel to grpc_impl 2019-05-17 09:12:33 -07:00
yang-g c639da7a1d Merge branch 'master' of https://github.com/grpc/grpc into port_sharing 2019-05-16 09:07:55 -07:00
Karthik Ravi Shankar 772a74aced Revert changes to Channel 2019-05-15 14:24:17 -07:00
Karthik Ravi Shankar 6be0b06c69
Revert "Fold CompletionQueue and ServerCompletionQueue into grpc_impl" 2019-05-15 13:38:34 -07:00
murgatroid99 70e850a023 Merge branch 'master' into cares_windows_platform_detection 2019-05-14 17:41:25 -07:00
murgatroid99 7743130f64 Consolidate conditional localhost resolution into existing file 2019-05-14 15:26:56 -07:00
Alexander Polcyn 236ae12bb1 Revert "Config migration"
This reverts commit 87905ae5ea.
2019-05-14 14:36:33 -07:00
Na-Na Pang e4d9b57900 Merge remote-tracking branch 'upstream/master' 2019-05-13 13:16:30 -07:00
yang-g de57783beb Merge with head and resolve conflict 2019-05-13 08:56:02 -07:00
murgatroid99 e16a0d4599 Fix typo 2019-05-10 15:53:45 -07:00
murgatroid99 90e52f00a1 Moved code back into one file with a #ifdef 2019-05-10 14:47:26 -07:00
Arjun Roy f65208af02 Added slice equality when static fastpath. 2019-05-10 11:35:27 -07:00
Na-Na Pang 7a464a3bc9 Merge remote-tracking branch 'upstream/master' 2019-05-10 11:16:14 -07:00
murgatroid99 4b4006f833 libuv cares: scope manual localhost resolution to only Windows 2019-05-10 11:15:12 -07:00
Yash Tibrewal aa89a97531
Merge pull request #18946 from yashykt/svccfgerrortransient
Service Config Changes to set channel in transient failure on invalid service config
2019-05-10 06:14:44 -07:00
Karthik Ravi Shankar 43986f4224
Merge pull request #18731 from karthikravis/grpc_namespace_completion_queue
Fold CompletionQueue and ServerCompletionQueue into grpc_impl
2019-05-09 16:43:37 -07:00
Esun Kim 51360d8513
Merge pull request #18931 from veblush/config-migration
Global config variables migration
2019-05-09 15:12:08 -07:00
Karthik Ravi Shankar af32f6ce2e Merge branch 'master' into grpc_namespace_completion_queue 2019-05-09 14:12:52 -07:00
Karthik Ravi Shankar 476f7cd81f
Merge pull request #18730 from karthikravis/grpc_namespace_channel_new
Fold Channel into grpc_impl from grpc namespace
2019-05-09 14:09:21 -07:00
Esun Kim 87905ae5ea Config migration 2019-05-09 12:29:38 -07:00
Na-Na Pang 9b50fbcaac Solve conflict 2019-05-08 18:50:06 -07:00
Yash Tibrewal dfa45cb7ac Merge branch 'master' into svccfgerrortransient 2019-05-08 16:44:33 -07:00
Na-Na Pang 070902b871 Merge bm_callback_cq to bm_cq 2019-05-08 15:51:58 -07:00
Alexander Polcyn 2a4d62819b Revise c-ares timeouts to use c-ares's internal timeout/retry logic 2019-05-08 09:57:39 -07:00
Yash Tibrewal 02bd17ff15 cleanup 2019-05-08 03:46:48 -07:00
yang-g 218e290074 Merge with head and resolve conflict 2019-05-07 22:46:45 -07:00
Na-Na Pang c96c21244c Modify test polling engine 2019-05-07 11:47:44 -07:00
Na-Na Pang 2d5a9750a0 Manually add echo.proto to pass Portability build test 2019-05-06 16:20:59 -07:00
Na-Na Pang 4198c4fcc6 Merge remote-tracking branch 'upstream/master' 2019-05-03 10:41:12 -07:00
Na-Na Pang 2787dedd70 Modify dependency of callback_test_service 2019-05-03 10:40:49 -07:00
Yash Tibrewal db1ccad039 Service Config Changes to set channel in transient failure on invalid service config 2019-05-02 18:03:02 -07:00
Na-Na Pang 5748665bc5 Add callback completion queue and modify callback streaming ping pong 2019-05-02 17:21:55 -07:00
Michael Lumish 95a4a0ef76
Merge pull request #18809 from murgatroid99/cares_libuv
Add cares glue for libuv event loop
2019-05-02 13:43:52 -07:00
Esun Kim ccf4734907
Merge pull request #18799 from veblush/config
New config system & migration sample
2019-05-01 09:01:35 -07:00
yang-g abd97b9170 Merge with head and resolve conflict 2019-04-30 23:01:01 -07:00
Karthik Ravi Shankar 5de22c4bd4 Merge branch 'master' into grpc_namespace_completion_queue 2019-04-30 17:46:33 -07:00
Karthik Ravi Shankar baef4b1d60 Merge branch 'master' into grpc_namespace_channel_new 2019-04-30 17:39:48 -07:00
Karthik Ravi Shankar 549230467b
Merge pull request #18720 from grpc/revert-18717-grpc_namespace_server_revert
Revert "Revert "Merge pull request #18458 from grpc/grpc_namespace_server""
2019-04-30 17:30:29 -07:00
Karthik Ravi Shankar 9eec789a4d Merge branch 'grpc_namespace_channel_new' into grpc_namespace_completion_queue 2019-04-30 15:51:49 -07:00
Esun Kim 1518ecbd76 Added new configuration system to core/grp.
More generic configuration system is introduced in order to i) unify the
way how modules access the configurations instead of using low-level
get/setenv functions and ii) enable the customization for where configuration
is stored. This could be extended to support flag, file, etc.

Default configuration system uses environment variables as before so
basically this is expected to work just as it did. This behavior can
change by redefining GPR_GLOBAL_CONFIG_DEFINE_*type* macros.

* Migrated configuration

GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS
GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
GRPC_ABORT_ON_LEAKS
GRPC_NOT_USE_SYSTEM_SSL_ROOTS
2019-04-30 15:49:24 -07:00
Karthik Ravi Shankar e3a0c85960 Merge branch 'master' into grpc_namespace_channel_new 2019-04-30 14:30:03 -07:00
yang-g ac3a91edf8 Support accepting external connections. 2019-04-30 12:31:34 -07:00
Karthik Ravi Shankar 5a132b8245 Merge branch 'master' into grpc_namespace_credentials 2019-04-30 10:18:09 -07:00
Karthik Ravi Shankar bc09c70799
Merge pull request #18454 from grpc/grpc_namespace_channel_arguments
Bring ChannelArguments to grpc_impl from grpc
2019-04-30 10:16:45 -07:00
Na-Na Pang 13d6d7c2ec Add filegroups in callback_test_service 2019-04-26 12:58:56 -07:00
Na-Na Pang bbd4eb5028 Add microbenchmark for callback unary ping pong and bidistreaming ping pong 2019-04-26 09:52:12 -07:00
Muxi Yan efbeb750ec
Merge pull request #18814 from muxi/fix-cfstream-build-yaml
Build system fix for default CFStream
2019-04-26 08:14:30 -07:00
Karthik Ravi Shankar 3377e49bc7 Fix build errors 2019-04-25 11:40:56 -07:00
Yang Gao ad4f805692
Merge pull request #18853 from yang-g/init_test
Stop calling ParseCommandLineFlags directly, use wrapper call instead
2019-04-24 23:33:41 -07:00
Arjun Roy 8ce42f67b2 Shrink arena size by 40 bytes and add additional
alignment options (for cache-alignment).

We shrink by:
1) Removing an unnecessary zone pointer.
2) Replacing gpr_mu (40 bytes when using pthread_mutex_t) with
std::atomic_flag.

We also header-inline the fastpath alloc (ie. when not doing a zone
alloc) and move the malloc() for a zone alloc outside of the mutex
critical zone, which allows us to replace the mutex with a spinlock.

We also cache-align created arenas.
2019-04-24 16:39:03 -07:00
yang-g 37783d6329 Stop calling ParseCommandLineFlags directly, use wrapper call instead 2019-04-24 10:09:39 -07:00
Karthik Ravi Shankar a1493cfa62 Add missing files for build 2019-04-24 08:26:46 -07:00
Karthik Ravi Shankar 81ba5a7b9b Add missing files for build 2019-04-24 08:22:56 -07:00
Karthik Ravi Shankar c8a6841dfc Merge branch 'master' into revert-18717-grpc_namespace_server_revert 2019-04-23 18:14:02 -07:00
Yang Gao 5170c613cc
Merge pull request #18784 from yang-g/message_allocator
Message allocator support for callback unary
2019-04-23 15:49:49 -07:00
murgatroid99 dc1bcf8762 Consolidate helper function from windows and libuv 2019-04-22 17:31:55 -07:00
Muxi Yan 9e593f721f build system fix for default CFStream 2019-04-19 14:14:48 -07:00
murgatroid99 41871bf7de Add cares glue for libuv event loop 2019-04-18 17:08:51 -07:00
Soheil Hassas Yeganeh 2b9448a71c Revert "Revert "Introduce C++ wrappers for gpr_mu and gpr_cv.""
This reverts commit d09c9f8e20.
2019-04-17 14:35:29 -04:00
yang-g 6929cdd654 initial 2019-04-16 15:43:58 -07:00
Yihua Zhang ef4508ca0d fix memory leaks in ssl credential reload. 2019-04-16 11:09:30 -07:00
Mark D. Roth 62d9be1533
Merge pull request #18631 from markdroth/pare_down_channel_args_api
Move functions for individual args out of channel_args.{h,cc}.
2019-04-16 07:11:33 -07:00
Alexander Polcyn d09c9f8e20 Revert "Introduce C++ wrappers for gpr_mu and gpr_cv."
This reverts commit a26c09dd25.
2019-04-11 16:52:54 -07:00
Karthik Ravi Shankar 62fb156122 Fold CompletionQueue and ServerCompletionQueue into grpc_impl 2019-04-11 13:16:32 -07:00
Karthik Ravi Shankar c93a3aaed3 Remove more files 2019-04-11 12:07:52 -07:00
Karthik Ravi Shankar 973fa6950e Fold Channel into grpc_impl from grpc namespace 2019-04-11 12:04:23 -07:00
Karthik Ravi Shankar 2e88231fc0
Revert "Revert "Merge pull request #18458 from grpc/grpc_namespace_server"" 2019-04-10 15:04:05 -07:00
Soheil Hassas Yeganeh e85dd2e644 Fix build errors 2019-04-10 14:15:28 -07:00
Karthik Ravi Shankar f03b309787 Revert "Merge pull request #18458 from grpc/grpc_namespace_server"
This reverts commit dc1089a6d1, reversing
changes made to 31843787cc.

This change also includes - Revert "Merge pull request #17932 from soheilhy/gprpp-mutex"

This reverts commit df4b6a763d, reversing
changes made to dc1089a6d1.
2019-04-10 13:54:05 -07:00
Karthik Ravi Shankar dad3f34207
Revert "Revert "Revert "Folding the Channel class into the grpc_impl namespace.""" 2019-04-10 12:14:04 -07:00
Karthik Ravi Shankar 891b6cf7ae
Revert "Folding CompletionQueue and ServerCompletionQueue." 2019-04-10 10:22:59 -07:00
Karthik Ravi Shankar 6e647d20a0
Merge pull request #18063 from nicolasnoble/completion-queue-fold
Folding CompletionQueue and ServerCompletionQueue.
2019-04-09 15:31:20 -07:00
Yash Tibrewal 3d0788a242
Merge pull request #18586 from yashykt/svc_cfg1
Global Registry for Service Config Parsers
2019-04-09 14:54:59 -07:00
Karthik Ravi Shankar d2b2f7f5a3 Merge branch 'master' into completion-queue-fold 2019-04-09 13:44:33 -07:00
Karthik Ravi Shankar afd602ccba Merge branch 'master' into completion-queue-fold 2019-04-09 10:46:03 -07:00
Karthik Ravi Shankar 5a08d2aae7 Merge branch 'master' into revert-18076-revert-17797-channel 2019-04-09 08:22:37 -07:00
Yash Tibrewal 74540483c6 Merge branch 'master' into svc_cfg1 2019-04-08 19:51:45 -07:00
Karthik Ravi Shankar 53c5bf5ced Merge branch 'master' into revert-18076-revert-17797-channel 2019-04-08 16:04:24 -07:00
Soheil Hassas Yeganeh a26c09dd25 Introduce C++ wrappers for gpr_mu and gpr_cv.
Introduce RAII wrappers in the grpc::internal and grpc_core
namespaces, and use them in place of std::mutex and
std::condition_variable.

Note that, since std::mutex is also used by the public
C++ headers we cannot introduce these wrappers in grpc_core.

Also, note that in grpcpp we cannot use gRPC core and vice versa.
So we had to duplicate the code, once using core_codegen_interface
and once using direct calls.
2019-04-08 18:27:07 -04:00
Karthik Ravi Shankar 9875fabdd4 Merge branch 'master' into revert-18076-revert-17797-channel 2019-04-08 12:55:07 -07:00
Karthik Ravi Shankar 958f373d32 Merge branch 'master' into grpc_namespace_server 2019-04-08 12:42:37 -07:00
Yash Tibrewal 3dc6eae912 Merge branch 'master' into svc_cfg1 2019-04-05 13:45:03 -07:00
Karthik Ravi Shankar e8c0b2433a Make script fixes 2019-04-05 10:20:13 -07:00
Yash Tibrewal 390078b7a8 Add tests for new service config mechanism 2019-04-04 18:58:15 -07:00
Karthik Ravi Shankar dd39f78e3f Merge branch 'master' into revert-18502-revert-18242-grpc_namespace_serverbuilder 2019-04-04 15:45:42 -07:00
Karthik Ravi Shankar af283b3183
Merge pull request #18452 from grpc/grpc_namespace_server_credentials
Fold server credentials from grpc to grpc_impl namespace
2019-04-04 13:47:26 -07:00
Karthik Ravi Shankar 5b1bf21090
Merge pull request #18434 from grpc/grpc_namespace_generic_stub
Fold GenericStub from grpc_impl to grpc
2019-04-04 13:46:44 -07:00
Karthik Ravi Shankar 79a0be902e Merge branch 'master' into revert-18502-revert-18242-grpc_namespace_serverbuilder 2019-04-04 10:13:18 -07:00
Karthik Ravi Shankar 6287a60b5b Fix script errors 2019-04-04 10:11:52 -07:00
Karthik Ravi Shankar 9b312aa25b
Merge pull request #18600 from karthikravis/grpc_namespace_proto_server
Move ProtoServerReflectionPlugin from grpc to grpc_impl namespace
2019-04-03 15:33:04 -07:00
Karthik Ravi Shankar 12c20bc67c
Merge pull request #18436 from grpc/grpc_namespace_auth_metadata_processor
Fold AuthMetadataProcessor into grpc_impl from grpc
2019-04-03 14:49:09 -07:00