Skip to content

Commit 521fd4a

Browse files
committed
fixes
1 parent 9faefdf commit 521fd4a

File tree

6 files changed

+114
-6
lines changed

6 files changed

+114
-6
lines changed

MODULE.bazel

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,15 @@ bazel_dep(name = "grpc", version = "1.66.0.bcr.3")
1616
single_version_override(
1717
module_name = "grpc",
1818
patch_strip = 1,
19-
# https://github.com/grpc/grpc/pull/37534
20-
# https://github.com/grpc/grpc/pull/37534.diff
21-
patches = ["bazel/grpc_bzlmod.diff"],
19+
patches = [
20+
# https://github.com/grpc/grpc/pull/37534
21+
# https://github.com/grpc/grpc/pull/37534.diff
22+
"bazel/grpc_bzlmod.diff",
23+
# https://github.com/grpc/grpc/pull/38101/files
24+
# https://github.com/grpc/grpc/pull/38101/commits/f093af21a9bc2a27156e7cd30744844797287253/patch
25+
# https://github.com/grpc/grpc/commit/f093af21a9bc2a27156e7cd30744844797287253.diff
26+
"bazel/grpc_ares_fix_2.diff",
27+
],
2228
)
2329

2430
bazel_dep(name = "nlohmann_json", version = "3.11.3.bcr.1")
@@ -30,6 +36,14 @@ bazel_dep(name = "zlib", version = "1.3.1.bcr.3")
3036
bazel_dep(name = "opentracing-cpp", version = "1.6.0")
3137
bazel_dep(name = "rules_multitool", version = "1.0.0")
3238

39+
bazel_dep(name = "c-ares", version = "1.16.1")
40+
archive_override(
41+
module_name = "c-ares",
42+
urls=["https://github.com/malkia/c-ares/archive/5ff026975caa04eb25e02b21976be5aace7da3c8.zip"],
43+
integrity = "sha256-nlYybA2PLmf6hzcaFxCoVQ0+QWOyw0NOii3pUr+AsbQ=",
44+
strip_prefix="c-ares-5ff026975caa04eb25e02b21976be5aace7da3c8"
45+
)
46+
3347
# ERROR: Q:/b/u/c56xnmzt/external/protobuf+/src/google/protobuf/BUILD.bazel:462:11: Compiling src/google/protobuf/any_lite.cc [for tool] failed: undeclared inclusion(s) in rule '@@protobuf+//src/google/protobuf:protobuf_lite':
3448
# this rule is missing dependency declarations for the following files included by 'src/google/protobuf/any_lite.cc':
3549
# 'bazel-out/x64_windows-opt-exec-ST-d610928244b0/bin/external/protobuf+/src/google/protobuf/_virtual_includes/protobuf_lite/google/protobuf/port.h'

bazel/grpc_ares_fix.diff

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
diff --git a/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc b/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
2+
index 3bfd15537e61b..3e6c274dea41b 100644
3+
--- a/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
4+
+++ b/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
5+
@@ -79,7 +79,7 @@ grpc_slice FlattenIovec(const struct iovec* iov, int iov_count) {
6+
// instantiated at the top of the virtual socket function callstack.
7+
class WSAErrorContext {
8+
public:
9+
- explicit WSAErrorContext() {};
10+
+ explicit WSAErrorContext(){};
11+
12+
~WSAErrorContext() {
13+
if (error_ != 0) {
14+
@@ -224,7 +224,7 @@ class GrpcPolledFdWindows : public GrpcPolledFd {
15+
// c-ares overloads this recv_from virtual socket function to receive
16+
// data on both UDP and TCP sockets, and from is nullptr for TCP.
17+
if (from != nullptr) {
18+
- CHECK(*from_len <= recv_from_source_addr_len_);
19+
+ CHECK(*from_len >= recv_from_source_addr_len_);
20+
memcpy(from, &recv_from_source_addr_, recv_from_source_addr_len_);
21+
*from_len = recv_from_source_addr_len_;
22+
}
23+
diff --git a/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
24+
index 6f988c8710db4..fd68cf335345b 100644
25+
--- a/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
26+
+++ b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
27+
@@ -69,7 +69,7 @@ namespace {
28+
// instantiated at the top of the virtual socket function callstack.
29+
class WSAErrorContext final {
30+
public:
31+
- explicit WSAErrorContext() {};
32+
+ explicit WSAErrorContext(){};
33+
34+
~WSAErrorContext() {
35+
if (error_ != 0) {
36+
@@ -307,7 +307,7 @@ class GrpcPolledFdWindows final : public GrpcPolledFd {
37+
// c-ares overloads this recv_from virtual socket function to receive
38+
// data on both UDP and TCP sockets, and from is nullptr for TCP.
39+
if (from != nullptr) {
40+
- CHECK(*from_len <= recv_from_source_addr_len_);
41+
+ CHECK(*from_len >= recv_from_source_addr_len_);
42+
memcpy(from, &recv_from_source_addr_, recv_from_source_addr_len_);
43+
*from_len = recv_from_source_addr_len_;
44+
}

bazel/grpc_ares_fix_2.diff

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
diff --git a/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc b/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
2+
index 37a8f85cc5..b319f17aaf 100644
3+
--- a/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
4+
+++ b/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc
5+
@@ -224,7 +224,7 @@ class GrpcPolledFdWindows : public GrpcPolledFd {
6+
// c-ares overloads this recv_from virtual socket function to receive
7+
// data on both UDP and TCP sockets, and from is nullptr for TCP.
8+
if (from != nullptr) {
9+
- CHECK(*from_len <= recv_from_source_addr_len_);
10+
+ CHECK(*from_len >= recv_from_source_addr_len_);
11+
memcpy(from, &recv_from_source_addr_, recv_from_source_addr_len_);
12+
*from_len = recv_from_source_addr_len_;
13+
}
14+
diff --git a/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
15+
index ef70bfc5b6..e8b05452c7 100644
16+
--- a/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
17+
+++ b/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc
18+
@@ -73,7 +73,7 @@ namespace {
19+
// instantiated at the top of the virtual socket function callstack.
20+
class WSAErrorContext final {
21+
public:
22+
- explicit WSAErrorContext(){};
23+
+ explicit WSAErrorContext() {};
24+
25+
~WSAErrorContext() {
26+
if (error_ != 0) {

bazel/grpc_ares_fix_2.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
the grpc_ares_fix.patch did not work against 1.66.0 (it was done against HEAD), hence I applied it locally then took it again without the .rej-ected

exporters/otlp/BUILD

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,7 @@ otel_cc_test(
524524
":otlp_grpc_exporter",
525525
"//api",
526526
"@googletest//:gtest_main",
527+
"@opentelemetry-proto//:trace_service_grpc_cc",
527528
]),
528529
)
529530

@@ -605,6 +606,7 @@ otel_cc_test(
605606
"//api",
606607
"//test_common/src/http/client/nosend:http_client_nosend",
607608
"@googletest//:gtest_main",
609+
"@opentelemetry-proto//:logs_service_grpc_cc",
608610
]),
609611
)
610612

@@ -621,6 +623,7 @@ otel_cc_test(
621623
"//api",
622624
"//test_common/src/http/client/nosend:http_client_nosend",
623625
"@googletest//:gtest_main",
626+
"@opentelemetry-proto//:logs_service_grpc_cc",
624627
]),
625628
)
626629

@@ -671,6 +674,7 @@ otel_cc_test(
671674
"//sdk/src/logs",
672675
"@googletest//:gtest_main",
673676
"@opentelemetry-proto//:logs_service_grpc_cc",
677+
"@opentelemetry-proto//:metrics_service_grpc_cc",
674678
"@opentelemetry-proto//:trace_service_grpc_cc",
675679
"@grpc//:grpc++",
676680
]),
@@ -689,6 +693,9 @@ otel_cc_test(
689693
"//api",
690694
"//sdk/src/logs",
691695
"@googletest//:gtest_main",
696+
"@opentelemetry-proto//:logs_service_grpc_cc",
697+
"@opentelemetry-proto//:metrics_service_grpc_cc",
698+
"@opentelemetry-proto//:trace_service_grpc_cc",
692699
]),
693700
)
694701

@@ -705,6 +712,7 @@ otel_cc_test(
705712
"//api",
706713
"//sdk/src/metrics",
707714
"@googletest//:gtest_main",
715+
"@opentelemetry-proto//:metrics_service_grpc_cc",
708716
],
709717
)
710718

@@ -720,6 +728,7 @@ otel_cc_test(
720728
":otlp_grpc_metric_exporter",
721729
"//api",
722730
"@googletest//:gtest_main",
731+
"@opentelemetry-proto//:metrics_service_grpc_cc",
723732
]),
724733
)
725734

x/MODULE.bazel

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,23 @@ bazel_dep(name = "grpc", version = "1.66.0.bcr.3")
1919
single_version_override(
2020
module_name = "grpc",
2121
patch_strip = 1,
22-
# https://github.com/grpc/grpc/pull/37534
23-
# https://github.com/grpc/grpc/pull/37534.diff
24-
patches = ["bazel/grpc_bzlmod.diff"],
22+
patches = [
23+
# https://github.com/grpc/grpc/pull/37534
24+
# https://github.com/grpc/grpc/pull/37534.diff
25+
"bazel/grpc_bzlmod.diff",
26+
# https://github.com/grpc/grpc/pull/38101/files
27+
# https://github.com/grpc/grpc/pull/38101/commits/f093af21a9bc2a27156e7cd30744844797287253/patch
28+
# https://github.com/grpc/grpc/commit/f093af21a9bc2a27156e7cd30744844797287253.diff
29+
"bazel/grpc_ares_fix_2.diff",
30+
],
31+
)
32+
33+
bazel_dep(name = "c-ares", version = "1.16.1")
34+
archive_override(
35+
module_name = "c-ares",
36+
urls=["https://github.com/malkia/c-ares/archive/5ff026975caa04eb25e02b21976be5aace7da3c8.zip"],
37+
integrity = "sha256-nlYybA2PLmf6hzcaFxCoVQ0+QWOyw0NOii3pUr+AsbQ=",
38+
strip_prefix="c-ares-5ff026975caa04eb25e02b21976be5aace7da3c8"
2539
)
2640

2741
# ditto here

0 commit comments

Comments
 (0)