Commit Graph

816 Commits

Author SHA1 Message Date
Vy Nguyen 70b26a1c7c
Upgrade benchmark to 1.6.0 and remove previous hacks. (#27778)
* Upgrade benchmark to 1.6.0 and remove hacks.

Details:
 - GRPC currently uses an old version of benchmark (from Sept 2020). It should probably upgrade because downstream, in google3, everyone is already using 1.6.0)
 - Removed the hack added in PR/27629 to allow benchmarks in GRPC to continue to work with both pre-1.6.0 and 1.6.0 benchmarks.
   (This was needed to allow importing benchmarks 1.6.0 into google3 without breaking GRPC)

* fix typo

* update third_party/benchmark and check_submodules.sh

* Upmerge from v1.41.x (#27821)

* Bump version to v1.41.0-pre1 (#27371)

* Bump version to v1.41.0-pre1

* Regenerate projects

* [Backport #27373] add testing_version flag (#27385)

* Bump version to v1.41.0-pre2 (#27390)

* Bump version to v1.41.0-pre2

* Regenerate projects

* Core 19: bump core version from 18.0.0 to 19.0.0 (#27394)

* Bump core version to 19.0.0

* Regenerate projects

* fix use-after-free metadata corruption in C# when receiving response headers for streaming response calls (#27398)

* Final release: bump up version to 1.41.0 (#27476)

* Bump version to 1.41.0

* Regenerate projects

* xds_k8s_test: increase timeout to 3 hours due to recent timeout failure (#27580)

* Revert "xds_k8s_test: increase timeout to 3 hours due to recent timeout failure (#27580)" (#27590)

This reverts commit da0c7d680f.

* Update root pem certs (backport of #27539) (#27619)

* Update boringssl to the latest (#27606) (#27625)

* Change boringssl branch name

* update submodule boringssl-with-bazel with origin/main-with-bazel

* update boringssl dependency to main-with-bazel commit SHA

* regenerate files

* Increment podspec version

* generate boringssl prefix headers

* Bumping up version to v1.41.1 (#27699)

* Bump version to v1.41.1

* Regenerate projects

* [Backport][v1.41.x] xds-k8s tests: Use test driver from master branch (#27695)

Backports sourcing the test driver install script from master.

This is a backport of #27389, #27462 and #27658:


* Add missing quatation marks.

These were missed when  creating the Python virtual env.

* xds-k8s tests: Use test driver from master branch (#27462)

Instead of directly sourcing the test driver provisioning script from the same branch, the script is downloaded (with curl) and sourced from the master branch.

This allows changes made to the test driver to be reflected in all future release branches. A separate PR will backport this change to existing release branches.

All cluster definitions are also moved to the install script, allowing any cluster changes to be done in one place in the master branch.

* xds_k8s tests: Fix xlang install script sourcing. (#27658)

This change sources the test driver install script correctly for the xlang tests.
This fixes a mistake in #27462 where this was missed.

* Fix Python Interop (#27620) (#27703)

* WIP. Attempt to fix interop

* Yapf

* Switch Python xDS Example Server to Listen on IPV4 Only (#27679)

* Switch to IPV4

* Update to all hosts

* Fix rvm ruby install failure (#27769)

Co-authored-by: donnadionne <donnadionne@google.com>
Co-authored-by: Lidi Zheng <lidiz@google.com>
Co-authored-by: Jan Tattermusch <jtattermusch@users.noreply.github.com>
Co-authored-by: sanjaypujare <sanjaypujare@users.noreply.github.com>
Co-authored-by: Sergii Tkachenko <sergiitk@google.com>
Co-authored-by: Esun Kim <veblush@google.com>
Co-authored-by: Terry Wilson <terrymwilson@gmail.com>
Co-authored-by: Richard Belleville <rbellevi@google.com>

* added perf_counters.cc manually since the script didn't work

Co-authored-by: Mark D. Roth <roth@google.com>
Co-authored-by: donnadionne <donnadionne@google.com>
Co-authored-by: Lidi Zheng <lidiz@google.com>
Co-authored-by: Jan Tattermusch <jtattermusch@users.noreply.github.com>
Co-authored-by: sanjaypujare <sanjaypujare@users.noreply.github.com>
Co-authored-by: Sergii Tkachenko <sergiitk@google.com>
Co-authored-by: Esun Kim <veblush@google.com>
Co-authored-by: Terry Wilson <terrymwilson@gmail.com>
Co-authored-by: Richard Belleville <rbellevi@google.com>
2021-10-27 08:55:42 -07:00
Craig Tiller 1c885232e0
Reland te:trailers metadata change with fixes (#27785)
* Revert "Revert "Reland te: trailers metadata stuff (#27781)" (#27784)"

This reverts commit 33fff40174.

* in which i admit defeat for this round
2021-10-20 14:50:33 -07:00
Craig Tiller 33fff40174
Revert "Reland te: trailers metadata stuff (#27781)" (#27784)
This reverts commit f5ab108ab7.
2021-10-20 11:21:53 -07:00
Craig Tiller f5ab108ab7
Reland te: trailers metadata stuff (#27781)
* Revert "Revert "Add metadata specialization for te: trailers (#27714)" (#27779)"

This reverts commit 2039cec4b1.

* safer register call
2021-10-20 08:29:58 -07:00
Esun Kim e246811e55
Add (void) to function calls returning absl::Status (#27761) 2021-10-19 17:00:40 -07:00
Craig Tiller 2039cec4b1
Revert "Add metadata specialization for te: trailers (#27714)" (#27779)
This reverts commit 7cded136b7.
2021-10-19 16:42:41 -07:00
Craig Tiller 7cded136b7
Add metadata specialization for te: trailers (#27714)
* Add metadata specialization for te: trailers

* remove the evidence

* update microbenchmarks

* ugh

* cleanup copy code

* fix asan detected leak

* Automated change: Fix sanity tests

* append

* binder

* fix-cronet

* inproc fixes

* Automated change: Fix sanity tests

* convert cronet encode path

* fixes

* fixes

* review feedback

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-10-19 16:23:22 -07:00
Craig Tiller 632cc4cc36
Make hpack tracing available in opt builds also (#27728) 2021-10-15 08:47:56 -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
Vy Nguyen a145013d6d
Temporarily disable benchmarks (#27629)
benchmark 1.6.0 introduced API breaking changes so we temporarily disabled the benchmarks that are using the old API to avoid breaking.
2021-10-07 14:29:19 -07:00
Craig Tiller d1e01ac139
Add a test for a (now-illegal) build file construct (#27602)
* Add a test for a (now-illegal) build file construct

* add to test suite!

* fix

* fix

* fix syntax
2021-10-06 07:43:59 -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 b2942f601c
Modify hpack benchmark scenarios (#27567)
It used to be that we could run the hpack deserializer into an arbitrary
sink - that's about to change and the hpack deserializer will buffer
directly into a map. That being the case, it's really hard to compare
performance of the current and the new system. With this PR, I'm
updating the relevant scenario to be more similar to the eventual
scenario that we plan, so that as the new work finishes up, we can get a
clearer idea of what changes we're really making.
2021-10-04 13:14:43 -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 91a2db9bc2
Make deadline the first metadata trait (#27468) 2021-09-28 10:09:04 -07:00
Mark D. Roth dbade1f5e7
Revert "Revert "pass subchannel address separately instead of as a channel arg (#27443)" (#27489)" (#27491)
This reverts commit 20cc6e7414.
2021-09-28 09:54:07 -07:00
Craig Tiller 9b41852a5e
channel_init --> core configuration system (#27347)
* channel_init --> core configuration system

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

* fixes

* fixes

* eliminate grpc_base_c

* fixes

* fix merge

* fix

* update visibility

* fixes

* feedback

* fix comment

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-27 15:51:39 -07:00
Vignesh Babu 20cc6e7414
Revert "pass subchannel address separately instead of as a channel arg (#27443)" (#27489)
This reverts commit 57982f0ec6.
2021-09-27 10:42:16 -07:00
Mark D. Roth 57982f0ec6
pass subchannel address separately instead of as a channel arg (#27443)
* pass subchannel address separately instead of as a channel arg

* fix bug

* fix passing address to connector

* clang-format

* fix build of bm_call_create

* revert to C-style semantics for grpc_resolved_address

* fix msan bugs
2021-09-25 07:59:47 -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
Esun Kim 47586fb36e
Revert "Revert "Added absl::Status support to error_utils (#27358)" (#27418)" (#27429)
This reverts commit 933676c56c.
2021-09-21 14:42:57 -07:00
Craig Tiller 933676c56c
Revert "Added absl::Status support to error_utils (#27358)" (#27418)
This reverts commit 9b3f75d322.
2021-09-21 09:48:57 -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
Esun Kim 9b3f75d322
Added absl::Status support to error_utils (#27358) 2021-09-20 18:03:17 -07:00
Craig Tiller 9872da79a1
Eliminate grpc_metadata_batch_{init,destroy,move} (#27349)
* Eliminate grpc_metadata_batch_{init,destroy,move}

* fixes

* fixes

* fixes

* fixes

* portability fixes

* fixes

* fix

* fix

* fix

* be explicit about being explicit
2021-09-20 17:25:26 -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 fd233193ec
Encapsulate metadata aggregates (#27262)
* Encapsulate metadata aggregates

* Automated change: Fix sanity tests

* add const

* Automated change: Fix sanity tests

* add a comment about an awful api

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-14 09:45:38 -07:00
Craig Tiller ea389c00c2
Adjust include order per style guide (#27175)
Introduce clang-format configuration to sort includes closer to our rules.
2021-09-08 12:14:44 -07:00
Craig Tiller dc701787e2
Convert HPACK encoder to C++ (#27226)
* 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

* Begin converting HPACK encoder to c++

* First pass conversion to c++

* fixes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2021-09-07 14:28:06 -07:00
Craig Tiller b062fcd5c6
Ensure consistency of include style for <grpc.* headers (#27233)
* Add a tool to ensure consistency in how grpc public headers are included

* Apply tool

* add to test suite

* isort
2021-09-02 11:42:33 -07:00
AJ Heller d10617edb5
Move resource_user ownership into chttp2 transport/server/connector v2 (#27032)
Reintroducing PR #26643, which was reverted in #27029

Fixed a memory leak and added a test that would have caught it (ASAN build): ca0c8c4
2021-08-18 17:04:00 -07:00
Craig Tiller f5d3ed2db1
Revert "Move resource_user ownership into chttp2 transport/server/connector (#26643)" (#27029)
This reverts commit d1935a65a1. Will be rolled forward with a fix.
2021-08-16 19:07:39 -07:00
AJ Heller d1935a65a1
Move resource_user ownership into chttp2 transport/server/connector (#26643) 2021-08-16 13:50:56 -07:00
Craig Tiller bbea27de46
Reland HPACK parsing changes (#26997)
* Revert "Revert "HPACK Table --> C++ (#26851)" (#26995)"

This reverts commit 840bcce9c4.

* fix bad parsing of trailing === in binary metadata
2021-08-13 10:57:42 -07:00
Craig Tiller 840bcce9c4
Revert "HPACK Table --> C++ (#26851)" (#26995)
This reverts commit 83bcb0cf2e.
2021-08-12 11:20:19 -07:00
Craig Tiller 83bcb0cf2e
HPACK Table --> C++ (#26851)
* Buffer HPACK parsing until the end of a header boundary

HTTP2 headers are sent in (potentially) many frames, but all must be
sent sequentially with no traffic intervening.

This was not clear when I wrote the HPACK parser, and still indeed quite
contentious on the HTTP2 mailing lists.

Now that matter is well settled (years ago!) take advantage of the fact
by delaying parsing until all bytes are available.

A future change will leverage this to avoid having to store and verify
partial parse state, completely eliminating indirect calls within the
parser.

* maybe fixes

* xx

* fix boundary detection

* clang-format

* Revert "xx"

This reverts commit 258d712ed3.

* fix tests

* add missed check

* fixes

* fix

* update tests

* fix benchmark

* properly unref

* optimize final slice refcounting

* cleanup bm_chttp2_hpack

* start

* new parser progress

* refinement

* get it compiling

* bug-fix

* build files

* clang-tidy

* fixes

* fixes

* fixes

* fix-leaks

* clang-tidy

* comments

* fix merge error

* Revert "Buffer HPACK parsing until the end of a header boundary (#26700)"

This reverts commit 8bab3e4bf4.

* streaming hpack parser start

* streaming parser

* clang-format

* Rework HPackTable into C++

* clang-tidy

* fix merge

* actually set the size of the entries array

* better
2021-08-09 16:07:41 -07:00
Craig Tiller 613b90ba93
Revert "Buffer HPACK parsing until the end of a header boundary (#26700)" (#26825)
This reverts commit 8bab3e4bf4.
2021-07-29 11:22:47 -07:00
Craig Tiller 8bab3e4bf4
Buffer HPACK parsing until the end of a header boundary (#26700)
HTTP2 headers are sent in (potentially) many frames, but all must be
sent sequentially with no traffic intervening.

This was not clear when I wrote the HPACK parser, and still indeed quite
contentious on the HTTP2 mailing lists.

Now that matter is well settled (years ago!) take advantage of the fact
by delaying parsing until all bytes are available.

A future change will leverage this to avoid having to store and verify
partial parse state, completely eliminating indirect calls within the
parser.
2021-07-28 15:36:51 -07:00
Craig Tiller d3e5803cb2
Move HPACK parser to C++ (#26689)
This is a fairly low effort migration of the current codebase into a C++ class, instead of free standing C code.
It builds upon #26657 as a necessary first step.
I've tried to minimize any changes to semantics or logic in this change, except where required to get a minimal amount of encapsulation - which is the major aim of this change.

A future change in this series will buffer slices until all HPACK headers are in memory for a stream prior to decoding -- it's important to have an encapsulated API to the parser before doing so however (hence this CL).

The next change after that will be an almost complete rewrite of the parsing functionality -- since we'll have the total set of header bytes, we'll no longer need to support suspending decoding at arbitrary points. This will allow us to move to a simple recursive descent parser, eliminate a bunch of indirection in this code, and end up in a much more malleable place for when we start doing metadata API changes.

(we likely also end up with some good performance wins!)
2021-07-15 13:51:23 -07:00
Vijay Pai ea4b68e7a1
Drop experimental tags from core callback API (#26535) 2021-06-24 17:20:43 -07:00
Vijay Pai 8aff94558c
De-experimentalize C++ callback API (#25728)
* De-experimentalize callback API

* Make FromServerContext based on ServerContextBase

* Fix lambda

* Fix headers

* De-experimentalize tests

* clang-format

* Fix consistency checks

* wip

* Fix const-ness of callback client read RPC requests

* Fix golden file

* Give full route_guide callback client example with Hold etc

* Complete example route-guide server

* De-experimentalize test services

* Omit unneeded using

* Remove some uses of non-experimental macro from test

* clang-format examples

* De-experimentalize async stub calls

* Remove experimental namespace use in qps, ubms

* De-experimentalize alarms, generic stubs, and context allocator

* De-experimentalize SetContextAllocator

* clang-format

* Fix conflicts

* Leave obsolete API in place until users can be migrated
2021-05-27 14:55:25 -07:00
Vijay Pai 0f80378a21
Resolve race between OnReadDone(ok=false) and IsCancelled (#26245)
* Resolve and test race between OnReadDone(ok=false) and IsCancelled

* Fix retry case

* Fix health check case

* Address reviewer comments.

* ADD TODO requested by markdroth
2021-05-19 14:05:46 -07:00
Esun Kim ca945a58e9
Introduced grpc_error_handle (#25902)
- Define grpc_error_handle
- Replace grpc_error* with grpc_error_handle
2021-04-22 12:00:28 -07:00
Mark D. Roth 3f19333ced
Move retry code into its own filter in the DynamicFilter stack (#25820)
* rename ChannelData to ClientChannel

* make ClientChannel class definition public

* move retry code to its own filter

* move LB call factory method to ClientChannel class

* move dynamic termination filter out of ClientChannel class

* update comments

* remove retry parsing from client channel service config parser

* fix clang-tidy

* fix service_config_test

* clang-format
2021-03-31 15:39:14 -07:00
Yash Tibrewal 7021b72d1f
Revert Revert Xds Status Notifier (#25718)
* Revert "Revert "xDS status notifier (#25321)" (#25702)"

This reverts commit 3c9f3972e3.

* Remove connection from map when OnClose is not registered

* Reviewer comments
2021-03-15 14:29:06 -07:00
Yash Tibrewal 3c9f3972e3
Revert "xDS status notifier (#25321)" (#25702)
This reverts commit 81e90432e1.
2021-03-12 08:54:34 -08:00