Commit Graph

297 Commits

Author SHA1 Message Date
Yijie Ma bae0c705aa
[Deps] Update to Clang-16 (#34492)
<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-10-11 16:26:32 -07:00
Craig Tiller 91e7f223d3
[server] Remove `Notification` from shutdown path (#33953)
I'm fairly certain that this path should be non-blocking (and making it
so makes the promise based code far more tractable).

This moves the blocking behavior into the blocking server_cc.cc function
that calls `grpc_server_shutdown_and_notify` instead of in that
non-blocking function.

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-08-02 09:53:45 -07:00
Craig Tiller 3717ff04ba
[chttp2] Split ping policy from transport (#33703)
Why: Cleanup for chttp2_transport ahead of promise conversion - lots of
logic has become interleaved throughout chttp2, so some effort to
isolate logic out is warranted ahead of that conversion.

What: Split configuration and policy tracking for each of ping rate
throttling and abuse detection into their own modules. Add tests for
them.

Incidentally: Split channel args into their own header so that we can
split the policy stuff into separate build targets.

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-07-26 09:19:35 -07:00
Yijie Ma ac7faf75ba
Fix a race on vptr for UnimplementedAsyncRequest (#32547)
It is reported in https://github.com/grpc/grpc/issues/32356 that there
is a race on vptr for `UnimplementedAsyncRequest` which would cause
crashes for multi-threaded server if clients send unimplemented RPC
request to the server.

The cause is that the server requests a call for
`UnimplementedAsyncRequest` in its base class `GenericAsyncRequest` when
the `vptr` still points to the base class's `vtable`. If the call went
in and another server thread picks up the tag before the `vptr` points
back to the derived class's `vtable`, it would call the wrong virtual
function and also this is a data race. This fix makes the request of the
call inside the derived class's constructor.

<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-03-10 13:00:56 -08:00
Yousuk Seung b98f527260
Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorde… (#32301)
* Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)" (#32279)" (#32293)"

This reverts commit 1f960697c5.

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

This reverts commit deb1e25543.

* Fix by caching call metric recording stuff in async request

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

* copyright headers fixed

* clang fixes.
2023-02-03 11:49:32 -08:00
Xuan Wang deb1e25543
Revert "server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)" (#32272)
This reverts commit c7f641da0d.
2023-02-02 09:58:29 -08:00
Yousuk Seung c7f641da0d
server: introduce ServerMetricRecorder API and move per-call reporting from a C++ interceptor to a C-core filter (#32106)
* backend metric sampling

* Comments addressed.

* More comments addressed.

* Pushing changes left behind locally.

* Removed empty lines

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

* Comments addressed.

* More comments addressed

* More comments addressed.

* Comments fixed

* Comments addressed.

* Test fixed

* make seq returned always up-to-date

* skip atomic load when not cached

* Fixed ABSL_GUARDED_BY

* Comments addressed except client_lb_end2end_test

* test updated

* Comments addressed

* BUILD fix.

* BackendMetricDataState moved to a separate header

* comments addressed

* Fixed clang and buildifier errors

* More sanity check errors fixed.

* Fixed xds tests

* Ran generate_projects.sh

* Comments addressed

* comments addressed.

* generate project

* Build fixed

* generate project

* sanity check errors fixed

* test fixed

* Backup poller period override moved to main()

* Also move cfstream override

* Clang fixes, sanitize

* generate_projects.sh

* portable print format fix

* Removed outdated comment
2023-02-01 14:54:57 -08:00
Craig Tiller a414dbd304
Revert #30349 (#32008)
* [iwyu] Add missing #include <type_traits> to fix build breakage with LLVM after e0a66116fc

* Update IWYU mappings

New libc++ doesn't provide <type_traits> when including <utility>.

* run iwyu

Co-authored-by: alexfh <alexfh@google.com>
2023-01-03 11:00:30 -08:00
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
2022-12-22 23:01:53 -08:00
Craig Tiller 49a3035d44
[iwyu] Fix CI job (#31921)
* fix-includes

* fix

* fix

* fix

* fix

* fix

* Automated change: Fix sanity tests

* add warning label

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-12-19 08:18:39 -08:00
Cheng-Yu Chung 1b05576aa3
[cleanups] Clean up `GrpcLibraryInitializer` (#31894)
* Clean up `GrpcLibraryInitializer`

* Update

* Automated change: Fix sanity tests
2022-12-17 01:08:35 +08:00
Cheng-Yu Chung 9a7e77318b
[cleanups] Remove `include/grpc/impl/codegen/grpc_types.h` (#31835)
* Remove `include/grpc/impl/codegen/grpc_types.h`

* Automated change: Fix sanity tests

* Fix typo

* Automated change: Fix sanity tests
2022-12-14 02:29:17 +08:00
Cheng-Yu Chung 0356ff3a72
Remove `include/grpc/impl/codegen/gpr_types.h` (#31818)
* Remove `include/grpc/impl/codegen/gpr_types.h`

* Automated change: Fix sanity tests
2022-12-10 02:31:44 +08:00
Cheng-Yu Chung e9b287997a
Remove `include/grpcpp/impl/codegen/sync.h` (#31545)
* Remove `include/grpcpp/impl/codegen/sync.h`

* Fix sanity tests
2022-11-22 13:45:53 -05:00
Cheng-Yu Chung 452d026b7d
Remove `include/grpcpp/impl/codegen/interceptor_common.h` (#31530)
* Remove `include/grpcpp/impl/codegen/interceptor_common.h`

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests
2022-11-22 11:07:55 -05:00
Cheng-Yu Chung e83d69bdf2
Remove `include/grpcpp/impl/codegen/metadata_map.h` (#31531)
* Remove `include/grpcpp/impl/codegen/metadata_map.h`

* Automated change: Fix sanity tests
2022-11-21 17:33:27 -05:00
Cheng-Yu Chung 224c72b524
Remove `include/grpcpp/impl/codegen/server_interface.h` (#31539) 2022-11-21 15:40:52 -05:00
Cheng-Yu Chung e7f9fb03f4
Remove `include/grpcpp/impl/codegen/server_callback_handlers.h` (#31533) 2022-11-21 11:40:58 -05:00
Cheng-Yu Chung c91c2fbd1a
Remove `include/grpcpp/impl/codegen/completion_queue_tag.h` (#31320)
* Remove `include/grpcpp/impl/codegen/completion_queue_tag.h`

* Automated change: Fix sanity tests
2022-11-17 13:52:14 -05:00
Esun Kim 50fbe51238
Fix IWYU with clang-15 (#31556)
* Fix iwyu

* iwyu fix

* more fixed

* Build fix

* more fix

* More fixes 3
2022-11-04 15:49:56 -07:00
Cheng-Yu Chung 08ee2a3487
Remove `include/grpcpp/impl/codegen/call_op_set.h` (#31310) 2022-10-31 22:33:35 -04:00
Cheng-Yu Chung 1a9ce63199
Revert "Remove `include/grpcpp/impl/codegen/status_code_enum.h` (#31284)" (#31387)
This reverts commit 3981105be6.

Co-authored-by: Alisha Nanda <alishananda@google.com>
2022-10-18 10:27:04 -07:00
Cheng-Yu Chung 3981105be6
Remove `include/grpcpp/impl/codegen/status_code_enum.h` (#31284) 2022-10-18 11:34:24 -04:00
Craig Tiller 9c98d67d7a
[c++14] absl::make_unique --> std::make_unique (#31159)
* [c++14] absl::make_unique --> std::make_unique

* fix

* fix
2022-09-29 06:45:17 -07:00
Esun Kim d43511f4af
Removed GRPC_ERROR_NONE (#31131) 2022-09-27 23:17:39 -07:00
Cheng-Yu Chung 7cb9731e4e
Remove `include/grpcpp/impl/codegen/call_op_set_interface.h` (#30990) 2022-09-16 17:27:50 -04:00
Craig Tiller 004788af3d
[cleanup] Remove profiling timers (#30779)
* [cleanup] Remove profiling timers

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

* fix

* fixes
2022-08-30 13:40:08 -07:00
Craig Tiller 0450157e06
[iwyu] Better handle <type_traits> (#30349)
* update mapping

* run tool

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-20 16:48:20 -07:00
Mark D. Roth 80541dbc25
Revert "Revert "Second attempt: health check service: rewrite using callback … (#29813)" (#30168)
This reverts commit 897bc2c100.
2022-07-01 11:43:14 -07:00
Craig Tiller 897bc2c100
Revert "Second attempt: health check service: rewrite using callback … (#29813)
* Revert "Second attempt: health check service: rewrite using callback API (#29562)"

This reverts commit 90ee4e85f5.

* Automated change: Fix sanity tests

* iwyu

* iwyu fix

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-05-27 11:26:26 -07:00
Craig Tiller 0f9d024fec
[iwyu] c++ (#29721)
* Revert "Revert "[iwyu] grpc++ (#29610)" (#29720)"

This reverts commit 0642bc213d.

* fixup status_code_enum import issue

* fix

* Automated change: Fix sanity tests

* import fixes

* fix import

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-05-19 07:34:48 -07:00
Craig Tiller 0642bc213d
Revert "[iwyu] grpc++ (#29610)" (#29720)
This reverts commit c8159eabdf.
2022-05-18 09:58:08 -07:00
Craig Tiller c8159eabdf
[iwyu] grpc++ (#29610)
* [iwyu] grpc++

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* [iwyu] Better script

* eliminate race

* fixes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-05-18 07:16:53 -07:00
AJ Heller 93e6894485
Revert "Fix gRPC C++ init bug (#29689)" (#29701)
This reverts commit de613e3a9e.
2022-05-16 10:48:50 -07:00
Esun Kim de613e3a9e
Fix gRPC C++ init bug (#29689) 2022-05-14 13:56:08 -07:00
Mark D. Roth 90ee4e85f5
Second attempt: health check service: rewrite using callback API (#29562)
* Revert "Revert "health check service: rewrite using callback API (#29457)" (#29559)"

This reverts commit d4680eb8eb.

* don't register callback generic service if there is an async generic service

* fix edge case in shutdown

* don't call Finish() more than once

* add log message to help debugging

* don't start a new write after calling Finish()
2022-05-04 14:03:03 -07:00
Craig Tiller d4680eb8eb
Revert "health check service: rewrite using callback API (#29457)" (#29559)
This reverts commit 2b00c7d2ad.
2022-05-02 20:59:44 -07:00
Mark D. Roth 2b00c7d2ad
health check service: rewrite using callback API (#29457) 2022-05-02 10:37:31 -07:00
Mark D. Roth 0bdb4d650b
Revert "Revert "use CppImplOf for grpc_server (#28112)" (#28130)" (#28144)
This reverts commit eec0ca98c1.
2021-11-19 09:15:04 -08:00
Mark D. Roth eec0ca98c1
Revert "use CppImplOf for grpc_server (#28112)" (#28130)
This reverts commit 2ea8e50c3a.
2021-11-18 14:50:39 -08:00
Mark D. Roth 2ea8e50c3a
use CppImplOf for grpc_server (#28112)
* use CppImplOf for grpc_server

* fix build

* fix sanity
2021-11-17 07:46:53 -08: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
Tamir Duberstein 013e67a029
Deprecate grpc{_core,::internal}::WaitUntil (#26866)
It is not possible for such a function to be implemented in a way that
is understood by annotalysis. Mark it deprecated and replace instances
of its use with direct mutex/condvar usage.

Add a bunch of missing thread safety annotations while I'm here.
2021-08-04 17:03:25 -07:00
Vijay Pai ea4b68e7a1
Drop experimental tags from core callback API (#26535) 2021-06-24 17:20:43 -07:00
Vijay Pai cf1ebf7387
Remove experimental tag from uses of the C++ callback API (#26495) 2021-06-20 00:47:07 -07:00
Alisha Nanda cbcb0253a0
Additional logging for proto deserialization (#26159)
* Fix build failures in xds_end2end_test

* Change Status::OK to StatusCode::OK

* Added additional logging for proto deserialization failure

* Added additional logging for serialization failure

* Revert "Added additional logging for serialization failure"

This reverts commit 2dbbbed9d4.

* Revert "Added additional logging for proto deserialization failure"

This reverts commit 31f4e6e3c8.

* Move error logging for proto deserialization to server.cc

* Updated from GPR_ERROR to GPR_DEBUG
2021-05-11 15:36:39 -07:00
Vijay Pai edf500fb82
Add useful status error message when server threadpool is exhausted (#26146) 2021-05-03 12:16:12 -07:00
Vijay Pai dc6948cf35
Use atomics to remove locks in Channel/Server::CallbackCQ() (#26091) 2021-04-27 14:54:07 -07:00