Alisha Nanda
19d06a78ec
Add random early rejection for metadata ( #32600 )
...
(hopefully last try)
Add new channel arg GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE as hard limit
for metadata. Change GRPC_ARG_MAX_METADATA_SIZE to be a soft limit.
Behavior is as follows:
Hard limit
(1) if hard limit is explicitly set, this will be used.
(2) if hard limit is not explicitly set, maximum of default and soft
limit * 1.25 (if soft limit is set) will be used.
Soft limit
(1) if soft limit is explicitly set, this will be used.
(2) if soft limit is not explicitly set, maximum of default and hard
limit * 0.8 (if hard limit is set) will be used.
Requests between soft and hard limit will be rejected randomly, requests
above hard limit will be rejected.
2 years ago
Craig Tiller
67f364e23e
[cleanup] Eliminate usage of GRPC_ASSERT(false...); ( #31757 )
...
* crash function
* progress
* fix
* fix
* Automated change: Fix sanity tests
* fix
* fix
* fix
* fixes
* Automated change: Fix sanity tests
* fix
* Automated change: Fix sanity tests
* fix
* fix
* use cpp attr
* Automated change: Fix sanity tests
* fix
* fix
* fix
* fix
* fix
* fix
* add exclusion
* fix
* typo
* fix
* fmt
* Update tcp_socket_utils.cc
* Automated change: Fix sanity tests
* fix
* revert php changes
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Yijie Ma
f99b8b5bc4
Convert c-style comments to C++-style comments ( #31923 )
...
* baseline
* fix clang-tidy
* manually revert these files
* manually fixup at eof
* revert 2 more files
* change check_deprecated_grpc++.py
* change end2end_defs.include template
* fix check_include_guards.py
* untrack tools/distrib/python/convert_cstyle_comments_to_cpp.py
not yet ready to be submitted
* fix
yapf check_include_guards.py
remove a space...
* fix version.cc.template
* fix version_info.h.template
2 years ago
Alisha Nanda
ad91404e0e
Remove static initialization of memory allocator in tests ( #31776 )
...
* Add more info to error
* Fix tests
* Remove static initialization of memory allocator
* Fix test failure
* Automated change: Fix sanity tests
Co-authored-by: ananda1066 <ananda1066@users.noreply.github.com>
2 years ago
Esun Kim
250f9fc026
Revived google-readability-casting ( #31607 )
...
* Added google-readability-casting
* Fix
* Use brace init for constants
* more
* Fix
* Fix 2
* More fix
* Fixf
2 years ago
Craig Tiller
20d1efc38a
[stats] Move core stats to C++ ( #30936 )
...
* begin c++
* Automated change: Fix sanity tests
* progress
* progress
* missing-files
* Automated change: Fix sanity tests
* moved-from-stats
* remove old benchmark cruft, get tests compiling
* iwyu
* Automated change: Fix sanity tests
* fix
* fix
* fixes
* fixes
* add needed constructor
* Automated change: Fix sanity tests
* iwyu
* fix
* fix?
* fix
* fix
* Remove ResetDefaultEventEngine
Now that it is a weak_ptr, there's no need to explicitly reset it. When
the tracked shared_ptr is deleted, the weak_ptr will fail to lock, and a
new default EventEngine will be created.
* forget existing engine with FactoryReset
* add visibility
* fix
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
Co-authored-by: AJ Heller <hork@google.com>
2 years ago
Esun Kim
ba8af0157b
Removing GRPC_ERROR_[REF|UNREF|IS_NONE] ( #31089 )
...
* Removing GRPC_ERROR_[REF|UNREF|IS_NONE]
* Clean up unnecessary error
* Fix
* Fix2
* Remove unnecessary else
2 years ago
Craig Tiller
ebc4f236b6
[slice] Remove _internal variants of APIs ( #30953 )
...
* [slice] Remove _internal variants of APIs
* Automated change: Fix sanity tests
* fix
* reduce bloat
* fixes
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Craig Tiller
1ad4bbe78e
Revert "fix ( #31018 )" ( #31021 )
...
This reverts commit 2e6f268dfc
.
2 years ago
Craig Tiller
2e6f268dfc
fix ( #31018 )
2 years ago
Craig Tiller
96f5cddb5f
[time] Introduce time sources ( #30815 )
...
* [time] Introduce time sources
* make import trivial
* Automated change: Fix sanity tests
* fix
* Automated change: Fix sanity tests
* fix
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* review feedback
* fix
* Automated change: Fix sanity tests
* ios fix
* fix
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Esun Kim
c6ebbb5482
Added GRPC_ERROR_IS_NONE ( #29937 )
...
* Added GRPC_ERROR_IS_NONE
* Convert
* Fix
3 years ago
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>
3 years ago
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>
3 years ago
AJ Heller
85189b24bb
Reintroduce: Avoid fully qualifying namespaces (and add check) ( #28917 )
...
Based on a handful of https://abseil.io/tips , it's generally advised to
only fully-qualify namespaces when in a `using` statement, or when it's
otherwise required for compilation. In all other cases, the general
recommendation is to not fully-qualify.
This change fixes most `grpc.*` namespace uses. There are potential
challenges in trying to make blanket changes to non-gRPC namespace uses,
such as `::testing`, since there is also a `grpc::testing` namespace.
3 years ago
AJ Heller
e72a5fe5dd
Revert "Avoid fully qualifying namespaces (and add check) ( #28901 )" ( #28916 )
...
This reverts commit fc7314c701
.
3 years ago
AJ Heller
fc7314c701
Avoid fully qualifying namespaces (and add check) ( #28901 )
...
Based on a handful of https://abseil.io/tips , it's generally advised to
only fully-qualify namespaces when in a `using` statement, or when it's
otherwise required for compilation. In all other cases, the general
recommendation is to not fully-qualify.
This change fixes most `grpc.*` namespace uses. There are potential
challenges in trying to make blanket changes to non-gRPC namespace uses,
such as `::testing`, since there is also a `grpc::testing` namespace.
3 years ago
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>
3 years ago
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>
3 years ago
Craig Tiller
0deb64d1f6
Move content-type, colon prefixed metadata to new system ( #28204 )
...
* 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
* fix
* fix
* Automated change: Fix sanity tests
* fix
* fix
* fix
* compressor for path/authority
* Automated change: Fix sanity tests
* legalize
* status-enc
* fmt
* fix
* fix
* fix
* fix
* fix/opt
* fix
* fix
* fix
* fix
* Automated change: Fix sanity tests
* remove arg
* review feedback
* fix
* Small improvement in memory usage and performance
* Automated change: Fix sanity tests
* fix crash in alts
* review feedback
* fixes
* fixes
* fixes
* Automated change: Fix sanity tests
* speedup
* fix
* fix
* add comment
* add comment
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Craig Tiller
b95ed96b96
Revert "Revert "Move arena into resource quota ( #28008 )" ( #28292 )" ( #28293 )
...
This reverts commit 91edf92ce0
.
3 years ago
Craig Tiller
91edf92ce0
Revert "Move arena into resource quota ( #28008 )" ( #28292 )
...
This reverts commit ad424a2ebf
.
3 years ago
Craig Tiller
ad424a2ebf
Move arena into resource quota ( #28008 )
...
* 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
* Move arena into resource quota
* Remove redundant constant
* fixup the tests
* Automated change: Fix sanity tests
* fiiixes
* Automated change: Fix sanity tests
* fixes
* Automated change: Fix sanity tests
* fixes
* fix
* fix
* Automated change: Fix sanity tests
* fixes
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
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>
3 years ago
Craig Tiller
220cf641fa
Reland slice metadata conversion ( #28210 )
...
* 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
3 years ago
Craig Tiller
7717587063
Revert "Move a bunch of slice typed metadata to new system ( #28107 )" ( #28208 )
...
This reverts commit 4d432aefc1
.
3 years ago
Craig Tiller
4d432aefc1
Move a bunch of slice typed metadata to new system ( #28107 )
...
* 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
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
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
3 years ago
Craig Tiller
33fff40174
Revert "Reland te: trailers metadata stuff ( #27781 )" ( #27784 )
...
This reverts commit f5ab108ab7
.
3 years ago
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
3 years ago
Craig Tiller
2039cec4b1
Revert "Add metadata specialization for te: trailers ( #27714 )" ( #27779 )
...
This reverts commit 7cded136b7
.
3 years ago
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>
3 years ago
Craig Tiller
632cc4cc36
Make hpack tracing available in opt builds also ( #27728 )
3 years ago
Craig Tiller
1df153f46e
Revert "Revert "Move metadata setting into HPackParser ( #27545 )" ( #27686 )" ( #27688 )
...
This reverts commit 0e6ced8800
.
3 years ago
Craig Tiller
0e6ced8800
Revert "Move metadata setting into HPackParser ( #27545 )" ( #27686 )
...
This reverts commit f57a1f7d8c
.
3 years ago
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>
3 years ago
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.
3 years ago
Craig Tiller
91a2db9bc2
Make deadline the first metadata trait ( #27468 )
3 years ago
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
3 years ago
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>
3 years ago
Craig Tiller
ea389c00c2
Adjust include order per style guide ( #27175 )
...
Introduce clang-format configuration to sort includes closer to our rules.
3 years ago
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>
3 years ago
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
3 years ago
Craig Tiller
840bcce9c4
Revert "HPACK Table --> C++ ( #26851 )" ( #26995 )
...
This reverts commit 83bcb0cf2e
.
3 years ago
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
3 years ago
Craig Tiller
613b90ba93
Revert "Buffer HPACK parsing until the end of a header boundary ( #26700 )" ( #26825 )
...
This reverts commit 8bab3e4bf4
.
3 years ago
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.
3 years ago
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!)
3 years ago
Esun Kim
ca945a58e9
Introduced grpc_error_handle ( #25902 )
...
- Define grpc_error_handle
- Replace grpc_error* with grpc_error_handle
4 years ago
Esun Kim
62ac3f075a
Added call to grpc::testing::TestEnvironment in tests
4 years ago