Merge Master

pull/37496/head
tanvi-jagtap 7 months ago
commit d8252b2dda
  1. 21
      BUILD
  2. 13
      CMakeLists.txt
  3. 13
      build_autogenerated.yaml
  4. 1
      examples/cpp/helloworld/greeter_async_client.cc
  5. 1
      examples/cpp/helloworld/greeter_async_client2.cc
  6. 1
      examples/cpp/helloworld/greeter_async_server.cc
  7. 2
      gRPC-C++.podspec
  8. 1
      grpc.def
  9. 3
      include/grpc/support/log.h
  10. 26
      include/grpcpp/support/callback_common.h
  11. 58
      include/grpcpp/support/global_callback_hook.h
  12. 2
      src/core/BUILD
  13. 179
      src/core/client_channel/retry_filter_legacy_call_data.cc
  14. 21
      src/core/client_channel/subchannel.cc
  15. 27
      src/core/ext/transport/chaotic_good/chaotic_good_transport.h
  16. 1
      src/core/ext/transport/chaotic_good/frame.cc
  17. 1
      src/core/ext/transport/chaotic_good/frame_header.cc
  18. 10
      src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc
  19. 1
      src/core/ext/transport/chttp2/alpn/alpn.cc
  20. 1
      src/core/ext/transport/chttp2/transport/bin_encoder.cc
  21. 445
      src/core/ext/transport/chttp2/transport/chttp2_transport.cc
  22. 1
      src/core/ext/transport/chttp2/transport/frame.cc
  23. 1
      src/core/ext/transport/chttp2/transport/frame_data.cc
  24. 1
      src/core/ext/transport/chttp2/transport/frame_goaway.cc
  25. 11
      src/core/ext/transport/chttp2/transport/frame_settings.cc
  26. 1
      src/core/ext/transport/chttp2/transport/frame_window_update.cc
  27. 1
      src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc
  28. 25
      src/core/ext/transport/chttp2/transport/parsing.cc
  29. 1
      src/core/ext/transport/chttp2/transport/ping_callbacks.cc
  30. 1
      src/core/ext/transport/chttp2/transport/write_size_policy.cc
  31. 1
      src/core/ext/transport/cronet/transport/cronet_api_phony.cc
  32. 10
      src/core/handshaker/handshaker.cc
  33. 1
      src/core/lib/channel/channel_stack.cc
  34. 1
      src/core/lib/channel/channel_stack_builder_impl.cc
  35. 1
      src/core/lib/channel/connected_channel.cc
  36. 128
      src/core/lib/channel/promise_based_filter.cc
  37. 1
      src/core/lib/compression/compression_internal.cc
  38. 1
      src/core/lib/config/core_configuration.cc
  39. 1
      src/core/lib/debug/event_log.cc
  40. 1
      src/core/lib/event_engine/ares_resolver.cc
  41. 11
      src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc
  42. 1
      src/core/lib/event_engine/forkable.cc
  43. 1
      src/core/lib/event_engine/posix_engine/ev_poll_posix.cc
  44. 1
      src/core/lib/event_engine/posix_engine/lockfree_event.cc
  45. 1
      src/core/lib/event_engine/posix_engine/traced_buffer_list.cc
  46. 1
      src/core/lib/event_engine/resolved_address.cc
  47. 1
      src/core/lib/event_engine/slice.cc
  48. 1
      src/core/lib/event_engine/thread_pool/thread_count.cc
  49. 1
      src/core/lib/gprpp/host_port.cc
  50. 1
      src/core/lib/gprpp/load_file.cc
  51. 1
      src/core/lib/gprpp/status_helper.cc
  52. 1
      src/core/lib/gprpp/time_util.cc
  53. 2
      src/core/lib/gprpp/windows/directory_reader.cc
  54. 1
      src/core/lib/gprpp/windows/thd.cc
  55. 1
      src/core/lib/iomgr/buffer_list.cc
  56. 14
      src/core/lib/iomgr/call_combiner.h
  57. 1
      src/core/lib/iomgr/endpoint_pair_posix.cc
  58. 11
      src/core/lib/iomgr/ev_epoll1_linux.cc
  59. 11
      src/core/lib/iomgr/ev_poll_posix.cc
  60. 1
      src/core/lib/iomgr/ev_posix.cc
  61. 1
      src/core/lib/iomgr/executor.cc
  62. 1
      src/core/lib/iomgr/fork_windows.cc
  63. 1
      src/core/lib/iomgr/internal_errqueue.cc
  64. 1
      src/core/lib/iomgr/iocp_windows.cc
  65. 2
      src/core/lib/iomgr/iomgr_windows.cc
  66. 1
      src/core/lib/iomgr/polling_entity.cc
  67. 2
      src/core/lib/iomgr/pollset_windows.cc
  68. 1
      src/core/lib/iomgr/resolve_address.cc
  69. 1
      src/core/lib/iomgr/resolve_address_posix.cc
  70. 1
      src/core/lib/iomgr/resolve_address_windows.cc
  71. 1
      src/core/lib/iomgr/sockaddr_utils_posix.cc
  72. 1
      src/core/lib/iomgr/socket_mutator.cc
  73. 2
      src/core/lib/iomgr/socket_utils_linux.cc
  74. 1
      src/core/lib/iomgr/socket_utils_posix.cc
  75. 2
      src/core/lib/iomgr/socket_utils_windows.cc
  76. 1
      src/core/lib/iomgr/tcp_client_windows.cc
  77. 17
      src/core/lib/iomgr/tcp_posix.cc
  78. 1
      src/core/lib/iomgr/unix_sockets_posix.cc
  79. 2
      src/core/lib/iomgr/unix_sockets_posix_noop.cc
  80. 1
      src/core/lib/iomgr/vsock.cc
  81. 2
      src/core/lib/iomgr/wakeup_fd_eventfd.cc
  82. 1
      src/core/lib/resource_quota/connection_quota.cc
  83. 1
      src/core/lib/resource_quota/thread_quota.cc
  84. 1
      src/core/lib/security/authorization/audit_logging.cc
  85. 1
      src/core/lib/security/authorization/grpc_authorization_engine.cc
  86. 1
      src/core/lib/security/authorization/rbac_translator.cc
  87. 1
      src/core/lib/security/authorization/stdout_logger.cc
  88. 1
      src/core/lib/security/credentials/alts/check_gcp_environment.cc
  89. 1
      src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
  90. 1
      src/core/lib/security/credentials/call_creds_util.cc
  91. 1
      src/core/lib/security/credentials/composite/composite_credentials.cc
  92. 1
      src/core/lib/security/credentials/external/aws_external_account_credentials.cc
  93. 1
      src/core/lib/security/credentials/external/url_external_account_credentials.cc
  94. 1
      src/core/lib/security/credentials/iam/iam_credentials.cc
  95. 1
      src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc
  96. 1
      src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc
  97. 1
      src/core/lib/security/credentials/xds/xds_credentials.cc
  98. 1
      src/core/lib/security/security_connector/fake/fake_security_connector.cc
  99. 1
      src/core/lib/security/security_connector/insecure/insecure_security_connector.cc
  100. 1
      src/core/lib/security/security_connector/load_system_roots_windows.cc
  101. Some files were not shown because too many files have changed in this diff Show More

21
BUILD

@ -907,6 +907,7 @@ grpc_cc_library(
],
visibility = ["@grpc:grpc++_public_hdrs"],
deps = [
"global_callback_hook",
"grpc_public_hdrs",
"//src/core:gpr_atm",
],
@ -951,6 +952,7 @@ grpc_cc_library(
tags = ["nofixdeps"],
visibility = ["@grpc:public"],
deps = [
"global_callback_hook",
"grpc++_base",
"//src/core:gpr_atm",
"//src/core:slice",
@ -1260,6 +1262,7 @@ grpc_cc_library(
deps = [
"channel_arg_names",
"generic_stub_internal",
"global_callback_hook",
"gpr",
"grpc++_base_unsecure",
"grpc++_codegen_proto",
@ -2455,6 +2458,7 @@ grpc_cc_library(
"config",
"exec_ctx",
"generic_stub_internal",
"global_callback_hook",
"gpr",
"grpc",
"grpc++_codegen_proto",
@ -2544,6 +2548,7 @@ grpc_cc_library(
"config",
"exec_ctx",
"generic_stub_internal",
"global_callback_hook",
"gpr",
"grpc_base",
"grpc_core_credentials_header",
@ -4913,6 +4918,22 @@ grpc_cc_library(
],
)
grpc_cc_library(
name = "global_callback_hook",
srcs = [
"src/cpp/client/global_callback_hook.cc",
],
hdrs = [
"include/grpcpp/support/global_callback_hook.h",
],
external_deps = [
"absl/base:no_destructor",
"absl/log:check",
"absl/functional:function_ref",
],
language = "c++",
)
# TODO(yashykt): Remove the UPB definitions from here once they are no longer needed
### UPB Targets

13
CMakeLists.txt generated

@ -4182,6 +4182,7 @@ add_library(grpc++
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/client/xds_credentials.cc
@ -4465,6 +4466,7 @@ foreach(_hdr
include/grpcpp/support/client_callback.h
include/grpcpp/support/client_interceptor.h
include/grpcpp/support/config.h
include/grpcpp/support/global_callback_hook.h
include/grpcpp/support/interceptor.h
include/grpcpp/support/message_allocator.h
include/grpcpp/support/method_handler.h
@ -4938,6 +4940,7 @@ add_library(grpc++_unsecure
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/common/alarm.cc
src/cpp/common/channel_arguments.cc
@ -5209,6 +5212,7 @@ foreach(_hdr
include/grpcpp/support/client_callback.h
include/grpcpp/support/client_interceptor.h
include/grpcpp/support/config.h
include/grpcpp/support/global_callback_hook.h
include/grpcpp/support/interceptor.h
include/grpcpp/support/message_allocator.h
include/grpcpp/support/method_handler.h
@ -8266,6 +8270,7 @@ add_executable(binder_transport_test
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/common/alarm.cc
@ -13405,6 +13410,7 @@ add_executable(endpoint_binder_pool_test
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/common/alarm.cc
@ -14260,6 +14266,7 @@ add_executable(fake_binder_test
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/common/alarm.cc
@ -32271,6 +32278,7 @@ add_executable(transport_stream_receiver_test
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/common/alarm.cc
@ -33157,6 +33165,7 @@ add_executable(wire_reader_test
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/common/alarm.cc
@ -33267,6 +33276,7 @@ add_executable(wire_writer_test
src/cpp/client/create_channel.cc
src/cpp/client/create_channel_internal.cc
src/cpp/client/create_channel_posix.cc
src/cpp/client/global_callback_hook.cc
src/cpp/client/insecure_credentials.cc
src/cpp/client/secure_credentials.cc
src/cpp/common/alarm.cc
@ -33847,6 +33857,7 @@ add_executable(xds_client_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
src/cpp/client/global_callback_hook.cc
src/cpp/util/status.cc
test/core/xds/xds_client_test.cc
test/core/xds/xds_transport_fake.cc
@ -34142,6 +34153,7 @@ add_executable(xds_cluster_resource_type_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/wrr_locality.grpc.pb.h
src/cpp/client/global_callback_hook.cc
src/cpp/util/status.cc
test/core/xds/xds_cluster_resource_type_test.cc
)
@ -35138,6 +35150,7 @@ add_executable(xds_endpoint_resource_type_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.cc
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.pb.h
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/percent.grpc.pb.h
src/cpp/client/global_callback_hook.cc
src/cpp/util/status.cc
test/core/xds/xds_endpoint_resource_type_test.cc
)

@ -3836,6 +3836,7 @@ libs:
- include/grpcpp/support/client_callback.h
- include/grpcpp/support/client_interceptor.h
- include/grpcpp/support/config.h
- include/grpcpp/support/global_callback_hook.h
- include/grpcpp/support/interceptor.h
- include/grpcpp/support/message_allocator.h
- include/grpcpp/support/method_handler.h
@ -3915,6 +3916,7 @@ libs:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/client/xds_credentials.cc
@ -4267,6 +4269,7 @@ libs:
- include/grpcpp/support/client_callback.h
- include/grpcpp/support/client_interceptor.h
- include/grpcpp/support/config.h
- include/grpcpp/support/global_callback_hook.h
- include/grpcpp/support/interceptor.h
- include/grpcpp/support/message_allocator.h
- include/grpcpp/support/method_handler.h
@ -4303,6 +4306,7 @@ libs:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/common/alarm.cc
- src/cpp/common/channel_arguments.cc
@ -6182,6 +6186,7 @@ targets:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/alarm.cc
@ -9668,6 +9673,7 @@ targets:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/alarm.cc
@ -10143,6 +10149,7 @@ targets:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/alarm.cc
@ -20379,6 +20386,7 @@ targets:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/alarm.cc
@ -20798,6 +20806,7 @@ targets:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/alarm.cc
@ -20909,6 +20918,7 @@ targets:
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
- src/cpp/client/create_channel_posix.cc
- src/cpp/client/global_callback_hook.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/alarm.cc
@ -21232,6 +21242,7 @@ targets:
- src/proto/grpc/testing/xds/v3/base.proto
- src/proto/grpc/testing/xds/v3/discovery.proto
- src/proto/grpc/testing/xds/v3/percent.proto
- src/cpp/client/global_callback_hook.cc
- src/cpp/util/status.cc
- test/core/xds/xds_client_test.cc
- test/core/xds/xds_transport_fake.cc
@ -21329,6 +21340,7 @@ targets:
- src/proto/grpc/testing/xds/v3/tls.proto
- src/proto/grpc/testing/xds/v3/typed_struct.proto
- src/proto/grpc/testing/xds/v3/wrr_locality.proto
- src/cpp/client/global_callback_hook.cc
- src/cpp/util/status.cc
- test/core/xds/xds_cluster_resource_type_test.cc
deps:
@ -21676,6 +21688,7 @@ targets:
- src/proto/grpc/testing/xds/v3/endpoint.proto
- src/proto/grpc/testing/xds/v3/health_check.proto
- src/proto/grpc/testing/xds/v3/percent.proto
- src/cpp/client/global_callback_hook.cc
- src/cpp/util/status.cc
- test/core/xds/xds_endpoint_resource_type_test.cc
deps:

@ -24,7 +24,6 @@
#include "absl/flags/parse.h"
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD

@ -25,7 +25,6 @@
#include "absl/flags/parse.h"
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD

@ -26,7 +26,6 @@
#include "absl/log/check.h"
#include "absl/strings/str_format.h"
#include <grpc/support/log.h>
#include <grpcpp/grpcpp.h>
#ifdef BAZEL_BUILD

2
gRPC-C++.podspec generated

@ -206,6 +206,7 @@ Pod::Spec.new do |s|
'include/grpcpp/support/client_callback.h',
'include/grpcpp/support/client_interceptor.h',
'include/grpcpp/support/config.h',
'include/grpcpp/support/global_callback_hook.h',
'include/grpcpp/support/interceptor.h',
'include/grpcpp/support/message_allocator.h',
'include/grpcpp/support/method_handler.h',
@ -1378,6 +1379,7 @@ Pod::Spec.new do |s|
'src/cpp/client/create_channel_internal.cc',
'src/cpp/client/create_channel_internal.h',
'src/cpp/client/create_channel_posix.cc',
'src/cpp/client/global_callback_hook.cc',
'src/cpp/client/insecure_credentials.cc',
'src/cpp/client/secure_credentials.cc',
'src/cpp/client/secure_credentials.h',

1
grpc.def generated

@ -231,7 +231,6 @@ EXPORTS
gpr_cpu_num_cores
gpr_cpu_current_cpu
gpr_log
absl_vlog2_enabled
gpr_log_verbosity_init
gpr_format_message
gpr_strdup

@ -51,9 +51,6 @@ typedef enum gpr_log_severity {
GPRAPI void gpr_log(const char* file, int line, gpr_log_severity severity,
const char* format, ...) GPR_PRINT_FORMAT_CHECK(4, 5);
/** Deprecated. **/
GPRAPI int absl_vlog2_enabled();
GPRAPI void gpr_log_verbosity_init(void);
#ifdef __cplusplus

@ -30,6 +30,7 @@
#include <grpcpp/impl/codegen/channel_interface.h>
#include <grpcpp/impl/completion_queue_tag.h>
#include <grpcpp/support/config.h>
#include <grpcpp/support/global_callback_hook.h>
#include <grpcpp/support/status.h>
namespace grpc {
@ -127,7 +128,18 @@ class CallbackWithStatusTag : public grpc_completion_queue_functor {
auto status = std::move(status_);
func_ = nullptr; // reset to clear this out for sure
status_ = Status(); // reset to clear this out for sure
CatchingCallback(std::move(func), std::move(status));
GetGlobalCallbackHook()->RunCallback(
call_, [func = std::move(func), status = std::move(status)]() {
#if GRPC_ALLOW_EXCEPTIONS
try {
func(status);
} catch (...) {
// nothing to return or change here, just don't crash the library
}
#else // GRPC_ALLOW_EXCEPTIONS
func(status);
#endif // GRPC_ALLOW_EXCEPTIONS
});
grpc_call_unref(call_);
}
};
@ -214,7 +226,17 @@ class CallbackWithSuccessTag : public grpc_completion_queue_functor {
#endif
if (do_callback) {
CatchingCallback(func_, ok);
GetGlobalCallbackHook()->RunCallback(call_, [this, ok]() {
#if GRPC_ALLOW_EXCEPTIONS
try {
func_(ok);
} catch (...) {
// nothing to return or change here, just don't crash the library
}
#else // GRPC_ALLOW_EXCEPTIONS
func_(ok);
#endif // GRPC_ALLOW_EXCEPTIONS
});
}
}
};

@ -0,0 +1,58 @@
// Copyright 2024 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef GRPCPP_SUPPORT_GLOBAL_CALLBACK_HOOK_H
#define GRPCPP_SUPPORT_GLOBAL_CALLBACK_HOOK_H
#include "absl/functional/function_ref.h"
struct grpc_call;
namespace grpc {
class GlobalCallbackHook {
public:
virtual ~GlobalCallbackHook() = default;
virtual void RunCallback(grpc_call* call,
absl::FunctionRef<void()> callback) = 0;
protected:
// An exception-safe way of invoking a user-specified callback function.
template <class Func, class... Args>
void CatchingCallback(Func&& func, Args&&... args) {
#if GRPC_ALLOW_EXCEPTIONS
try {
func(std::forward<Args>(args)...);
} catch (...) {
// nothing to return or change here, just don't crash the library
}
#else // GRPC_ALLOW_EXCEPTIONS
func(std::forward<Args>(args)...);
#endif // GRPC_ALLOW_EXCEPTIONS
}
};
class DefaultGlobalCallbackHook final : public GlobalCallbackHook {
public:
void RunCallback(grpc_call* call,
absl::FunctionRef<void()> callback) override {
CatchingCallback(callback);
}
};
std::shared_ptr<GlobalCallbackHook> GetGlobalCallbackHook();
void SetGlobalCallbackHook(GlobalCallbackHook* hook);
} // namespace grpc
#endif // GRPCPP_SUPPORT_GLOBAL_CALLBACK_HOOK_H

@ -142,6 +142,8 @@ grpc_cc_library(
"util/latent_see.h",
],
external_deps = [
"absl/base:core_headers",
"absl/functional:any_invocable",
"absl/log",
"absl/strings",
"absl/types:optional",

@ -230,12 +230,11 @@ void RetryFilter::LegacyCallData::CallAttempt::MaybeSwitchToFastPath() {
// yet seen that op from the surface, we can't switch yet.
if (recv_trailing_metadata_internal_batch_ != nullptr) return;
// Switch to fast path.
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": retry state no longer needed; "
"moving LB call to parent and unreffing the call attempt";
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": retry state no longer needed; "
"moving LB call to parent and unreffing the call attempt";
calld_->committed_call_ = std::move(lb_call_);
calld_->call_attempt_.reset(DEBUG_LOCATION, "MaybeSwitchToFastPath");
}
@ -249,12 +248,10 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
// send_initial_metadata.
if (calld_->seen_send_initial_metadata_ && !started_send_initial_metadata_ &&
!calld_->pending_send_initial_metadata_) {
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": replaying previously completed "
"send_initial_metadata op";
}
GRPC_TRACE_LOG(retry, INFO) << "chand=" << calld_->chand_
<< " calld=" << calld_ << " attempt=" << this
<< ": replaying previously completed "
"send_initial_metadata op";
replay_batch_data = CreateBatch(1, true /* set_on_complete */);
replay_batch_data->AddRetriableSendInitialMetadataOp();
}
@ -263,12 +260,10 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
if (started_send_message_count_ < calld_->send_messages_.size() &&
started_send_message_count_ == completed_send_message_count_ &&
!calld_->pending_send_message_) {
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": replaying previously completed "
"send_message op";
}
GRPC_TRACE_LOG(retry, INFO) << "chand=" << calld_->chand_
<< " calld=" << calld_ << " attempt=" << this
<< ": replaying previously completed "
"send_message op";
if (replay_batch_data == nullptr) {
replay_batch_data = CreateBatch(1, true /* set_on_complete */);
}
@ -282,12 +277,10 @@ RetryFilter::LegacyCallData::CallAttempt::MaybeCreateBatchForReplay() {
started_send_message_count_ == calld_->send_messages_.size() &&
!started_send_trailing_metadata_ &&
!calld_->pending_send_trailing_metadata_) {
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": replaying previously completed "
"send_trailing_metadata op";
}
GRPC_TRACE_LOG(retry, INFO) << "chand=" << calld_->chand_
<< " calld=" << calld_ << " attempt=" << this
<< ": replaying previously completed "
"send_trailing_metadata op";
if (replay_batch_data == nullptr) {
replay_batch_data = CreateBatch(1, true /* set_on_complete */);
}
@ -325,12 +318,11 @@ void RetryFilter::LegacyCallData::CallAttempt::AddClosureForBatch(
void RetryFilter::LegacyCallData::CallAttempt::
AddBatchForInternalRecvTrailingMetadata(CallCombinerClosureList* closures) {
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": call failed but recv_trailing_metadata not started; "
"starting it internally";
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this
<< ": call failed but recv_trailing_metadata not started; "
"starting it internally";
// Create batch_data with 2 refs, since this batch will be unreffed twice:
// once for the recv_trailing_metadata_ready callback when the batch
// completes, and again when we actually get a recv_trailing_metadata
@ -556,12 +548,11 @@ bool RetryFilter::LegacyCallData::CallAttempt::ShouldRetry(
}
// Status is not OK. Check whether the status is retryable.
if (!calld_->retry_policy_->retryable_status_codes().Contains(*status)) {
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this << ": status "
<< grpc_status_code_to_string(*status)
<< " not configured as retryable";
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld_->chand_ << " calld=" << calld_
<< " attempt=" << this << ": status "
<< grpc_status_code_to_string(*status)
<< " not configured as retryable";
return false;
}
}
@ -651,14 +642,12 @@ void RetryFilter::LegacyCallData::CallAttempt::OnPerAttemptRecvTimerLocked(
void* arg, grpc_error_handle error) {
auto* call_attempt = static_cast<CallAttempt*>(arg);
auto* calld = call_attempt->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< ": perAttemptRecvTimeout timer fired: error="
<< StatusToString(error)
<< ", per_attempt_recv_timer_handle_.has_value()="
<< call_attempt->per_attempt_recv_timer_handle_.has_value();
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< ": perAttemptRecvTimeout timer fired: error=" << StatusToString(error)
<< ", per_attempt_recv_timer_handle_.has_value()="
<< call_attempt->per_attempt_recv_timer_handle_.has_value();
CallCombinerClosureList closures;
call_attempt->per_attempt_recv_timer_handle_.reset();
// Cancel this attempt.
@ -804,13 +793,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
CallAttempt* call_attempt = batch_data->call_attempt_;
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< " batch_data=" << batch_data.get()
<< ": got recv_initial_metadata_ready, error="
<< StatusToString(error);
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
<< ": got recv_initial_metadata_ready, error=" << StatusToString(error);
call_attempt->completed_recv_initial_metadata_ = true;
// If this attempt has been abandoned, then we're not going to use the
// result of this recv_initial_metadata op, so do nothing.
@ -901,12 +887,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::RecvMessageReady(
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
CallAttempt* call_attempt = batch_data->call_attempt_;
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< " batch_data=" << batch_data.get()
<< ": got recv_message_ready, error=" << StatusToString(error);
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
<< ": got recv_message_ready, error=" << StatusToString(error);
++call_attempt->completed_recv_message_count_;
// If this attempt has been abandoned, then we're not going to use the
// result of this recv_message op, so do nothing.
@ -930,12 +914,11 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::RecvMessageReady(
if (GPR_UNLIKELY(
(!call_attempt->recv_message_.has_value() || !error.ok()) &&
!call_attempt->completed_recv_trailing_metadata_)) {
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< ": deferring recv_message_ready (nullptr message and "
"recv_trailing_metadata pending)";
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< ": deferring recv_message_ready (nullptr message and "
"recv_trailing_metadata pending)";
call_attempt->recv_message_ready_deferred_batch_ = std::move(batch_data);
call_attempt->recv_message_error_ = error;
CallCombinerClosureList closures;
@ -1094,13 +1077,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
CallAttempt* call_attempt = batch_data->call_attempt_;
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< " batch_data=" << batch_data.get()
<< ": got recv_trailing_metadata_ready, error="
<< StatusToString(error);
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
<< ": got recv_trailing_metadata_ready, error=" << StatusToString(error);
call_attempt->completed_recv_trailing_metadata_ = true;
// If this attempt has been abandoned, then we're not going to use the
// result of this recv_trailing_metadata op, so do nothing.
@ -1121,17 +1101,15 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
batch_data->batch_.payload->recv_trailing_metadata.recv_trailing_metadata;
GetCallStatus(calld->deadline_, md_batch, error, &status, &server_pushback,
&is_lb_drop, &stream_network_state);
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt << ": call finished, status="
<< grpc_status_code_to_string(status) << " server_pushback="
<< (server_pushback.has_value() ? server_pushback->ToString()
: "N/A")
<< " is_lb_drop=" << is_lb_drop << " stream_network_state="
<< (stream_network_state.has_value()
? absl::StrCat(*stream_network_state)
: "N/A");
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< ": call finished, status=" << grpc_status_code_to_string(status)
<< " server_pushback="
<< (server_pushback.has_value() ? server_pushback->ToString() : "N/A")
<< " is_lb_drop=" << is_lb_drop << " stream_network_state="
<< (stream_network_state.has_value() ? absl::StrCat(*stream_network_state)
: "N/A");
// Check if we should retry.
if (!is_lb_drop) { // Never retry on LB drops.
enum { kNoRetry, kTransparentRetry, kConfigurableRetry } retry = kNoRetry;
@ -1253,15 +1231,11 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnComplete(
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
CallAttempt* call_attempt = batch_data->call_attempt_;
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< " batch_data=" << batch_data.get()
<< ": got on_complete, error=" << StatusToString(error)
<< ", batch="
<< grpc_transport_stream_op_batch_string(&batch_data->batch_,
false);
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
<< ": got on_complete, error=" << StatusToString(error) << ", batch="
<< grpc_transport_stream_op_batch_string(&batch_data->batch_, false);
// If this attempt has been abandoned, then we're not going to propagate
// the completion of this batch, so do nothing.
if (call_attempt->abandoned_) {
@ -1328,15 +1302,12 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::OnCompleteForCancelOp(
RefCountedPtr<BatchData> batch_data(static_cast<BatchData*>(arg));
CallAttempt* call_attempt = batch_data->call_attempt_;
RetryFilter::LegacyCallData* calld = call_attempt->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt
<< " batch_data=" << batch_data.get()
<< ": got on_complete for cancel_stream batch, error="
<< StatusToString(error) << ", batch="
<< grpc_transport_stream_op_batch_string(&batch_data->batch_,
false);
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt << " batch_data=" << batch_data.get()
<< ": got on_complete for cancel_stream batch, error="
<< StatusToString(error) << ", batch="
<< grpc_transport_stream_op_batch_string(&batch_data->batch_, false);
GRPC_CALL_COMBINER_STOP(
calld->call_combiner_,
"on_complete for internally generated cancel_stream op");
@ -1371,12 +1342,10 @@ void RetryFilter::LegacyCallData::CallAttempt::BatchData::
void RetryFilter::LegacyCallData::CallAttempt::BatchData::
AddRetriableSendMessageOp() {
auto* calld = call_attempt_->calld_;
if (GRPC_TRACE_FLAG_ENABLED(retry)) {
LOG(INFO) << "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt_
<< ": starting calld->send_messages["
<< call_attempt_->started_send_message_count_ << "]";
}
GRPC_TRACE_LOG(retry, INFO)
<< "chand=" << calld->chand_ << " calld=" << calld
<< " attempt=" << call_attempt_ << ": starting calld->send_messages["
<< call_attempt_->started_send_message_count_ << "]";
CachedSendMessage cache =
calld->send_messages_[call_attempt_->started_send_message_count_];
++call_attempt_->started_send_message_count_;

@ -417,12 +417,11 @@ class Subchannel::ConnectedSubchannelStateWatcher final
if (c->connected_subchannel_ == nullptr) return;
if (new_state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
new_state == GRPC_CHANNEL_SHUTDOWN) {
if (GRPC_TRACE_FLAG_ENABLED(subchannel)) {
LOG(INFO) << "subchannel " << c << " " << c->key_.ToString()
<< ": Connected subchannel "
<< c->connected_subchannel_.get() << " reports "
<< ConnectivityStateName(new_state) << ": " << status;
}
GRPC_TRACE_LOG(subchannel, INFO)
<< "subchannel " << c << " " << c->key_.ToString()
<< ": Connected subchannel " << c->connected_subchannel_.get()
<< " reports " << ConnectivityStateName(new_state) << ": "
<< status;
c->connected_subchannel_.reset();
if (c->channelz_node() != nullptr) {
c->channelz_node()->SetChildSocket(nullptr);
@ -803,12 +802,10 @@ void Subchannel::OnConnectingFinishedLocked(grpc_error_handle error) {
if (connecting_result_.transport == nullptr || !PublishTransportLocked()) {
const Duration time_until_next_attempt =
next_attempt_time_ - Timestamp::Now();
if (GRPC_TRACE_FLAG_ENABLED(subchannel)) {
LOG(INFO) << "subchannel " << this << " " << key_.ToString()
<< ": connect failed (" << StatusToString(error)
<< "), backing off for " << time_until_next_attempt.millis()
<< " ms";
}
GRPC_TRACE_LOG(subchannel, INFO)
<< "subchannel " << this << " " << key_.ToString()
<< ": connect failed (" << StatusToString(error)
<< "), backing off for " << time_until_next_attempt.millis() << " ms";
SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE,
grpc_error_to_absl_status(error));
retry_timer_handle_ = event_engine_->RunAfter(

@ -56,12 +56,11 @@ class ChaoticGoodTransport : public RefCounted<ChaoticGoodTransport> {
bool saw_encoding_errors = false;
auto buffers = frame.Serialize(&encoder_, saw_encoding_errors);
// ignore encoding errors: they will be logged separately already
if (GRPC_TRACE_FLAG_ENABLED(chaotic_good)) {
LOG(INFO) << "CHAOTIC_GOOD: WriteFrame to:"
<< ResolvedAddressToString(control_endpoint_.GetPeerAddress())
.value_or("<<unknown peer address>>")
<< " " << frame.ToString();
}
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: WriteFrame to:"
<< ResolvedAddressToString(control_endpoint_.GetPeerAddress())
.value_or("<<unknown peer address>>")
<< " " << frame.ToString();
return TryJoin<absl::StatusOr>(
control_endpoint_.Write(std::move(buffers.control)),
data_endpoint_.Write(std::move(buffers.data)));
@ -76,15 +75,13 @@ class ChaoticGoodTransport : public RefCounted<ChaoticGoodTransport> {
auto frame_header =
FrameHeader::Parse(reinterpret_cast<const uint8_t*>(
GRPC_SLICE_START_PTR(read_buffer.c_slice())));
if (GRPC_TRACE_FLAG_ENABLED(chaotic_good)) {
LOG(INFO) << "CHAOTIC_GOOD: ReadHeader from:"
<< ResolvedAddressToString(
control_endpoint_.GetPeerAddress())
.value_or("<<unknown peer address>>")
<< " "
<< (frame_header.ok() ? frame_header->ToString()
: frame_header.status().ToString());
}
GRPC_TRACE_LOG(chaotic_good, INFO)
<< "CHAOTIC_GOOD: ReadHeader from:"
<< ResolvedAddressToString(control_endpoint_.GetPeerAddress())
.value_or("<<unknown peer address>>")
<< " "
<< (frame_header.ok() ? frame_header->ToString()
: frame_header.status().ToString());
// Read header and trailers from control endpoint.
// Read message padding and message from data endpoint.
return If(

@ -25,7 +25,6 @@
#include "absl/status/statusor.h"
#include <grpc/slice.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/chaotic_good/frame_header.h"

@ -19,7 +19,6 @@
#include "absl/status/status.h"
#include "absl/strings/str_cat.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -300,12 +300,10 @@ auto ChaoticGoodServerListener::ActiveConnection::HandshakingState::
},
[self](PromiseEndpoint ret) -> absl::Status {
MutexLock lock(&self->connection_->listener_->mu_);
if (GRPC_TRACE_FLAG_ENABLED(chaotic_good)) {
LOG(INFO) << self->connection_.get()
<< " Data endpoint setup done: shutdown="
<< (self->connection_->listener_->shutdown_ ? "true"
: "false");
}
GRPC_TRACE_LOG(chaotic_good, INFO)
<< self->connection_.get()
<< " Data endpoint setup done: shutdown="
<< (self->connection_->listener_->shutdown_ ? "true" : "false");
if (self->connection_->listener_->shutdown_) {
return absl::UnavailableError("Server shutdown");
}

@ -20,7 +20,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/util/useful.h"

@ -23,7 +23,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/chttp2/transport/huffsyms.h"

@ -1362,6 +1362,241 @@ static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
});
}
static void send_initial_metadata_locked(
grpc_transport_stream_op_batch* op, grpc_chttp2_stream* s,
grpc_transport_stream_op_batch_payload* op_payload,
grpc_chttp2_transport* t, grpc_closure* on_complete) {
if (!grpc_core::IsCallTracerInTransportEnabled()) {
if (s->call_tracer != nullptr) {
s->call_tracer->RecordAnnotation(
grpc_core::HttpAnnotation(grpc_core::HttpAnnotation::Type::kStart,
gpr_now(GPR_CLOCK_REALTIME))
.Add(s->t->flow_control.stats())
.Add(s->flow_control.stats()));
}
} else if (grpc_core::IsTraceRecordCallopsEnabled()) {
auto* call_tracer = s->arena->GetContext<grpc_core::CallTracerInterface>();
if (call_tracer != nullptr && call_tracer->IsSampled()) {
call_tracer->RecordAnnotation(
grpc_core::HttpAnnotation(grpc_core::HttpAnnotation::Type::kStart,
gpr_now(GPR_CLOCK_REALTIME))
.Add(s->t->flow_control.stats())
.Add(s->flow_control.stats()));
}
}
if (t->is_client && t->channelz_socket != nullptr) {
t->channelz_socket->RecordStreamStartedFromLocal();
}
CHECK_EQ(s->send_initial_metadata_finished, nullptr);
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
s->send_initial_metadata_finished = add_closure_barrier(on_complete);
s->send_initial_metadata =
op_payload->send_initial_metadata.send_initial_metadata;
if (t->is_client) {
s->deadline =
std::min(s->deadline,
s->send_initial_metadata->get(grpc_core::GrpcTimeoutMetadata())
.value_or(grpc_core::Timestamp::InfFuture()));
}
if (contains_non_ok_status(s->send_initial_metadata)) {
s->seen_error = true;
}
if (!s->write_closed) {
if (t->is_client) {
if (t->closed_with_error.ok()) {
CHECK_EQ(s->id, 0u);
grpc_chttp2_list_add_waiting_for_concurrency(t, s);
maybe_start_some_streams(t);
} else {
s->trailing_metadata_buffer.Set(
grpc_core::GrpcStreamNetworkState(),
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
grpc_chttp2_cancel_stream(
t, s,
grpc_error_set_int(
GRPC_ERROR_CREATE_REFERENCING("Transport closed",
&t->closed_with_error, 1),
grpc_core::StatusIntProperty::kRpcStatus,
GRPC_STATUS_UNAVAILABLE),
false);
}
} else {
CHECK_NE(s->id, 0u);
grpc_chttp2_mark_stream_writable(t, s);
if (!(op->send_message &&
(op->payload->send_message.flags & GRPC_WRITE_BUFFER_HINT))) {
grpc_chttp2_initiate_write(
t, GRPC_CHTTP2_INITIATE_WRITE_SEND_INITIAL_METADATA);
}
}
} else {
s->send_initial_metadata = nullptr;
grpc_chttp2_complete_closure_step(
t, &s->send_initial_metadata_finished,
GRPC_ERROR_CREATE_REFERENCING(
"Attempt to send initial metadata after stream was closed",
&s->write_closed_error, 1),
"send_initial_metadata_finished");
}
}
static void send_message_locked(
grpc_transport_stream_op_batch* op, grpc_chttp2_stream* s,
grpc_transport_stream_op_batch_payload* op_payload,
grpc_chttp2_transport* t, grpc_closure* on_complete) {
t->num_messages_in_next_write++;
grpc_core::global_stats().IncrementHttp2SendMessageSize(
op->payload->send_message.send_message->Length());
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
s->send_message_finished = add_closure_barrier(op->on_complete);
const uint32_t flags = op_payload->send_message.flags;
if (s->write_closed) {
op->payload->send_message.stream_write_closed = true;
// We should NOT return an error here, so as to avoid a cancel OP being
// started. The surface layer will notice that the stream has been closed
// for writes and fail the send message op.
grpc_chttp2_complete_closure_step(t, &s->send_message_finished,
absl::OkStatus(),
"fetching_send_message_finished");
} else {
uint8_t* frame_hdr = grpc_slice_buffer_tiny_add(&s->flow_controlled_buffer,
GRPC_HEADER_SIZE_IN_BYTES);
frame_hdr[0] = (flags & GRPC_WRITE_INTERNAL_COMPRESS) != 0;
size_t len = op_payload->send_message.send_message->Length();
frame_hdr[1] = static_cast<uint8_t>(len >> 24);
frame_hdr[2] = static_cast<uint8_t>(len >> 16);
frame_hdr[3] = static_cast<uint8_t>(len >> 8);
frame_hdr[4] = static_cast<uint8_t>(len);
s->call_tracer_wrapper.RecordOutgoingBytes(
{GRPC_HEADER_SIZE_IN_BYTES, len, 0});
s->next_message_end_offset =
s->flow_controlled_bytes_written +
static_cast<int64_t>(s->flow_controlled_buffer.length) +
static_cast<int64_t>(len);
if (flags & GRPC_WRITE_BUFFER_HINT) {
s->next_message_end_offset -= t->write_buffer_size;
s->write_buffering = true;
} else {
s->write_buffering = false;
}
grpc_slice* const slices =
op_payload->send_message.send_message->c_slice_buffer()->slices;
grpc_slice* const end =
slices + op_payload->send_message.send_message->Count();
for (grpc_slice* slice = slices; slice != end; slice++) {
grpc_slice_buffer_add(&s->flow_controlled_buffer,
grpc_core::CSliceRef(*slice));
}
int64_t notify_offset = s->next_message_end_offset;
if (notify_offset <= s->flow_controlled_bytes_written) {
grpc_chttp2_complete_closure_step(t, &s->send_message_finished,
absl::OkStatus(),
"fetching_send_message_finished");
} else {
grpc_chttp2_write_cb* cb = t->write_cb_pool;
if (cb == nullptr) {
cb = static_cast<grpc_chttp2_write_cb*>(gpr_malloc(sizeof(*cb)));
} else {
t->write_cb_pool = cb->next;
}
cb->call_at_byte = notify_offset;
cb->closure = s->send_message_finished;
s->send_message_finished = nullptr;
grpc_chttp2_write_cb** list = flags & GRPC_WRITE_THROUGH
? &s->on_write_finished_cbs
: &s->on_flow_controlled_cbs;
cb->next = *list;
*list = cb;
}
if (s->id != 0 && (!s->write_buffering || s->flow_controlled_buffer.length >
t->write_buffer_size)) {
grpc_chttp2_mark_stream_writable(t, s);
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_SEND_MESSAGE);
}
}
}
static void send_trailing_metadata_locked(
grpc_transport_stream_op_batch* op, grpc_chttp2_stream* s,
grpc_transport_stream_op_batch_payload* op_payload,
grpc_chttp2_transport* t, grpc_closure* on_complete) {
CHECK_EQ(s->send_trailing_metadata_finished, nullptr);
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
s->send_trailing_metadata_finished = add_closure_barrier(on_complete);
s->send_trailing_metadata =
op_payload->send_trailing_metadata.send_trailing_metadata;
s->sent_trailing_metadata_op = op_payload->send_trailing_metadata.sent;
s->write_buffering = false;
if (contains_non_ok_status(s->send_trailing_metadata)) {
s->seen_error = true;
}
if (s->write_closed) {
s->send_trailing_metadata = nullptr;
s->sent_trailing_metadata_op = nullptr;
grpc_chttp2_complete_closure_step(
t, &s->send_trailing_metadata_finished,
op->payload->send_trailing_metadata.send_trailing_metadata->empty()
? absl::OkStatus()
: GRPC_ERROR_CREATE("Attempt to send trailing metadata after "
"stream was closed"),
"send_trailing_metadata_finished");
} else if (s->id != 0) {
// TODO(ctiller): check if there's flow control for any outstanding
// bytes before going writable
grpc_chttp2_mark_stream_writable(t, s);
grpc_chttp2_initiate_write(
t, GRPC_CHTTP2_INITIATE_WRITE_SEND_TRAILING_METADATA);
}
}
static void recv_initial_metadata_locked(
grpc_chttp2_stream* s, grpc_transport_stream_op_batch_payload* op_payload,
grpc_chttp2_transport* t) {
CHECK_EQ(s->recv_initial_metadata_ready, nullptr);
s->recv_initial_metadata_ready =
op_payload->recv_initial_metadata.recv_initial_metadata_ready;
s->recv_initial_metadata =
op_payload->recv_initial_metadata.recv_initial_metadata;
s->trailing_metadata_available =
op_payload->recv_initial_metadata.trailing_metadata_available;
if (s->parsed_trailers_only && s->trailing_metadata_available != nullptr) {
*s->trailing_metadata_available = true;
}
grpc_chttp2_maybe_complete_recv_initial_metadata(t, s);
}
static void recv_message_locked(
grpc_chttp2_stream* s, grpc_transport_stream_op_batch_payload* op_payload,
grpc_chttp2_transport* t) {
CHECK_EQ(s->recv_message_ready, nullptr);
s->recv_message_ready = op_payload->recv_message.recv_message_ready;
s->recv_message = op_payload->recv_message.recv_message;
s->recv_message->emplace();
s->recv_message_flags = op_payload->recv_message.flags;
s->call_failed_before_recv_message =
op_payload->recv_message.call_failed_before_recv_message;
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
}
static void recv_trailing_metadata_locked(
grpc_chttp2_stream* s, grpc_transport_stream_op_batch_payload* op_payload,
grpc_chttp2_transport* t) {
CHECK_EQ(s->collecting_stats, nullptr);
s->collecting_stats = op_payload->recv_trailing_metadata.collect_stats;
CHECK_EQ(s->recv_trailing_metadata_finished, nullptr);
s->recv_trailing_metadata_finished =
op_payload->recv_trailing_metadata.recv_trailing_metadata_ready;
s->recv_trailing_metadata =
op_payload->recv_trailing_metadata.recv_trailing_metadata;
s->final_metadata_requested = true;
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
}
static void perform_stream_op_locked(void* stream_op,
grpc_error_handle /*error_ignored*/) {
grpc_transport_stream_op_batch* op =
@ -1405,225 +1640,27 @@ static void perform_stream_op_locked(void* stream_op,
}
if (op->send_initial_metadata) {
if (!grpc_core::IsCallTracerInTransportEnabled()) {
if (s->call_tracer != nullptr) {
s->call_tracer->RecordAnnotation(
grpc_core::HttpAnnotation(grpc_core::HttpAnnotation::Type::kStart,
gpr_now(GPR_CLOCK_REALTIME))
.Add(s->t->flow_control.stats())
.Add(s->flow_control.stats()));
}
} else if (grpc_core::IsTraceRecordCallopsEnabled()) {
auto* call_tracer =
s->arena->GetContext<grpc_core::CallTracerInterface>();
if (call_tracer != nullptr && call_tracer->IsSampled()) {
call_tracer->RecordAnnotation(
grpc_core::HttpAnnotation(grpc_core::HttpAnnotation::Type::kStart,
gpr_now(GPR_CLOCK_REALTIME))
.Add(s->t->flow_control.stats())
.Add(s->flow_control.stats()));
}
}
if (t->is_client && t->channelz_socket != nullptr) {
t->channelz_socket->RecordStreamStartedFromLocal();
}
CHECK_EQ(s->send_initial_metadata_finished, nullptr);
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
s->send_initial_metadata_finished = add_closure_barrier(on_complete);
s->send_initial_metadata =
op_payload->send_initial_metadata.send_initial_metadata;
if (t->is_client) {
s->deadline = std::min(
s->deadline,
s->send_initial_metadata->get(grpc_core::GrpcTimeoutMetadata())
.value_or(grpc_core::Timestamp::InfFuture()));
}
if (contains_non_ok_status(s->send_initial_metadata)) {
s->seen_error = true;
}
if (!s->write_closed) {
if (t->is_client) {
if (t->closed_with_error.ok()) {
CHECK_EQ(s->id, 0u);
grpc_chttp2_list_add_waiting_for_concurrency(t, s);
maybe_start_some_streams(t);
} else {
s->trailing_metadata_buffer.Set(
grpc_core::GrpcStreamNetworkState(),
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
grpc_chttp2_cancel_stream(
t, s,
grpc_error_set_int(
GRPC_ERROR_CREATE_REFERENCING("Transport closed",
&t->closed_with_error, 1),
grpc_core::StatusIntProperty::kRpcStatus,
GRPC_STATUS_UNAVAILABLE),
false);
}
} else {
CHECK_NE(s->id, 0u);
grpc_chttp2_mark_stream_writable(t, s);
if (!(op->send_message &&
(op->payload->send_message.flags & GRPC_WRITE_BUFFER_HINT))) {
grpc_chttp2_initiate_write(
t, GRPC_CHTTP2_INITIATE_WRITE_SEND_INITIAL_METADATA);
}
}
} else {
s->send_initial_metadata = nullptr;
grpc_chttp2_complete_closure_step(
t, &s->send_initial_metadata_finished,
GRPC_ERROR_CREATE_REFERENCING(
"Attempt to send initial metadata after stream was closed",
&s->write_closed_error, 1),
"send_initial_metadata_finished");
}
send_initial_metadata_locked(op, s, op_payload, t, on_complete);
}
if (op->send_message) {
t->num_messages_in_next_write++;
grpc_core::global_stats().IncrementHttp2SendMessageSize(
op->payload->send_message.send_message->Length());
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
s->send_message_finished = add_closure_barrier(op->on_complete);
const uint32_t flags = op_payload->send_message.flags;
if (s->write_closed) {
op->payload->send_message.stream_write_closed = true;
// We should NOT return an error here, so as to avoid a cancel OP being
// started. The surface layer will notice that the stream has been closed
// for writes and fail the send message op.
grpc_chttp2_complete_closure_step(t, &s->send_message_finished,
absl::OkStatus(),
"fetching_send_message_finished");
} else {
uint8_t* frame_hdr = grpc_slice_buffer_tiny_add(
&s->flow_controlled_buffer, GRPC_HEADER_SIZE_IN_BYTES);
frame_hdr[0] = (flags & GRPC_WRITE_INTERNAL_COMPRESS) != 0;
size_t len = op_payload->send_message.send_message->Length();
frame_hdr[1] = static_cast<uint8_t>(len >> 24);
frame_hdr[2] = static_cast<uint8_t>(len >> 16);
frame_hdr[3] = static_cast<uint8_t>(len >> 8);
frame_hdr[4] = static_cast<uint8_t>(len);
s->call_tracer_wrapper.RecordOutgoingBytes(
{GRPC_HEADER_SIZE_IN_BYTES, len, 0});
s->next_message_end_offset =
s->flow_controlled_bytes_written +
static_cast<int64_t>(s->flow_controlled_buffer.length) +
static_cast<int64_t>(len);
if (flags & GRPC_WRITE_BUFFER_HINT) {
s->next_message_end_offset -= t->write_buffer_size;
s->write_buffering = true;
} else {
s->write_buffering = false;
}
grpc_slice* const slices =
op_payload->send_message.send_message->c_slice_buffer()->slices;
grpc_slice* const end =
slices + op_payload->send_message.send_message->Count();
for (grpc_slice* slice = slices; slice != end; slice++) {
grpc_slice_buffer_add(&s->flow_controlled_buffer,
grpc_core::CSliceRef(*slice));
}
int64_t notify_offset = s->next_message_end_offset;
if (notify_offset <= s->flow_controlled_bytes_written) {
grpc_chttp2_complete_closure_step(t, &s->send_message_finished,
absl::OkStatus(),
"fetching_send_message_finished");
} else {
grpc_chttp2_write_cb* cb = t->write_cb_pool;
if (cb == nullptr) {
cb = static_cast<grpc_chttp2_write_cb*>(gpr_malloc(sizeof(*cb)));
} else {
t->write_cb_pool = cb->next;
}
cb->call_at_byte = notify_offset;
cb->closure = s->send_message_finished;
s->send_message_finished = nullptr;
grpc_chttp2_write_cb** list = flags & GRPC_WRITE_THROUGH
? &s->on_write_finished_cbs
: &s->on_flow_controlled_cbs;
cb->next = *list;
*list = cb;
}
if (s->id != 0 &&
(!s->write_buffering ||
s->flow_controlled_buffer.length > t->write_buffer_size)) {
grpc_chttp2_mark_stream_writable(t, s);
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_SEND_MESSAGE);
}
}
send_message_locked(op, s, op_payload, t, on_complete);
}
if (op->send_trailing_metadata) {
CHECK_EQ(s->send_trailing_metadata_finished, nullptr);
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
s->send_trailing_metadata_finished = add_closure_barrier(on_complete);
s->send_trailing_metadata =
op_payload->send_trailing_metadata.send_trailing_metadata;
s->sent_trailing_metadata_op = op_payload->send_trailing_metadata.sent;
s->write_buffering = false;
if (contains_non_ok_status(s->send_trailing_metadata)) {
s->seen_error = true;
}
if (s->write_closed) {
s->send_trailing_metadata = nullptr;
s->sent_trailing_metadata_op = nullptr;
grpc_chttp2_complete_closure_step(
t, &s->send_trailing_metadata_finished,
op->payload->send_trailing_metadata.send_trailing_metadata->empty()
? absl::OkStatus()
: GRPC_ERROR_CREATE("Attempt to send trailing metadata after "
"stream was closed"),
"send_trailing_metadata_finished");
} else if (s->id != 0) {
// TODO(ctiller): check if there's flow control for any outstanding
// bytes before going writable
grpc_chttp2_mark_stream_writable(t, s);
grpc_chttp2_initiate_write(
t, GRPC_CHTTP2_INITIATE_WRITE_SEND_TRAILING_METADATA);
}
send_trailing_metadata_locked(op, s, op_payload, t, on_complete);
}
if (op->recv_initial_metadata) {
CHECK_EQ(s->recv_initial_metadata_ready, nullptr);
s->recv_initial_metadata_ready =
op_payload->recv_initial_metadata.recv_initial_metadata_ready;
s->recv_initial_metadata =
op_payload->recv_initial_metadata.recv_initial_metadata;
s->trailing_metadata_available =
op_payload->recv_initial_metadata.trailing_metadata_available;
if (s->parsed_trailers_only && s->trailing_metadata_available != nullptr) {
*s->trailing_metadata_available = true;
}
grpc_chttp2_maybe_complete_recv_initial_metadata(t, s);
recv_initial_metadata_locked(s, op_payload, t);
}
if (op->recv_message) {
CHECK_EQ(s->recv_message_ready, nullptr);
s->recv_message_ready = op_payload->recv_message.recv_message_ready;
s->recv_message = op_payload->recv_message.recv_message;
s->recv_message->emplace();
s->recv_message_flags = op_payload->recv_message.flags;
s->call_failed_before_recv_message =
op_payload->recv_message.call_failed_before_recv_message;
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
recv_message_locked(s, op_payload, t);
}
if (op->recv_trailing_metadata) {
CHECK_EQ(s->collecting_stats, nullptr);
s->collecting_stats = op_payload->recv_trailing_metadata.collect_stats;
CHECK_EQ(s->recv_trailing_metadata_finished, nullptr);
s->recv_trailing_metadata_finished =
op_payload->recv_trailing_metadata.recv_trailing_metadata_ready;
s->recv_trailing_metadata =
op_payload->recv_trailing_metadata.recv_trailing_metadata;
s->final_metadata_requested = true;
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
recv_trailing_metadata_locked(s, op_payload, t);
}
if (on_complete != nullptr) {

@ -23,7 +23,6 @@
#include "absl/status/status.h"
#include "absl/strings/str_cat.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/crash.h"

@ -25,7 +25,6 @@
#include "absl/strings/str_format.h"
#include <grpc/slice_buffer.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/chttp2/transport/internal.h"

@ -28,7 +28,6 @@
#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/chttp2/transport/internal.h"

@ -187,12 +187,11 @@ grpc_error_handle grpc_chttp2_settings_parser_parse(void* p,
"invalid value %u passed for %s", parser->value,
grpc_core::Http2Settings::WireIdToName(parser->id).c_str()));
}
if (GRPC_TRACE_FLAG_ENABLED(http)) {
LOG(INFO) << "CHTTP2:" << (t->is_client ? "CLI" : "SVR") << ":"
<< t->peer_string.as_string_view() << ": got setting "
<< grpc_core::Http2Settings::WireIdToName(parser->id)
<< " = " << parser->value;
}
GRPC_TRACE_LOG(http, INFO)
<< "CHTTP2:" << (t->is_client ? "CLI" : "SVR") << ":"
<< t->peer_string.as_string_view() << ": got setting "
<< grpc_core::Http2Settings::WireIdToName(parser->id) << " = "
<< parser->value;
} break;
}
}

@ -25,7 +25,6 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/ext/transport/chttp2/transport/flow_control.h"

@ -18,7 +18,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -331,13 +331,11 @@ absl::variant<size_t, absl::Status> grpc_chttp2_perform_read(
case GRPC_DTS_FH_8:
DCHECK_LT(cur, end);
t->incoming_stream_id |= (static_cast<uint32_t>(*cur));
if (GRPC_TRACE_FLAG_ENABLED(http)) {
LOG(INFO) << "INCOMING[" << t << "]: "
<< FrameTypeString(t->incoming_frame_type,
t->incoming_frame_flags)
<< " len:" << t->incoming_frame_size
<< absl::StrFormat(" id:0x%08x", t->incoming_stream_id);
}
GRPC_TRACE_LOG(http, INFO)
<< "INCOMING[" << t << "]: "
<< FrameTypeString(t->incoming_frame_type, t->incoming_frame_flags)
<< " len:" << t->incoming_frame_size
<< absl::StrFormat(" id:0x%08x", t->incoming_stream_id);
t->deframe_state = GRPC_DTS_FRAME;
err = init_frame_parser(t, requests_started);
if (!err.ok()) {
@ -453,10 +451,9 @@ static grpc_error_handle init_frame_parser(grpc_chttp2_transport* t,
case GRPC_CHTTP2_FRAME_GOAWAY:
return init_goaway_parser(t);
default:
if (GRPC_TRACE_FLAG_ENABLED(http)) {
LOG(ERROR) << "Unknown frame type "
<< absl::StrFormat("%02x", t->incoming_frame_type);
}
GRPC_TRACE_LOG(http, ERROR)
<< "Unknown frame type "
<< absl::StrFormat("%02x", t->incoming_frame_type);
return init_non_header_skip_frame_parser(t);
}
}
@ -790,10 +787,8 @@ static grpc_error_handle init_window_update_frame_parser(
grpc_chttp2_stream* s = t->incoming_stream =
grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
if (s == nullptr) {
if (GRPC_TRACE_FLAG_ENABLED(http)) {
LOG(ERROR) << "Stream " << t->incoming_stream_id
<< " not found, ignoring WINDOW_UPDATE";
}
GRPC_TRACE_LOG(http, ERROR) << "Stream " << t->incoming_stream_id
<< " not found, ignoring WINDOW_UPDATE";
return init_non_header_skip_frame_parser(t);
}
s->call_tracer_wrapper.RecordIncomingBytes({9, 0, 0});

@ -20,7 +20,6 @@
#include "absl/meta/type_traits.h"
#include "absl/random/distributions.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -18,7 +18,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -22,7 +22,6 @@
#include "absl/log/check.h"
#include "third_party/objective_c/Cronet/bidirectional_stream_c.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#ifdef GRPC_COMPILE_WITH_CRONET

@ -166,12 +166,10 @@ void HandshakeManager::CallNextHandshakerLocked(absl::Status error) {
error = GRPC_ERROR_CREATE("handshaker shutdown");
args_.endpoint.reset();
}
if (GRPC_TRACE_FLAG_ENABLED(handshaker)) {
LOG(INFO) << "handshake_manager " << this
<< ": handshaking complete -- scheduling "
"on_handshake_done with error="
<< error;
}
GRPC_TRACE_LOG(handshaker, INFO) << "handshake_manager " << this
<< ": handshaking complete -- scheduling "
"on_handshake_done with error="
<< error;
// Cancel deadline timer, since we're invoking the on_handshake_done
// callback now.
args_.event_engine->Cancel(deadline_timer_handle_);

@ -26,7 +26,6 @@
#include "absl/log/check.h"
#include "absl/log/log.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/channel/channel_args.h"

@ -33,7 +33,6 @@
#include "absl/strings/str_cat.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/channel/channel_fwd.h"

@ -34,7 +34,6 @@
#include <grpc/grpc.h>
#include <grpc/status.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/channel/call_finalization.h"

@ -468,13 +468,12 @@ void BaseCallData::SendMessage::Done(const ServerMetadata& metadata,
void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher,
bool allow_push_to_pipe) {
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << base_->LogTag()
<< " SendMessage.WakeInsideCombiner st=" << StateString(state_)
<< (state_ == State::kBatchCompleted
? absl::StrCat(" status=", completed_status_.ToString())
: "");
}
GRPC_TRACE_LOG(channel, INFO)
<< base_->LogTag()
<< " SendMessage.WakeInsideCombiner st=" << StateString(state_)
<< (state_ == State::kBatchCompleted
? absl::StrCat(" status=", completed_status_.ToString())
: "");
switch (state_) {
case State::kInitial:
case State::kIdle:
@ -502,12 +501,11 @@ void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher,
CHECK(push_.has_value());
auto r_push = (*push_)();
if (auto* p = r_push.value_if_ready()) {
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << base_->LogTag()
<< " SendMessage.WakeInsideCombiner push complete, "
"result="
<< (*p ? "true" : "false");
}
GRPC_TRACE_LOG(channel, INFO)
<< base_->LogTag()
<< " SendMessage.WakeInsideCombiner push complete, "
"result="
<< (*p ? "true" : "false");
// We haven't pulled through yet, so this certainly shouldn't succeed.
CHECK(!*p);
state_ = State::kCancelled;
@ -517,12 +515,11 @@ void BaseCallData::SendMessage::WakeInsideCombiner(Flusher* flusher,
CHECK(next_.has_value());
auto r_next = (*next_)();
if (auto* p = r_next.value_if_ready()) {
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << base_->LogTag()
<< " SendMessage.WakeInsideCombiner next complete, "
"result.has_value="
<< (p->has_value() ? "true" : "false");
}
GRPC_TRACE_LOG(channel, INFO)
<< base_->LogTag()
<< " SendMessage.WakeInsideCombiner next complete, "
"result.has_value="
<< (p->has_value() ? "true" : "false");
if (p->has_value()) {
batch_->payload->send_message.send_message->Swap((**p)->payload());
batch_->payload->send_message.flags = (**p)->flags();
@ -774,13 +771,12 @@ void BaseCallData::ReceiveMessage::Done(const ServerMetadata& metadata,
void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher,
bool allow_push_to_pipe) {
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << base_->LogTag()
<< " ReceiveMessage.WakeInsideCombiner st=" << StateString(state_)
<< " push?=" << (push_.has_value() ? "yes" : "no")
<< " next?=" << (next_.has_value() ? "yes" : "no")
<< " allow_push_to_pipe=" << (allow_push_to_pipe ? "yes" : "no");
}
GRPC_TRACE_LOG(channel, INFO)
<< base_->LogTag()
<< " ReceiveMessage.WakeInsideCombiner st=" << StateString(state_)
<< " push?=" << (push_.has_value() ? "yes" : "no")
<< " next?=" << (next_.has_value() ? "yes" : "no")
<< " allow_push_to_pipe=" << (allow_push_to_pipe ? "yes" : "no");
switch (state_) {
case State::kInitial:
case State::kIdle:
@ -865,12 +861,11 @@ void BaseCallData::ReceiveMessage::WakeInsideCombiner(Flusher* flusher,
p->cancelled() ? absl::CancelledError() : absl::OkStatus(),
"recv_message");
}
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << base_->LogTag()
<< " ReceiveMessage.WakeInsideCombiner next complete: "
<< (p->has_value() ? "got message" : "end of stream")
<< " new_state=" << StateString(state_);
}
GRPC_TRACE_LOG(channel, INFO)
<< base_->LogTag()
<< " ReceiveMessage.WakeInsideCombiner next complete: "
<< (p->has_value() ? "got message" : "end of stream")
<< " new_state=" << StateString(state_);
}
if (state_ != State::kPulledFromPipe &&
state_ != State::kCompletedWhilePulledFromPipe) {
@ -1079,15 +1074,14 @@ class ClientCallData::PollContext {
case SendInitialState::kForwarded: {
// Poll the promise once since we're waiting for it.
Poll<ServerMetadataHandle> poll = self_->promise_();
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << self_->LogTag()
<< " ClientCallData.PollContext.Run: poll="
<< PollToString(poll,
[](const ServerMetadataHandle& h) {
return h->DebugString();
})
<< "; " << self_->DebugString();
}
GRPC_TRACE_LOG(channel, INFO)
<< self_->LogTag() << " ClientCallData.PollContext.Run: poll="
<< PollToString(poll,
[](const ServerMetadataHandle& h) {
return h->DebugString();
})
<< "; " << self_->DebugString();
if (auto* r = poll.value_if_ready()) {
auto md = std::move(*r);
if (self_->send_message() != nullptr) {
@ -1749,12 +1743,10 @@ void ClientCallData::RecvTrailingMetadataReadyCallback(
void ClientCallData::RecvTrailingMetadataReady(grpc_error_handle error) {
Flusher flusher(this);
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << LogTag() << " ClientCallData.RecvTrailingMetadataReady "
<< "recv_trailing_state=" << StateString(recv_trailing_state_)
<< " error=" << error
<< " md=" << recv_trailing_metadata_->DebugString();
}
GRPC_TRACE_LOG(channel, INFO)
<< LogTag() << " ClientCallData.RecvTrailingMetadataReady "
<< "recv_trailing_state=" << StateString(recv_trailing_state_)
<< " error=" << error << " md=" << recv_trailing_metadata_->DebugString();
// If we were cancelled prior to receiving this callback, we should simply
// forward the callback up with the same error.
if (recv_trailing_state_ == RecvTrailingState::kCancelled) {
@ -2422,34 +2414,30 @@ void ServerCallData::WakeInsideCombiner(Flusher* flusher) {
if (promise_.has_value()) {
Poll<ServerMetadataHandle> poll;
poll = promise_();
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << LogTag() << ": WakeInsideCombiner poll="
<< PollToString(poll,
[](const ServerMetadataHandle& h) {
return h->DebugString();
})
.c_str()
<< "; send_initial_metadata="
<< (send_initial_metadata_ == nullptr
? "null"
: SendInitialMetadata::StateString(
send_initial_metadata_->state))
<< " send_trailing_metadata="
<< StateString(send_trailing_state_);
}
GRPC_TRACE_LOG(channel, INFO)
<< LogTag() << ": WakeInsideCombiner poll="
<< PollToString(
poll,
[](const ServerMetadataHandle& h) { return h->DebugString(); })
.c_str()
<< "; send_initial_metadata="
<< (send_initial_metadata_ == nullptr
? "null"
: SendInitialMetadata::StateString(
send_initial_metadata_->state))
<< " send_trailing_metadata=" << StateString(send_trailing_state_);
if (send_initial_metadata_ != nullptr &&
send_initial_metadata_->state ==
SendInitialMetadata::kQueuedAndPushedToPipe) {
CHECK(send_initial_metadata_->metadata_next_.has_value());
auto p = (*send_initial_metadata_->metadata_next_)();
if (GRPC_TRACE_FLAG_ENABLED(channel)) {
LOG(INFO) << LogTag()
<< ": WakeInsideCombiner send_initial_metadata poll="
<< PollToString(
p, [](const NextResult<ServerMetadataHandle>& h) {
return (*h)->DebugString();
});
}
GRPC_TRACE_LOG(channel, INFO)
<< LogTag() << ": WakeInsideCombiner send_initial_metadata poll="
<< PollToString(p, [](const NextResult<ServerMetadataHandle>& h) {
return (*h)->DebugString();
});
if (auto* nr = p.value_if_ready()) {
ServerMetadataHandle md = std::move(nr->value());
if (send_initial_metadata_->batch->payload->send_initial_metadata

@ -29,7 +29,6 @@
#include "absl/strings/str_split.h"
#include <grpc/compression.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/channel/channel_args.h"

@ -20,7 +20,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -21,7 +21,6 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/str_join.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -61,7 +61,6 @@
#include "absl/types/optional.h"
#include <grpc/event_engine/event_engine.h>
#include <grpc/support/log.h>
#include "src/core/lib/address_utils/parse_address.h"
#include "src/core/lib/address_utils/sockaddr_utils.h"

@ -335,9 +335,18 @@ void CFStreamEndpointImpl::DoWrite(
continue;
}
size_t written_size =
CFIndex written_size =
CFWriteStreamWrite(cf_write_stream_, slice.begin(), slice.size());
if (written_size < 0) {
auto status = CFErrorToStatus(CFWriteStreamCopyError(cf_write_stream_));
GRPC_TRACE_LOG(event_engine_endpoint, INFO)
<< "CFStream write error: " << status
<< ", written_size: " << written_size;
on_writable(status);
return;
}
total_written_size += written_size;
if (written_size < slice.size()) {
SliceBuffer written;

@ -16,7 +16,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#ifdef GRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK

@ -30,7 +30,6 @@
#include <grpc/event_engine/event_engine.h>
#include <grpc/status.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>

@ -20,7 +20,6 @@
#include "absl/status/status.h"
#include <grpc/support/atm.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/event_engine/posix_engine/event_poller.h"

@ -24,7 +24,6 @@
#include "absl/functional/any_invocable.h"
#include "absl/log/log.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/time.h>

@ -19,7 +19,6 @@
#include "absl/log/check.h"
#include <grpc/event_engine/event_engine.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/event_engine/resolved_address_internal.h"

@ -23,7 +23,6 @@
#include <grpc/event_engine/slice.h>
#include <grpc/slice.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/slice/slice_internal.h"

@ -23,7 +23,6 @@
#include "absl/time/clock.h"
#include "absl/time/time.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/time.h"

@ -24,7 +24,6 @@
#include "absl/strings/str_format.h"
#include "absl/strings/string_view.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -24,7 +24,6 @@
#include <grpc/slice.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -35,7 +35,6 @@
#include "upb/base/string_view.h"
#include "upb/mem/arena.hpp"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/slice/percent_encoding.h"

@ -21,7 +21,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/time.h>

@ -30,8 +30,6 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/directory_reader.h"
namespace grpc_core {

@ -27,7 +27,6 @@
#include "absl/log/log.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include <grpc/support/thd_id.h>
#include <grpc/support/time.h>

@ -20,7 +20,6 @@
#include "absl/log/log.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/time.h>

@ -166,14 +166,12 @@ class CallCombinerClosureList {
GRPC_CALL_COMBINER_START(call_combiner, closure.closure, closure.error,
closure.reason);
}
if (GRPC_TRACE_FLAG_ENABLED(call_combiner)) {
LOG(INFO) << "CallCombinerClosureList executing closure while already "
"holding call_combiner "
<< call_combiner
<< ": closure=" << closures_[0].closure->DebugString()
<< " error=" << StatusToString(closures_[0].error)
<< " reason=" << closures_[0].reason;
}
GRPC_TRACE_LOG(call_combiner, INFO)
<< "CallCombinerClosureList executing closure while already "
"holding call_combiner "
<< call_combiner << ": closure=" << closures_[0].closure->DebugString()
<< " error=" << StatusToString(closures_[0].error)
<< " reason=" << closures_[0].reason;
// This will release the call combiner.
ExecCtx::Run(DEBUG_LOCATION, closures_[0].closure, closures_[0].error);
closures_.clear();

@ -34,7 +34,6 @@
#include "absl/strings/str_cat.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
#include "src/core/lib/gprpp/crash.h"

@ -831,12 +831,11 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
grpc_core::ExecCtx::Get()->InvalidateNow();
}
if (GRPC_TRACE_FLAG_ENABLED(polling)) {
LOG(INFO) << "PS:" << pollset << " BEGIN_DONE:" << worker
<< " kick_state=" << kick_state_string(worker->state)
<< " shutdown=" << pollset->shutting_down
<< " kicked_without_poller: " << pollset->kicked_without_poller;
}
GRPC_TRACE_LOG(polling, INFO)
<< "PS:" << pollset << " BEGIN_DONE:" << worker
<< " kick_state=" << kick_state_string(worker->state)
<< " shutdown=" << pollset->shutting_down
<< " kicked_without_poller: " << pollset->kicked_without_poller;
// We release pollset lock in this function at a couple of places:
// 1. Briefly when assigning pollset to a neighborhood

@ -1062,12 +1062,11 @@ static grpc_error_handle pollset_work(grpc_pollset* pollset,
}
fd_end_poll(&watchers[i], 0, 0);
} else {
if (GRPC_TRACE_FLAG_ENABLED(polling)) {
LOG(INFO) << pollset << " got_event: " << pfds[i].fd
<< " r:" << ((pfds[i].revents & POLLIN_CHECK) != 0)
<< " w:" << ((pfds[i].revents & POLLOUT_CHECK) != 0)
<< " [" << pfds[i].revents << "]";
}
GRPC_TRACE_LOG(polling, INFO)
<< pollset << " got_event: " << pfds[i].fd
<< " r:" << ((pfds[i].revents & POLLIN_CHECK) != 0)
<< " w:" << ((pfds[i].revents & POLLOUT_CHECK) != 0) << " ["
<< pfds[i].revents << "]";
// This is a mitigation to prevent poll() from spinning on a
//* POLLHUP https://github.com/grpc/grpc/pull/13665
//

@ -30,7 +30,6 @@
#include "absl/strings/str_split.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
#include "src/core/lib/config/config_vars.h"

@ -26,7 +26,6 @@
#include <grpc/support/alloc.h>
#include <grpc/support/cpu.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/sync.h>

@ -25,7 +25,6 @@
#include "absl/log/log.h"
#include <grpc/fork.h>
#include <grpc/support/log.h>
//
// NOTE: FORKING IS NOT GENERALLY SUPPORTED, THIS IS ONLY INTENDED TO WORK

@ -16,7 +16,6 @@
#include "absl/log/log.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/iomgr/port.h"

@ -30,7 +30,6 @@
#include "absl/log/log.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/log_windows.h>
#include "src/core/lib/gprpp/crash.h"

@ -24,8 +24,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include "src/core/lib/experiments/experiments.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/iocp_windows.h"

@ -22,7 +22,6 @@
#include "absl/strings/str_format.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/crash.h"

@ -22,8 +22,6 @@
#ifdef GRPC_WINSOCK_SOCKET
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/thd.h"
#include "src/core/lib/iomgr/iocp_windows.h"

@ -21,7 +21,6 @@
#include <grpc/event_engine/event_engine.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/crash.h"

@ -25,7 +25,6 @@
#include <sys/types.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>

@ -28,7 +28,6 @@
#include "absl/strings/str_format.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/log_windows.h>
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>

@ -40,7 +40,6 @@
#include "absl/log/check.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include "src/core/lib/gprpp/crash.h"

@ -19,7 +19,6 @@
#include "src/core/lib/iomgr/socket_mutator.h"
#include <grpc/impl/grpc_types.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/sync.h>

@ -25,8 +25,6 @@
#include <sys/socket.h>
#include <sys/types.h>
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"

@ -28,7 +28,6 @@
#include <unistd.h>
#include <grpc/impl/grpc_types.h>
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/sockaddr.h"

@ -22,8 +22,6 @@
#ifdef GRPC_WINDOWS_SOCKETUTILS
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/core/lib/iomgr/socket_utils.h"

@ -29,7 +29,6 @@
#include <grpc/event_engine/endpoint_config.h>
#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/log_windows.h>
#include "src/core/lib/address_utils/sockaddr_utils.h"

@ -1255,9 +1255,8 @@ static bool tcp_write_with_timestamps(grpc_tcp* tcp, struct msghdr* msg,
uint32_t opt = grpc_core::kTimestampingSocketOptions;
if (setsockopt(tcp->fd, SOL_SOCKET, SO_TIMESTAMPING,
static_cast<void*>(&opt), sizeof(opt)) != 0) {
if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
LOG(ERROR) << "Failed to set timestamping options on the socket.";
}
GRPC_TRACE_LOG(tcp, ERROR)
<< "Failed to set timestamping options on the socket.";
return false;
}
tcp->bytes_counter = -1;
@ -1341,9 +1340,7 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
auto next_cmsg = CMSG_NXTHDR(msg, cmsg);
cmsghdr* opt_stats = nullptr;
if (next_cmsg == nullptr) {
if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
LOG(ERROR) << "Received timestamp without extended error";
}
GRPC_TRACE_LOG(tcp, ERROR) << "Received timestamp without extended error";
return cmsg;
}
@ -1353,9 +1350,7 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
opt_stats = next_cmsg;
next_cmsg = CMSG_NXTHDR(msg, opt_stats);
if (next_cmsg == nullptr) {
if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
LOG(ERROR) << "Received timestamp without extended error";
}
GRPC_TRACE_LOG(tcp, ERROR) << "Received timestamp without extended error";
return opt_stats;
}
}
@ -1363,9 +1358,7 @@ struct cmsghdr* process_timestamp(grpc_tcp* tcp, msghdr* msg,
if (!(next_cmsg->cmsg_level == SOL_IP || next_cmsg->cmsg_level == SOL_IPV6) ||
!(next_cmsg->cmsg_type == IP_RECVERR ||
next_cmsg->cmsg_type == IPV6_RECVERR)) {
if (GRPC_TRACE_FLAG_ENABLED(tcp)) {
LOG(ERROR) << "Unexpected control message";
}
GRPC_TRACE_LOG(tcp, ERROR) << "Unexpected control message";
return cmsg;
}

@ -37,7 +37,6 @@
#include "absl/strings/str_cat.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/address_utils/parse_address.h"
#include "src/core/lib/gprpp/crash.h"

@ -26,8 +26,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/crash.h"
void grpc_create_socketpair_if_unix(int /* sv */[2]) {

@ -28,7 +28,6 @@
#include "absl/strings/str_cat.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/address_utils/parse_address.h"
#include "src/core/lib/gprpp/crash.h"

@ -26,8 +26,6 @@
#include <sys/eventfd.h>
#include <unistd.h>
#include <grpc/support/log.h>
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/strerror.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"

@ -19,7 +19,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -16,7 +16,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -30,7 +30,6 @@
#include <grpc/grpc_audit_logging.h>
#include <grpc/support/json.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/gprpp/sync.h"

@ -20,7 +20,6 @@
#include "absl/log/check.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/security/authorization/audit_logging.h"

@ -34,7 +34,6 @@
#include <grpc/grpc_audit_logging.h>
#include <grpc/support/json.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/matchers/matchers.h"

@ -27,7 +27,6 @@
#include <grpc/grpc_audit_logging.h>
#include <grpc/support/json.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
namespace grpc_core {

@ -25,7 +25,6 @@
#include "absl/log/log.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
const size_t kBiosDataBufferSize = 256;

@ -26,7 +26,6 @@
#include <windows.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include "src/core/lib/gprpp/crash.h"

@ -22,7 +22,6 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>

@ -26,7 +26,6 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/str_join.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/debug/trace.h"

@ -34,7 +34,6 @@
#include <grpc/grpc_security.h>
#include <grpc/support/alloc.h>
#include <grpc/support/json.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>

@ -33,7 +33,6 @@
#include <grpc/grpc_security.h>
#include <grpc/support/alloc.h>
#include <grpc/support/json.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>

@ -27,7 +27,6 @@
#include "absl/strings/str_format.h"
#include "absl/strings/string_view.h"
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/debug/trace.h"

@ -21,7 +21,6 @@
#include <grpc/credentials.h>
#include <grpc/grpc_security.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
void grpc_tls_certificate_distributor::SetKeyMaterials(

@ -25,7 +25,6 @@
#include "absl/strings/string_view.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>

@ -23,7 +23,6 @@
#include <grpc/grpc_security_constants.h>
#include <grpc/impl/channel_arg_names.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/lib/channel/channel_args.h"

@ -35,7 +35,6 @@
#include <grpc/grpc_security_constants.h>
#include <grpc/impl/channel_arg_names.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>

@ -23,7 +23,6 @@
#include "absl/log/check.h"
#include <grpc/grpc_security_constants.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include "src/core/handshaker/security/security_handshaker.h"

@ -30,7 +30,6 @@
#include <grpc/slice.h>
#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include "src/core/lib/security/security_connector/load_system_roots.h"
#include "src/core/lib/slice/slice_internal.h"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save