grpc 1.65.0 → 1.65.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +1 -1
- data/src/core/client_channel/subchannel.cc +10 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +6 -6
- data/src/core/ext/transport/inproc/inproc_transport.cc +2 -2
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +2 -2
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +7 -10
- data/src/core/lib/compression/message_compress.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +6 -6
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +12 -6
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +3 -2
- data/src/core/lib/event_engine/windows/win_socket.cc +4 -2
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -4
- data/src/core/lib/experiments/config.cc +11 -9
- data/src/core/lib/experiments/experiments.cc +1 -1
- data/src/core/lib/experiments/experiments.h +1 -2
- data/src/core/lib/gprpp/dual_ref_counted.h +30 -30
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -4
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -17
- data/src/core/lib/iomgr/socket_windows.cc +3 -3
- data/src/core/lib/iomgr/tcp_posix.cc +2 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +9 -12
- data/src/core/lib/iomgr/tcp_server_windows.cc +2 -2
- data/src/core/lib/promise/party.cc +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +2 -2
- data/src/core/load_balancing/grpclb/grpclb.cc +14 -15
- data/src/core/server/server.cc +1 -1
- data/src/core/util/log.cc +10 -8
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -15
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +7 -61
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +43 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +31 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +22 -10
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +6 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +26 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +83 -33
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -8
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +14 -13
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +22 -16
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +15 -15
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +38 -27
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +59 -20
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f7fb00b001baa72da1610e37b806197d5be662256faa1fe7b48a6f7f5c27017
|
4
|
+
data.tar.gz: b36119a3b270a2a66827949490d9e708ac3df7abbbb55dc74e55ea6bc3157f58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55ff653a9ed98a3d3122ca80187d6a8897e40b998bd0ad6e68007244939a789fb9f11733784018456e312120c75926530936bc897980aa9dde6485fa1da37ed4
|
7
|
+
data.tar.gz: a20230c8357f4909d26c4f92818d4caa276660b8ee6d668b41c58fe835da6fca97ba75f9a1c98e569c62f699c8acbcddf4c50382a38695b5dbc69188ad07dbcd
|
data/Makefile
CHANGED
@@ -758,8 +758,10 @@ void Subchannel::OnRetryTimer() {
|
|
758
758
|
|
759
759
|
void Subchannel::OnRetryTimerLocked() {
|
760
760
|
if (shutdown_) return;
|
761
|
-
|
762
|
-
|
761
|
+
if (GRPC_TRACE_FLAG_ENABLED(subchannel)) {
|
762
|
+
LOG(INFO) << "subchannel " << this << " " << key_.ToString()
|
763
|
+
<< ": backoff delay elapsed, reporting IDLE";
|
764
|
+
}
|
763
765
|
SetConnectivityStateLocked(GRPC_CHANNEL_IDLE, absl::OkStatus());
|
764
766
|
}
|
765
767
|
|
@@ -803,11 +805,12 @@ void Subchannel::OnConnectingFinishedLocked(grpc_error_handle error) {
|
|
803
805
|
if (connecting_result_.transport == nullptr || !PublishTransportLocked()) {
|
804
806
|
const Duration time_until_next_attempt =
|
805
807
|
next_attempt_time_ - Timestamp::Now();
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
808
|
+
if (GRPC_TRACE_FLAG_ENABLED(subchannel)) {
|
809
|
+
LOG(INFO) << "subchannel " << this << " " << key_.ToString()
|
810
|
+
<< ": connect failed (" << StatusToString(error)
|
811
|
+
<< "), backing off for " << time_until_next_attempt.millis()
|
812
|
+
<< " ms";
|
813
|
+
}
|
811
814
|
SetConnectivityStateLocked(GRPC_CHANNEL_TRANSIENT_FAILURE,
|
812
815
|
grpc_error_to_absl_status(error));
|
813
816
|
retry_timer_handle_ = event_engine_->RunAfter(
|
@@ -168,10 +168,12 @@ void Chttp2Connector::OnHandshakeDone(void* arg, grpc_error_handle error) {
|
|
168
168
|
&self->on_receive_settings_, self->args_.interested_parties, nullptr);
|
169
169
|
self->timer_handle_ = self->event_engine_->RunAfter(
|
170
170
|
self->args_.deadline - Timestamp::Now(),
|
171
|
-
[self = self->RefAsSubclass<Chttp2Connector>()] {
|
171
|
+
[self = self->RefAsSubclass<Chttp2Connector>()]() mutable {
|
172
172
|
ApplicationCallbackExecCtx callback_exec_ctx;
|
173
173
|
ExecCtx exec_ctx;
|
174
174
|
self->OnTimeout();
|
175
|
+
// Ensure the Chttp2Connector is deleted under an ExecCtx.
|
176
|
+
self.reset();
|
175
177
|
});
|
176
178
|
} else {
|
177
179
|
// If the handshaking succeeded but there is no endpoint, then the
|
@@ -1735,8 +1735,8 @@ void grpc_chttp2_keepalive_timeout(
|
|
1735
1735
|
grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
|
1736
1736
|
t->combiner->Run(
|
1737
1737
|
grpc_core::NewClosure([t](grpc_error_handle) {
|
1738
|
-
|
1739
|
-
|
1738
|
+
GRPC_TRACE_LOG(http, INFO) << t->peer_string.as_string_view()
|
1739
|
+
<< ": Keepalive timeout. Closing transport.";
|
1740
1740
|
send_goaway(
|
1741
1741
|
t.get(),
|
1742
1742
|
grpc_error_set_int(GRPC_ERROR_CREATE("keepalive_timeout"),
|
@@ -1756,8 +1756,8 @@ void grpc_chttp2_ping_timeout(
|
|
1756
1756
|
grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
|
1757
1757
|
t->combiner->Run(
|
1758
1758
|
grpc_core::NewClosure([t](grpc_error_handle) {
|
1759
|
-
|
1760
|
-
|
1759
|
+
GRPC_TRACE_LOG(http, INFO) << t->peer_string.as_string_view()
|
1760
|
+
<< ": Ping timeout. Closing transport.";
|
1761
1761
|
send_goaway(
|
1762
1762
|
t.get(),
|
1763
1763
|
grpc_error_set_int(GRPC_ERROR_CREATE("ping_timeout"),
|
@@ -1777,8 +1777,8 @@ void grpc_chttp2_settings_timeout(
|
|
1777
1777
|
grpc_core::RefCountedPtr<grpc_chttp2_transport> t) {
|
1778
1778
|
t->combiner->Run(
|
1779
1779
|
grpc_core::NewClosure([t](grpc_error_handle) {
|
1780
|
-
|
1781
|
-
|
1780
|
+
GRPC_TRACE_LOG(http, INFO) << t->peer_string.as_string_view()
|
1781
|
+
<< ": Settings timeout. Closing transport.";
|
1782
1782
|
send_goaway(
|
1783
1783
|
t.get(),
|
1784
1784
|
grpc_error_set_int(GRPC_ERROR_CREATE("settings_timeout"),
|
@@ -70,8 +70,8 @@ class InprocServerTransport final : public ServerTransport {
|
|
70
70
|
void SetPollset(grpc_stream*, grpc_pollset*) override {}
|
71
71
|
void SetPollsetSet(grpc_stream*, grpc_pollset_set*) override {}
|
72
72
|
void PerformOp(grpc_transport_op* op) override {
|
73
|
-
|
74
|
-
|
73
|
+
GRPC_TRACE_LOG(inproc, INFO)
|
74
|
+
<< "inproc server op: " << grpc_transport_op_string(op);
|
75
75
|
if (op->start_connectivity_watch != nullptr) {
|
76
76
|
MutexLock lock(&state_tracker_mu_);
|
77
77
|
state_tracker_.AddWatcher(op->start_connectivity_watch_state,
|
@@ -330,8 +330,8 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
330
330
|
// Log connection via proxy.
|
331
331
|
std::string proxy_name(grpc_endpoint_get_peer(args->endpoint));
|
332
332
|
std::string server_name_string(*server_name);
|
333
|
-
|
334
|
-
|
333
|
+
VLOG(2) << "Connecting to server " << server_name_string << " via HTTP proxy "
|
334
|
+
<< proxy_name;
|
335
335
|
// Construct HTTP CONNECT request.
|
336
336
|
grpc_http_request request;
|
337
337
|
request.method = const_cast<char*>("CONNECT");
|
@@ -220,13 +220,11 @@ absl::optional<std::string> HttpProxyMapper::MapName(
|
|
220
220
|
return absl::nullopt;
|
221
221
|
}
|
222
222
|
if (uri->scheme() == "unix") {
|
223
|
-
|
224
|
-
std::string(server_uri).c_str());
|
223
|
+
VLOG(2) << "not using proxy for Unix domain socket '" << server_uri << "'";
|
225
224
|
return absl::nullopt;
|
226
225
|
}
|
227
226
|
if (uri->scheme() == "vsock") {
|
228
|
-
|
229
|
-
std::string(server_uri).c_str());
|
227
|
+
VLOG(2) << "not using proxy for VSock '" << server_uri << "'";
|
230
228
|
return absl::nullopt;
|
231
229
|
}
|
232
230
|
// Prefer using 'no_grpc_proxy'. Fallback on 'no_proxy' if it is not set.
|
@@ -239,18 +237,17 @@ absl::optional<std::string> HttpProxyMapper::MapName(
|
|
239
237
|
std::string server_port;
|
240
238
|
if (!SplitHostPort(absl::StripPrefix(uri->path(), "/"), &server_host,
|
241
239
|
&server_port)) {
|
242
|
-
|
243
|
-
|
244
|
-
"
|
245
|
-
std::string(server_uri).c_str());
|
240
|
+
VLOG(2) << "unable to split host and port, not checking no_proxy list "
|
241
|
+
"for host '"
|
242
|
+
<< server_uri << "'";
|
246
243
|
} else {
|
247
244
|
auto address = StringToSockaddr(server_host, 0);
|
248
245
|
if (AddressIncluded(address.ok()
|
249
246
|
? absl::optional<grpc_resolved_address>(*address)
|
250
247
|
: absl::nullopt,
|
251
248
|
server_host, *no_proxy_str)) {
|
252
|
-
|
253
|
-
|
249
|
+
VLOG(2) << "not using proxy for host in no_proxy list '" << server_uri
|
250
|
+
<< "'";
|
254
251
|
return absl::nullopt;
|
255
252
|
}
|
256
253
|
}
|
@@ -62,17 +62,17 @@ static int zlib_body(z_stream* zs, grpc_slice_buffer* input,
|
|
62
62
|
}
|
63
63
|
r = flate(zs, flush);
|
64
64
|
if (r < 0 && r != Z_BUF_ERROR /* not fatal */) {
|
65
|
-
|
65
|
+
VLOG(2) << "zlib error (" << r << ")";
|
66
66
|
goto error;
|
67
67
|
}
|
68
68
|
} while (zs->avail_out == 0);
|
69
69
|
if (zs->avail_in) {
|
70
|
-
|
70
|
+
VLOG(2) << "zlib: not all input consumed";
|
71
71
|
goto error;
|
72
72
|
}
|
73
73
|
}
|
74
74
|
if (r != Z_STREAM_END) {
|
75
|
-
|
75
|
+
VLOG(2) << "zlib: Data error";
|
76
76
|
goto error;
|
77
77
|
}
|
78
78
|
|
@@ -356,7 +356,8 @@ Epoll1Poller::Epoll1Poller(Scheduler* scheduler)
|
|
356
356
|
wakeup_fd_ = *CreateWakeupFd();
|
357
357
|
CHECK(wakeup_fd_ != nullptr);
|
358
358
|
CHECK_GE(g_epoll_set_.epfd, 0);
|
359
|
-
|
359
|
+
GRPC_TRACE_LOG(event_engine_poller, INFO)
|
360
|
+
<< "grpc epoll fd: " << g_epoll_set_.epfd;
|
360
361
|
struct epoll_event ev;
|
361
362
|
ev.events = static_cast<uint32_t>(EPOLLIN | EPOLLET);
|
362
363
|
ev.data.ptr = wakeup_fd_.get();
|
@@ -1295,9 +1295,9 @@ PosixEndpointImpl::PosixEndpointImpl(EventHandle* handle,
|
|
1295
1295
|
}
|
1296
1296
|
|
1297
1297
|
if (zerocopy_enabled) {
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1298
|
+
VLOG(2) << "Tx-zero copy enabled for gRPC sends. RLIMIT_MEMLOCK value "
|
1299
|
+
<< "=" << GetRLimitMemLockMax()
|
1300
|
+
<< ",ulimit hard memlock value = " << GetUlimitHardMemLock();
|
1301
1301
|
}
|
1302
1302
|
}
|
1303
1303
|
#endif // GRPC_LINUX_ERRQUEUE
|
@@ -184,7 +184,7 @@ class TcpZerocopySendCtx {
|
|
184
184
|
if (send_records_ == nullptr || free_send_records_ == nullptr) {
|
185
185
|
gpr_free(send_records_);
|
186
186
|
gpr_free(free_send_records_);
|
187
|
-
|
187
|
+
VLOG(2) << "Disabling TCP TX zerocopy due to memory pressure.\n";
|
188
188
|
memory_limited_ = true;
|
189
189
|
enabled_ = false;
|
190
190
|
} else {
|
@@ -345,14 +345,14 @@ absl::StatusOr<int> ListenerContainerAddWildcardAddresses(
|
|
345
345
|
}
|
346
346
|
if (assigned_port > 0) {
|
347
347
|
if (!v6_sock.ok()) {
|
348
|
-
|
349
|
-
|
350
|
-
|
348
|
+
VLOG(2) << "Failed to add :: listener, the environment may not support "
|
349
|
+
"IPv6: "
|
350
|
+
<< v6_sock.status();
|
351
351
|
}
|
352
352
|
if (!v4_sock.ok()) {
|
353
|
-
|
354
|
-
|
355
|
-
|
353
|
+
VLOG(2) << "Failed to add 0.0.0.0 listener, "
|
354
|
+
"the environment may not support IPv4: "
|
355
|
+
<< v4_sock.status();
|
356
356
|
}
|
357
357
|
return assigned_port;
|
358
358
|
} else {
|
@@ -627,12 +627,16 @@ void PosixSocketWrapper::TrySetSocketTcpUserTimeout(
|
|
627
627
|
// if it is available.
|
628
628
|
if (g_socket_supports_tcp_user_timeout.load() == 0) {
|
629
629
|
if (0 != getsockopt(fd_, IPPROTO_TCP, TCP_USER_TIMEOUT, &newval, &len)) {
|
630
|
-
|
631
|
-
|
630
|
+
// This log is intentionally not protected behind a flag, so that users
|
631
|
+
// know that TCP_USER_TIMEOUT is not being used.
|
632
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
633
|
+
<< "TCP_USER_TIMEOUT is not available. TCP_USER_TIMEOUT "
|
634
|
+
"won't be used thereafter";
|
632
635
|
g_socket_supports_tcp_user_timeout.store(-1);
|
633
636
|
} else {
|
634
|
-
|
635
|
-
|
637
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
638
|
+
<< "TCP_USER_TIMEOUT is available. TCP_USER_TIMEOUT will be "
|
639
|
+
"used thereafter";
|
636
640
|
g_socket_supports_tcp_user_timeout.store(1);
|
637
641
|
}
|
638
642
|
}
|
@@ -681,7 +685,8 @@ bool PosixSocketWrapper::IsIpv6LoopbackAvailable() {
|
|
681
685
|
int fd = socket(AF_INET6, SOCK_STREAM, 0);
|
682
686
|
bool loopback_available = false;
|
683
687
|
if (fd < 0) {
|
684
|
-
|
688
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
689
|
+
<< "Disabling AF_INET6 sockets because socket() failed.";
|
685
690
|
} else {
|
686
691
|
sockaddr_in6 addr;
|
687
692
|
memset(&addr, 0, sizeof(addr));
|
@@ -690,7 +695,8 @@ bool PosixSocketWrapper::IsIpv6LoopbackAvailable() {
|
|
690
695
|
if (bind(fd, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) == 0) {
|
691
696
|
loopback_available = true;
|
692
697
|
} else {
|
693
|
-
|
698
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
699
|
+
<< "Disabling AF_INET6 sockets because ::1 is not available.";
|
694
700
|
}
|
695
701
|
close(fd);
|
696
702
|
}
|
@@ -36,6 +36,7 @@
|
|
36
36
|
#include <grpc/support/thd_id.h>
|
37
37
|
|
38
38
|
#include "src/core/lib/backoff/backoff.h"
|
39
|
+
#include "src/core/lib/debug/trace_impl.h"
|
39
40
|
#include "src/core/lib/event_engine/common_closures.h"
|
40
41
|
#include "src/core/lib/event_engine/thread_local.h"
|
41
42
|
#include "src/core/lib/event_engine/trace.h"
|
@@ -266,7 +267,6 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread() {
|
|
266
267
|
}
|
267
268
|
|
268
269
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Quiesce() {
|
269
|
-
LOG(INFO) << "WorkStealingThreadPoolImpl::Quiesce";
|
270
270
|
SetShutdown(true);
|
271
271
|
// Wait until all threads have exited.
|
272
272
|
// Note that if this is a threadpool thread then we won't exit this thread
|
@@ -318,7 +318,8 @@ bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::IsQuiesced() {
|
|
318
318
|
}
|
319
319
|
|
320
320
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::PrepareFork() {
|
321
|
-
|
321
|
+
LOG_IF(INFO, GRPC_TRACE_FLAG_ENABLED(event_engine))
|
322
|
+
<< "WorkStealingThreadPoolImpl::PrepareFork";
|
322
323
|
SetForking(true);
|
323
324
|
work_signal_.SignalAll();
|
324
325
|
auto threads_were_shut_down = living_thread_count_.BlockUntilThreadCount(
|
@@ -71,7 +71,8 @@ void WinSocket::Shutdown() {
|
|
71
71
|
&ioctl_num_bytes, NULL, NULL);
|
72
72
|
if (status != 0) {
|
73
73
|
char* utf8_message = gpr_format_message(WSAGetLastError());
|
74
|
-
|
74
|
+
GRPC_TRACE_LOG(event_engine_endpoint, INFO)
|
75
|
+
<< "Unable to retrieve DisconnectEx pointer : " << utf8_message;
|
75
76
|
gpr_free(utf8_message);
|
76
77
|
} else if (DisconnectEx(socket_, NULL, 0, 0) == FALSE) {
|
77
78
|
auto last_error = WSAGetLastError();
|
@@ -79,7 +80,8 @@ void WinSocket::Shutdown() {
|
|
79
80
|
// error, and log all others.
|
80
81
|
if (last_error != WSAENOTCONN) {
|
81
82
|
char* utf8_message = gpr_format_message(last_error);
|
82
|
-
|
83
|
+
GRPC_TRACE_LOG(event_engine_endpoint, INFO)
|
84
|
+
<< "DisconnectEx failed: " << utf8_message;
|
83
85
|
gpr_free(utf8_message);
|
84
86
|
}
|
85
87
|
}
|
@@ -42,8 +42,8 @@ constexpr int kMaxWSABUFCount = 16;
|
|
42
42
|
void DumpSliceBuffer(SliceBuffer* buffer, absl::string_view context_string) {
|
43
43
|
for (size_t i = 0; i < buffer->Count(); i++) {
|
44
44
|
auto str = buffer->MutableSliceAt(i).as_string_view();
|
45
|
-
|
46
|
-
|
45
|
+
GRPC_TRACE_LOG(event_engine_endpoint, INFO)
|
46
|
+
<< context_string << ": " << str;
|
47
47
|
}
|
48
48
|
}
|
49
49
|
|
@@ -159,8 +159,9 @@ bool WindowsEndpoint::Write(absl::AnyInvocable<void(absl::Status)> on_writable,
|
|
159
159
|
if (GRPC_TRACE_FLAG_ENABLED(event_engine_endpoint_data)) {
|
160
160
|
for (size_t i = 0; i < data->Count(); i++) {
|
161
161
|
auto str = data->RefSlice(i).as_string_view();
|
162
|
-
|
163
|
-
|
162
|
+
GRPC_TRACE_LOG(event_engine_endpoint, INFO)
|
163
|
+
<< "WindowsEndpoint::" << this
|
164
|
+
<< " WRITE (peer=" << peer_address_string_ << "): " << str;
|
164
165
|
}
|
165
166
|
}
|
166
167
|
CHECK(data->Count() <= UINT_MAX);
|
@@ -24,6 +24,7 @@
|
|
24
24
|
|
25
25
|
#include "absl/functional/any_invocable.h"
|
26
26
|
#include "absl/log/check.h"
|
27
|
+
#include "absl/log/log.h"
|
27
28
|
#include "absl/strings/str_join.h"
|
28
29
|
#include "absl/strings/str_split.h"
|
29
30
|
#include "absl/strings/string_view.h"
|
@@ -227,19 +228,20 @@ void PrintExperimentsList() {
|
|
227
228
|
}
|
228
229
|
if (experiment_status.empty()) {
|
229
230
|
if (!defaulted_on_experiments.empty()) {
|
230
|
-
|
231
|
-
absl::StrJoin(defaulted_on_experiments, ", ")
|
231
|
+
VLOG(2) << "gRPC experiments enabled: "
|
232
|
+
<< absl::StrJoin(defaulted_on_experiments, ", ");
|
232
233
|
}
|
233
234
|
} else {
|
234
235
|
if (defaulted_on_experiments.empty()) {
|
235
|
-
|
236
|
-
absl::StrJoin(experiment_status, ", ",
|
237
|
-
|
236
|
+
VLOG(2) << "gRPC experiments: "
|
237
|
+
<< absl::StrJoin(experiment_status, ", ",
|
238
|
+
absl::PairFormatter(":"));
|
238
239
|
} else {
|
239
|
-
|
240
|
-
absl::StrJoin(experiment_status, ", ",
|
241
|
-
|
242
|
-
|
240
|
+
VLOG(2) << "gRPC experiments: "
|
241
|
+
<< absl::StrJoin(experiment_status, ", ",
|
242
|
+
absl::PairFormatter(":"))
|
243
|
+
<< "; default-enabled: "
|
244
|
+
<< absl::StrJoin(defaulted_on_experiments, ", ");
|
243
245
|
}
|
244
246
|
}
|
245
247
|
}
|
@@ -501,7 +501,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
|
|
501
501
|
additional_constraints_work_serializer_clears_time_cache, nullptr, 0, true,
|
502
502
|
true},
|
503
503
|
{"work_serializer_dispatch", description_work_serializer_dispatch,
|
504
|
-
additional_constraints_work_serializer_dispatch, nullptr, 0,
|
504
|
+
additional_constraints_work_serializer_dispatch, nullptr, 0, false, true},
|
505
505
|
};
|
506
506
|
|
507
507
|
} // namespace grpc_core
|
@@ -158,8 +158,7 @@ inline bool IsTraceRecordCallopsEnabled() { return true; }
|
|
158
158
|
inline bool IsUnconstrainedMaxQuotaBufferSizeEnabled() { return false; }
|
159
159
|
#define GRPC_EXPERIMENT_IS_INCLUDED_WORK_SERIALIZER_CLEARS_TIME_CACHE
|
160
160
|
inline bool IsWorkSerializerClearsTimeCacheEnabled() { return true; }
|
161
|
-
|
162
|
-
inline bool IsWorkSerializerDispatchEnabled() { return true; }
|
161
|
+
inline bool IsWorkSerializerDispatchEnabled() { return false; }
|
163
162
|
#endif
|
164
163
|
|
165
164
|
#else
|
@@ -93,9 +93,9 @@ class DualRefCounted : public Impl {
|
|
93
93
|
#ifndef NDEBUG
|
94
94
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
95
95
|
if (trace_ != nullptr) {
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
VLOG(2) << trace_ << ":" << this << " unref " << strong_refs << " -> "
|
97
|
+
<< strong_refs - 1 << ", weak_ref " << weak_refs << " -> "
|
98
|
+
<< weak_refs + 1;
|
99
99
|
}
|
100
100
|
CHECK_GT(strong_refs, 0u);
|
101
101
|
#endif
|
@@ -112,10 +112,10 @@ class DualRefCounted : public Impl {
|
|
112
112
|
#ifndef NDEBUG
|
113
113
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
114
114
|
if (trace_ != nullptr) {
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
115
|
+
VLOG(2) << trace_ << ":" << this << " " << location.file() << ":"
|
116
|
+
<< location.line() << " unref " << strong_refs << " -> "
|
117
|
+
<< strong_refs - 1 << ", weak_ref " << weak_refs << " -> "
|
118
|
+
<< weak_refs + 1 << ") " << reason;
|
119
119
|
}
|
120
120
|
CHECK_GT(strong_refs, 0u);
|
121
121
|
#else
|
@@ -137,9 +137,9 @@ class DualRefCounted : public Impl {
|
|
137
137
|
#ifndef NDEBUG
|
138
138
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
139
139
|
if (trace_ != nullptr) {
|
140
|
-
|
141
|
-
|
142
|
-
|
140
|
+
VLOG(2) << trace_ << ":" << this << " ref_if_non_zero " << strong_refs
|
141
|
+
<< " -> " << strong_refs + 1 << " (weak_refs=" << weak_refs
|
142
|
+
<< ")";
|
143
143
|
}
|
144
144
|
#endif
|
145
145
|
if (strong_refs == 0) return nullptr;
|
@@ -156,10 +156,10 @@ class DualRefCounted : public Impl {
|
|
156
156
|
#ifndef NDEBUG
|
157
157
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
158
158
|
if (trace_ != nullptr) {
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
159
|
+
VLOG(2) << trace_ << ":" << this << " " << location.file() << ":"
|
160
|
+
<< location.line() << " ref_if_non_zero " << strong_refs
|
161
|
+
<< " -> " << strong_refs + 1 << " (weak_refs=" << weak_refs
|
162
|
+
<< ") " << reason;
|
163
163
|
}
|
164
164
|
#else
|
165
165
|
// Avoid unused-parameter warnings for debug-only parameters
|
@@ -214,8 +214,8 @@ class DualRefCounted : public Impl {
|
|
214
214
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
215
215
|
const uint32_t strong_refs = GetStrongRefs(prev_ref_pair);
|
216
216
|
if (trace != nullptr) {
|
217
|
-
|
218
|
-
|
217
|
+
VLOG(2) << trace << ":" << this << " weak_unref " << weak_refs << " -> "
|
218
|
+
<< weak_refs - 1 << " (refs=" << strong_refs << ")";
|
219
219
|
}
|
220
220
|
CHECK_GT(weak_refs, 0u);
|
221
221
|
#endif
|
@@ -236,9 +236,9 @@ class DualRefCounted : public Impl {
|
|
236
236
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
237
237
|
const uint32_t strong_refs = GetStrongRefs(prev_ref_pair);
|
238
238
|
if (trace != nullptr) {
|
239
|
-
|
240
|
-
|
241
|
-
|
239
|
+
VLOG(2) << trace << ":" << this << " " << location.file() << ":"
|
240
|
+
<< location.line() << " weak_unref " << weak_refs << " -> "
|
241
|
+
<< weak_refs - 1 << " (refs=" << strong_refs << ") " << reason;
|
242
242
|
}
|
243
243
|
CHECK_GT(weak_refs, 0u);
|
244
244
|
#else
|
@@ -301,8 +301,8 @@ class DualRefCounted : public Impl {
|
|
301
301
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
302
302
|
CHECK_NE(strong_refs, 0u);
|
303
303
|
if (trace_ != nullptr) {
|
304
|
-
|
305
|
-
|
304
|
+
VLOG(2) << trace_ << ":" << this << " ref " << strong_refs << " -> "
|
305
|
+
<< strong_refs + 1 << "; (weak_refs=" << weak_refs << ")";
|
306
306
|
}
|
307
307
|
#else
|
308
308
|
refs_.fetch_add(MakeRefPair(1, 0), std::memory_order_relaxed);
|
@@ -316,10 +316,10 @@ class DualRefCounted : public Impl {
|
|
316
316
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
317
317
|
CHECK_NE(strong_refs, 0u);
|
318
318
|
if (trace_ != nullptr) {
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
319
|
+
VLOG(2) << trace_ << ":" << this << " " << location.file() << ":"
|
320
|
+
<< location.line() << " ref " << strong_refs << " -> "
|
321
|
+
<< strong_refs + 1 << " (weak_refs=" << weak_refs << ") "
|
322
|
+
<< reason;
|
323
323
|
}
|
324
324
|
#else
|
325
325
|
// Use conditionally-important parameters
|
@@ -336,8 +336,8 @@ class DualRefCounted : public Impl {
|
|
336
336
|
const uint32_t strong_refs = GetStrongRefs(prev_ref_pair);
|
337
337
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
338
338
|
if (trace_ != nullptr) {
|
339
|
-
|
340
|
-
|
339
|
+
VLOG(2) << trace_ << ":" << this << " weak_ref " << weak_refs << " -> "
|
340
|
+
<< weak_refs + 1 << "; (refs=" << strong_refs << ")";
|
341
341
|
}
|
342
342
|
if (strong_refs == 0) CHECK_NE(weak_refs, 0u);
|
343
343
|
#else
|
@@ -352,9 +352,9 @@ class DualRefCounted : public Impl {
|
|
352
352
|
const uint32_t strong_refs = GetStrongRefs(prev_ref_pair);
|
353
353
|
const uint32_t weak_refs = GetWeakRefs(prev_ref_pair);
|
354
354
|
if (trace_ != nullptr) {
|
355
|
-
|
356
|
-
|
357
|
-
|
355
|
+
VLOG(2) << trace_ << ":" << this << " " << location.file() << ":"
|
356
|
+
<< location.line() << " weak_ref " << weak_refs << " -> "
|
357
|
+
<< weak_refs + 1 << " (refs=" << strong_refs << ") " << reason;
|
358
358
|
}
|
359
359
|
if (strong_refs == 0) CHECK_NE(weak_refs, 0u);
|
360
360
|
#else
|
@@ -66,13 +66,13 @@ static void create_sockets(SOCKET sv[2]) {
|
|
66
66
|
closesocket(lst_sock);
|
67
67
|
grpc_error_handle error = grpc_tcp_prepare_socket(cli_sock);
|
68
68
|
if (!error.ok()) {
|
69
|
-
|
70
|
-
|
69
|
+
VLOG(2) << "Prepare cli_sock failed with error: "
|
70
|
+
<< grpc_core::StatusToString(error);
|
71
71
|
}
|
72
72
|
error = grpc_tcp_prepare_socket(svr_sock);
|
73
73
|
if (!error.ok()) {
|
74
|
-
|
75
|
-
|
74
|
+
VLOG(2) << "Prepare svr_sock failed with error: "
|
75
|
+
<< grpc_core::StatusToString(error);
|
76
76
|
}
|
77
77
|
|
78
78
|
sv[1] = cli_sock;
|
@@ -122,7 +122,7 @@ static bool epoll_set_init() {
|
|
122
122
|
return false;
|
123
123
|
}
|
124
124
|
|
125
|
-
|
125
|
+
GRPC_TRACE_LOG(polling, INFO) << "grpc epoll fd: " << g_epoll_set.epfd;
|
126
126
|
gpr_atm_no_barrier_store(&g_epoll_set.num_events, 0);
|
127
127
|
gpr_atm_no_barrier_store(&g_epoll_set.cursor, 0);
|
128
128
|
return true;
|