grpc 1.65.1 → 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/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/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 +7 -4
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +3 -1
- 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/iomgr/endpoint_pair_windows.cc +4 -4
- data/src/core/lib/iomgr/socket_windows.cc +3 -3
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- 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/load_balancing/grpclb/grpclb.cc +14 -15
- data/src/core/util/log.cc +2 -2
- 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"),
|
@@ -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
|
|
@@ -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 {
|
@@ -629,8 +629,9 @@ void PosixSocketWrapper::TrySetSocketTcpUserTimeout(
|
|
629
629
|
if (0 != getsockopt(fd_, IPPROTO_TCP, TCP_USER_TIMEOUT, &newval, &len)) {
|
630
630
|
// This log is intentionally not protected behind a flag, so that users
|
631
631
|
// know that TCP_USER_TIMEOUT is not being used.
|
632
|
-
|
633
|
-
|
632
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
633
|
+
<< "TCP_USER_TIMEOUT is not available. TCP_USER_TIMEOUT "
|
634
|
+
"won't be used thereafter";
|
634
635
|
g_socket_supports_tcp_user_timeout.store(-1);
|
635
636
|
} else {
|
636
637
|
GRPC_TRACE_LOG(tcp, INFO)
|
@@ -684,7 +685,8 @@ bool PosixSocketWrapper::IsIpv6LoopbackAvailable() {
|
|
684
685
|
int fd = socket(AF_INET6, SOCK_STREAM, 0);
|
685
686
|
bool loopback_available = false;
|
686
687
|
if (fd < 0) {
|
687
|
-
|
688
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
689
|
+
<< "Disabling AF_INET6 sockets because socket() failed.";
|
688
690
|
} else {
|
689
691
|
sockaddr_in6 addr;
|
690
692
|
memset(&addr, 0, sizeof(addr));
|
@@ -693,7 +695,8 @@ bool PosixSocketWrapper::IsIpv6LoopbackAvailable() {
|
|
693
695
|
if (bind(fd, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)) == 0) {
|
694
696
|
loopback_available = true;
|
695
697
|
} else {
|
696
|
-
|
698
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
699
|
+
<< "Disabling AF_INET6 sockets because ::1 is not available.";
|
697
700
|
}
|
698
701
|
close(fd);
|
699
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"
|
@@ -317,7 +318,8 @@ bool WorkStealingThreadPool::WorkStealingThreadPoolImpl::IsQuiesced() {
|
|
317
318
|
}
|
318
319
|
|
319
320
|
void WorkStealingThreadPool::WorkStealingThreadPoolImpl::PrepareFork() {
|
320
|
-
|
321
|
+
LOG_IF(INFO, GRPC_TRACE_FLAG_ENABLED(event_engine))
|
322
|
+
<< "WorkStealingThreadPoolImpl::PrepareFork";
|
321
323
|
SetForking(true);
|
322
324
|
work_signal_.SignalAll();
|
323
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
|
}
|
@@ -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;
|
@@ -132,7 +132,7 @@ void grpc_winsocket_shutdown(grpc_winsocket* winsocket) {
|
|
132
132
|
DisconnectEx(winsocket->socket, NULL, 0, 0);
|
133
133
|
} else {
|
134
134
|
char* utf8_message = gpr_format_message(WSAGetLastError());
|
135
|
-
|
135
|
+
VLOG(2) << "Unable to retrieve DisconnectEx pointer : " << utf8_message;
|
136
136
|
gpr_free(utf8_message);
|
137
137
|
}
|
138
138
|
// Calling closesocket triggers invocation of any pending I/O operations with
|
@@ -216,7 +216,7 @@ static void probe_ipv6_once(void) {
|
|
216
216
|
SOCKET s = socket(AF_INET6, SOCK_STREAM, 0);
|
217
217
|
g_ipv6_loopback_available = 0;
|
218
218
|
if (s == INVALID_SOCKET) {
|
219
|
-
|
219
|
+
VLOG(2) << "Disabling AF_INET6 sockets because socket() failed.";
|
220
220
|
} else {
|
221
221
|
grpc_sockaddr_in6 addr;
|
222
222
|
memset(&addr, 0, sizeof(addr));
|
@@ -225,7 +225,7 @@ static void probe_ipv6_once(void) {
|
|
225
225
|
if (bind(s, reinterpret_cast<grpc_sockaddr*>(&addr), sizeof(addr)) == 0) {
|
226
226
|
g_ipv6_loopback_available = 1;
|
227
227
|
} else {
|
228
|
-
|
228
|
+
VLOG(2) << "Disabling AF_INET6 sockets because ::1 is not available.";
|
229
229
|
}
|
230
230
|
closesocket(s);
|
231
231
|
}
|
@@ -210,7 +210,8 @@ class TcpZerocopySendCtx {
|
|
210
210
|
if (send_records_ == nullptr || free_send_records_ == nullptr) {
|
211
211
|
gpr_free(send_records_);
|
212
212
|
gpr_free(free_send_records_);
|
213
|
-
|
213
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
214
|
+
<< "Disabling TCP TX zerocopy due to memory pressure.\n";
|
214
215
|
memory_limited_ = true;
|
215
216
|
} else {
|
216
217
|
for (int idx = 0; idx < max_sends_; ++idx) {
|
@@ -424,10 +424,9 @@ static void on_read(void* arg, grpc_error_handle err) {
|
|
424
424
|
int64_t dropped_connections_count =
|
425
425
|
num_dropped_connections.fetch_add(1, std::memory_order_relaxed) + 1;
|
426
426
|
if (dropped_connections_count % 1000 == 1) {
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
dropped_connections_count);
|
427
|
+
GRPC_TRACE_LOG(tcp, INFO)
|
428
|
+
<< "Dropped >= " << dropped_connections_count
|
429
|
+
<< " new connection attempts due to high memory pressure";
|
431
430
|
}
|
432
431
|
close(fd);
|
433
432
|
continue;
|
@@ -549,16 +548,14 @@ static grpc_error_handle add_wildcard_addrs_to_server(grpc_tcp_server* s,
|
|
549
548
|
}
|
550
549
|
if (*out_port > 0) {
|
551
550
|
if (!v6_err.ok()) {
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
grpc_core::StatusToString(v6_err).c_str());
|
551
|
+
GRPC_TRACE_LOG(tcp, INFO) << "Failed to add :: listener, "
|
552
|
+
<< "the environment may not support IPv6: "
|
553
|
+
<< grpc_core::StatusToString(v6_err);
|
556
554
|
}
|
557
555
|
if (!v4_err.ok()) {
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
grpc_core::StatusToString(v4_err).c_str());
|
556
|
+
GRPC_TRACE_LOG(tcp, INFO) << "Failed to add 0.0.0.0 listener, "
|
557
|
+
<< "the environment may not support IPv4: "
|
558
|
+
<< grpc_core::StatusToString(v4_err);
|
562
559
|
}
|
563
560
|
return absl::OkStatus();
|
564
561
|
} else {
|
@@ -386,8 +386,8 @@ static void on_accept(void* arg, grpc_error_handle error) {
|
|
386
386
|
// this is necessary in the read/write case, it's useless for the accept
|
387
387
|
// case. We only need to adjust the pending callback count
|
388
388
|
if (!error.ok()) {
|
389
|
-
|
390
|
-
|
389
|
+
VLOG(2) << "Skipping on_accept due to error: "
|
390
|
+
<< grpc_core::StatusToString(error);
|
391
391
|
|
392
392
|
gpr_mu_unlock(&sp->server->mu);
|
393
393
|
return;
|
@@ -288,13 +288,13 @@ bool Party::RunOneParticipant(int i) {
|
|
288
288
|
currently_polling_ = kNotPolling;
|
289
289
|
if (done) {
|
290
290
|
if (!name.empty()) {
|
291
|
-
|
292
|
-
|
291
|
+
GRPC_TRACE_LOG(promise_primitives, INFO)
|
292
|
+
<< DebugTag() << "[" << name << "] end poll and finish job " << i;
|
293
293
|
}
|
294
294
|
participants_[i].store(nullptr, std::memory_order_relaxed);
|
295
295
|
} else if (!name.empty()) {
|
296
|
-
|
297
|
-
|
296
|
+
GRPC_TRACE_LOG(promise_primitives, INFO)
|
297
|
+
<< DebugTag() << "[" << name << "] end poll";
|
298
298
|
}
|
299
299
|
return done;
|
300
300
|
}
|
@@ -489,10 +489,10 @@ class GrpcLb final : public LoadBalancingPolicy {
|
|
489
489
|
new_state == GRPC_CHANNEL_TRANSIENT_FAILURE) {
|
490
490
|
// In TRANSIENT_FAILURE. Cancel the fallback timer and go into
|
491
491
|
// fallback mode immediately.
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
492
|
+
GRPC_TRACE_LOG(glb, INFO)
|
493
|
+
<< "[grpclb " << parent_.get()
|
494
|
+
<< "] balancer channel in state:TRANSIENT_FAILURE ("
|
495
|
+
<< status.ToString() << "); entering fallback mode";
|
496
496
|
parent_->fallback_at_startup_checks_pending_ = false;
|
497
497
|
parent_->channel_control_helper()->GetEventEngine()->Cancel(
|
498
498
|
*parent_->lb_fallback_timer_handle_);
|
@@ -670,11 +670,10 @@ class GrpcLb::Serverlist::AddressIterator final
|
|
670
670
|
std::string lb_token(server.load_balance_token, lb_token_length);
|
671
671
|
if (lb_token.empty()) {
|
672
672
|
auto addr_uri = grpc_sockaddr_to_uri(&addr);
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
: addr_uri.status().ToString().c_str());
|
673
|
+
GRPC_TRACE_LOG(glb, INFO)
|
674
|
+
<< "Missing LB token for backend address '"
|
675
|
+
<< (addr_uri.ok() ? *addr_uri : addr_uri.status().ToString())
|
676
|
+
<< "'. The empty token will be used instead";
|
678
677
|
}
|
679
678
|
// Return address with a channel arg containing LB token and stats object.
|
680
679
|
callback(EndpointAddresses(
|
@@ -852,12 +851,12 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
852
851
|
client_stats = parent()->lb_calld_->client_stats()->Ref();
|
853
852
|
}
|
854
853
|
if (GRPC_TRACE_FLAG_ENABLED(glb)) {
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
854
|
+
GRPC_TRACE_LOG(glb, INFO)
|
855
|
+
<< "[grpclb " << parent() << " helper " << this
|
856
|
+
<< "] state=" << ConnectivityStateName(state) << " ("
|
857
|
+
<< status.ToString() << ") wrapping child picker " << picker.get()
|
858
|
+
<< " (serverlist=" << serverlist.get()
|
859
|
+
<< ", client_stats=" << client_stats.get() << ")";
|
861
860
|
}
|
862
861
|
parent()->channel_control_helper()->UpdateState(
|
863
862
|
state, status,
|
data/src/core/util/log.cc
CHANGED
@@ -70,10 +70,10 @@ int gpr_should_log(gpr_log_severity severity) {
|
|
70
70
|
// MinLogLevel is. We could have saved this in a static const variable.
|
71
71
|
// But decided against it just in case anyone programatically sets absl
|
72
72
|
// min log level settings after this has been initialized.
|
73
|
-
// Same holds for
|
73
|
+
// Same holds for ABSL_VLOG_IS_ON(2).
|
74
74
|
return absl::MinLogLevel() <= absl::LogSeverityAtLeast::kInfo;
|
75
75
|
case GPR_LOG_SEVERITY_DEBUG:
|
76
|
-
return
|
76
|
+
return ABSL_VLOG_IS_ON(2);
|
77
77
|
default:
|
78
78
|
DLOG(ERROR) << "Invalid gpr_log_severity.";
|
79
79
|
return true;
|
@@ -507,11 +507,9 @@ int CBS_get_asn1_int64(CBS *cbs, int64_t *out) {
|
|
507
507
|
return 0;
|
508
508
|
}
|
509
509
|
uint8_t sign_extend[sizeof(int64_t)];
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
}
|
514
|
-
memcpy(out, sign_extend, sizeof(sign_extend));
|
510
|
+
OPENSSL_memset(sign_extend, is_negative ? 0xff : 0, sizeof(sign_extend));
|
511
|
+
OPENSSL_memcpy(sign_extend + sizeof(int64_t) - len, data, len);
|
512
|
+
*out = CRYPTO_load_u64_be(sign_extend);
|
515
513
|
return 1;
|
516
514
|
}
|
517
515
|
|
@@ -41,6 +41,13 @@ static_assert(alignof(union evp_aead_ctx_st_state) >=
|
|
41
41
|
|
42
42
|
static int aead_chacha20_poly1305_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
43
43
|
size_t key_len, size_t tag_len) {
|
44
|
+
// TODO(crbug.com/42290548): The x86_64 assembly depends on initializing
|
45
|
+
// |OPENSSL_ia32cap_P|. Move the dispatch to C. While we're here, it may be
|
46
|
+
// worth adjusting the assembly calling convention. The assembly functions do
|
47
|
+
// too much work right now. For now, explicitly initialize |OPENSSL_ia32cap_P|
|
48
|
+
// first.
|
49
|
+
OPENSSL_init_cpuid();
|
50
|
+
|
44
51
|
struct aead_chacha20_poly1305_ctx *c20_ctx =
|
45
52
|
(struct aead_chacha20_poly1305_ctx *)&ctx->state;
|
46
53
|
|
@@ -143,6 +143,9 @@ void OPENSSL_cpuid_setup(void) {
|
|
143
143
|
|
144
144
|
int CRYPTO_has_broken_NEON(void) { return 0; }
|
145
145
|
|
146
|
-
int CRYPTO_needs_hwcap2_workaround(void) {
|
146
|
+
int CRYPTO_needs_hwcap2_workaround(void) {
|
147
|
+
OPENSSL_init_cpuid();
|
148
|
+
return g_needs_hwcap2_workaround;
|
149
|
+
}
|
147
150
|
|
148
151
|
#endif // OPENSSL_ARM && OPENSSL_LINUX && !OPENSSL_STATIC_ARMCAP
|
@@ -208,15 +208,6 @@ void OPENSSL_cpuid_setup(void) {
|
|
208
208
|
// Reserved bit #30 is repurposed to signal an Intel CPU.
|
209
209
|
if (is_intel) {
|
210
210
|
edx |= (1u << 30);
|
211
|
-
|
212
|
-
// Clear the XSAVE bit on Knights Landing to mimic Silvermont. This enables
|
213
|
-
// some Silvermont-specific codepaths which perform better. See OpenSSL
|
214
|
-
// commit 64d92d74985ebb3d0be58a9718f9e080a14a8e7f and
|
215
|
-
// |CRYPTO_cpu_perf_is_like_silvermont|.
|
216
|
-
if ((eax & 0x0fff0ff0) == 0x00050670 /* Knights Landing */ ||
|
217
|
-
(eax & 0x0fff0ff0) == 0x00080650 /* Knights Mill (per SDE) */) {
|
218
|
-
ecx &= ~(1u << 26);
|
219
|
-
}
|
220
211
|
} else {
|
221
212
|
edx &= ~(1u << 30);
|
222
213
|
}
|
@@ -251,12 +242,6 @@ void OPENSSL_cpuid_setup(void) {
|
|
251
242
|
extended_features[0] &= ~(1u << 16);
|
252
243
|
}
|
253
244
|
|
254
|
-
// Disable ADX instructions on Knights Landing. See OpenSSL commit
|
255
|
-
// 64d92d74985ebb3d0be58a9718f9e080a14a8e7f.
|
256
|
-
if ((ecx & (1u << 26)) == 0) {
|
257
|
-
extended_features[0] &= ~(1u << 19);
|
258
|
-
}
|
259
|
-
|
260
245
|
OPENSSL_ia32cap_P[0] = edx;
|
261
246
|
OPENSSL_ia32cap_P[1] = ecx;
|
262
247
|
OPENSSL_ia32cap_P[2] = extended_features[0];
|