grpc 1.65.0.pre2 → 1.65.1
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/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
|