grpc 1.65.0 → 1.65.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +1 -1
- 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/lib/event_engine/posix_engine/ev_epoll1_linux.cc +2 -1
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +5 -2
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +0 -1
- 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/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -17
- data/src/core/lib/iomgr/tcp_posix.cc +0 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +2 -2
- data/src/core/server/server.cc +1 -1
- data/src/core/util/log.cc +8 -6
- data/src/ruby/lib/grpc/version.rb +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: d88e35610af868428e19e63fc9fb6018ee4fc56996eb09a3c6631fb811be880f
|
4
|
+
data.tar.gz: 7d92092c09d6eb7eefc895f1fcdae769a6b24f045c1d8d9c2800f468ae18af4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f66411122b76358dde1eae1d1ae9e54a5e1a01263b6dce493aa025bd40bcc9a247fff47396856ecb6dc07a7bda36e53d77b0d5d040191e3ff6ba05603a59f9e0
|
7
|
+
data.tar.gz: 2ff59d840774abd6adba54950d5d75f4d3208e27fb70dcf493c24ee92f932371cab38e15b5d8de3ceb2afc3ceca7da6f40e9422b96f0466d5291d55990a3e912
|
data/Makefile
CHANGED
@@ -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");
|
@@ -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();
|
@@ -627,12 +627,15 @@ 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
|
+
// This log is intentionally not protected behind a flag, so that users
|
631
|
+
// know that TCP_USER_TIMEOUT is not being used.
|
630
632
|
LOG(INFO) << "TCP_USER_TIMEOUT is not available. TCP_USER_TIMEOUT "
|
631
633
|
"won't be used thereafter";
|
632
634
|
g_socket_supports_tcp_user_timeout.store(-1);
|
633
635
|
} else {
|
634
|
-
|
635
|
-
|
636
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
637
|
+
<< "TCP_USER_TIMEOUT is available. TCP_USER_TIMEOUT will be "
|
638
|
+
"used thereafter";
|
636
639
|
g_socket_supports_tcp_user_timeout.store(1);
|
637
640
|
}
|
638
641
|
}
|
@@ -266,7 +266,6 @@ void WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread() {
|
|
266
266
|
}
|
267
267
|
|
268
268
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::Quiesce() {
|
269
|
-
LOG(INFO) << "WorkStealingThreadPoolImpl::Quiesce";
|
270
269
|
SetShutdown(true);
|
271
270
|
// Wait until all threads have exited.
|
272
271
|
// Note that if this is a threadpool thread then we won't exit this thread
|
@@ -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
|
@@ -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;
|
@@ -374,22 +374,21 @@ grpc_error_handle grpc_set_socket_tcp_user_timeout(
|
|
374
374
|
// if it is available.
|
375
375
|
if (g_socket_supports_tcp_user_timeout.load() == 0) {
|
376
376
|
if (0 != getsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &newval, &len)) {
|
377
|
-
|
378
|
-
|
379
|
-
|
377
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
378
|
+
<< "TCP_USER_TIMEOUT is not available. TCP_USER_TIMEOUT won't be "
|
379
|
+
"used thereafter";
|
380
380
|
g_socket_supports_tcp_user_timeout.store(-1);
|
381
381
|
} else {
|
382
|
-
|
383
|
-
|
384
|
-
|
382
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
383
|
+
<< "TCP_USER_TIMEOUT is available. TCP_USER_TIMEOUT will be used "
|
384
|
+
"thereafter";
|
385
385
|
g_socket_supports_tcp_user_timeout.store(1);
|
386
386
|
}
|
387
387
|
}
|
388
388
|
if (g_socket_supports_tcp_user_timeout.load() > 0) {
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
}
|
389
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
390
|
+
<< "Enabling TCP_USER_TIMEOUT with a timeout of " << timeout
|
391
|
+
<< " ms";
|
393
392
|
if (0 != setsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &timeout,
|
394
393
|
sizeof(timeout))) {
|
395
394
|
gpr_log(GPR_ERROR, "setsockopt(TCP_USER_TIMEOUT) %s",
|
@@ -402,10 +401,9 @@ grpc_error_handle grpc_set_socket_tcp_user_timeout(
|
|
402
401
|
return absl::OkStatus();
|
403
402
|
}
|
404
403
|
if (newval != timeout) {
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
timeout, newval);
|
404
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
405
|
+
<< "Setting TCP_USER_TIMEOUT to value " << timeout
|
406
|
+
<< " ms. Actual TCP_USER_TIMEOUT value is " << newval << " ms";
|
409
407
|
return absl::OkStatus();
|
410
408
|
}
|
411
409
|
}
|
@@ -442,7 +440,8 @@ static void probe_ipv6_once(void) {
|
|
442
440
|
int fd = socket(AF_INET6, SOCK_STREAM, 0);
|
443
441
|
g_ipv6_loopback_available = 0;
|
444
442
|
if (fd < 0) {
|
445
|
-
|
443
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
444
|
+
<< "Disabling AF_INET6 sockets because socket() failed.";
|
446
445
|
} else {
|
447
446
|
grpc_sockaddr_in6 addr;
|
448
447
|
memset(&addr, 0, sizeof(addr));
|
@@ -451,8 +450,8 @@ static void probe_ipv6_once(void) {
|
|
451
450
|
if (bind(fd, reinterpret_cast<grpc_sockaddr*>(&addr), sizeof(addr)) == 0) {
|
452
451
|
g_ipv6_loopback_available = 1;
|
453
452
|
} else {
|
454
|
-
|
455
|
-
|
453
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
454
|
+
<< "Disabling AF_INET6 sockets because ::1 is not available.";
|
456
455
|
}
|
457
456
|
close(fd);
|
458
457
|
}
|
@@ -806,7 +806,6 @@ static void tcp_ref(grpc_tcp* tcp) { tcp->refcount.Ref(); }
|
|
806
806
|
#endif
|
807
807
|
|
808
808
|
static void tcp_destroy(grpc_endpoint* ep) {
|
809
|
-
gpr_log(GPR_INFO, "IOMGR endpoint shutdown");
|
810
809
|
grpc_tcp* tcp = reinterpret_cast<grpc_tcp*>(ep);
|
811
810
|
ZerocopyDisableAndWaitForRemaining(tcp);
|
812
811
|
grpc_fd_shutdown(tcp->em_fd, absl::UnavailableError("endpoint shutdown"));
|
@@ -397,8 +397,8 @@ void TlsChannelSecurityConnector::cancel_check_peer(
|
|
397
397
|
if (it != pending_verifier_requests_.end()) {
|
398
398
|
pending_verifier_request = it->second->request();
|
399
399
|
} else {
|
400
|
-
|
401
|
-
|
400
|
+
VLOG(2) << "TlsChannelSecurityConnector::cancel_check_peer: no "
|
401
|
+
"corresponding pending request found";
|
402
402
|
}
|
403
403
|
}
|
404
404
|
if (pending_verifier_request != nullptr) {
|
data/src/core/server/server.cc
CHANGED
@@ -976,7 +976,7 @@ grpc_error_handle Server::SetupTransport(
|
|
976
976
|
}
|
977
977
|
t->StartConnectivityWatch(MakeOrphanable<TransportConnectivityWatcher>(
|
978
978
|
t->RefAsSubclass<ServerTransport>(), Ref()));
|
979
|
-
|
979
|
+
GRPC_TRACE_LOG(server_channel, INFO) << "Adding connection";
|
980
980
|
connections_.emplace(std::move(t));
|
981
981
|
++connections_open_;
|
982
982
|
} else {
|
data/src/core/util/log.cc
CHANGED
@@ -132,15 +132,17 @@ void gpr_log_verbosity_init(void) {
|
|
132
132
|
absl::string_view verbosity = grpc_core::ConfigVars::Get().Verbosity();
|
133
133
|
DVLOG(2) << "Log verbosity: " << verbosity;
|
134
134
|
if (absl::EqualsIgnoreCase(verbosity, "INFO")) {
|
135
|
-
|
136
|
-
|
137
|
-
|
135
|
+
LOG_FIRST_N(WARNING, 1)
|
136
|
+
<< "Log level INFO is not suitable for production. Prefer WARNING or "
|
137
|
+
"ERROR. However if you see this message in a debug environmenmt or "
|
138
|
+
"test environmenmt it is safe to ignore this message.";
|
138
139
|
absl::SetVLogLevel("*grpc*/*", -1);
|
139
140
|
absl::SetMinLogLevel(absl::LogSeverityAtLeast::kInfo);
|
140
141
|
} else if (absl::EqualsIgnoreCase(verbosity, "DEBUG")) {
|
141
|
-
|
142
|
-
|
143
|
-
|
142
|
+
LOG_FIRST_N(WARNING, 1)
|
143
|
+
<< "Log level DEBUG is not suitable for production. Prefer WARNING or "
|
144
|
+
"ERROR. However if you see this message in a debug environmenmt or "
|
145
|
+
"test environmenmt it is safe to ignore this message.";
|
144
146
|
absl::SetVLogLevel("*grpc*/*", 2);
|
145
147
|
absl::SetMinLogLevel(absl::LogSeverityAtLeast::kInfo);
|
146
148
|
} else if (absl::EqualsIgnoreCase(verbosity, "ERROR")) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.65.
|
4
|
+
version: 1.65.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gRPC Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: src/ruby/bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-protobuf
|
@@ -3581,7 +3581,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
3581
3581
|
- !ruby/object:Gem::Version
|
3582
3582
|
version: '0'
|
3583
3583
|
requirements: []
|
3584
|
-
rubygems_version: 3.5.
|
3584
|
+
rubygems_version: 3.5.15
|
3585
3585
|
signing_key:
|
3586
3586
|
specification_version: 4
|
3587
3587
|
summary: GRPC system in Ruby
|