build: update c-ares to 1.16.1.#11149
Conversation
This picks up ares_getaddrinfo() and also some security fixes. See https://c-ares.haxx.se/changelog.html#1_16_1. Risk level: Low Testing: bazel test //test/... Signed-off-by: Harvey Tuch <htuch@google.com>
|
CC @moderation @wrowe (I removed the Windows patch as it was broken, will reintroduce as CI dictates). |
Nice, they fixed the bug our ASAN build uncovered! |
Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: Harvey Tuch <htuch@google.com>
| location = _get_location("com_github_c_ares_c_ares") | ||
| http_archive( | ||
| name = "com_github_c_ares_c_ares", | ||
| patches = ["@envoy//bazel/foreign_cc:cares-win32-nameser.patch"], |
There was a problem hiding this comment.
Question, why was this dropped? The //source/exe:envoy-static doesn't require this patch, however, the //test/common/network:dns_impl_test does need this hack to provide windows a nameser.h (which isn't in the windows API at all, that's why c-ares bundles the file.)
There was a problem hiding this comment.
@wrowe is this in the tests that are exercised by CI right now? The Windows job is passing. I dropped the patch as I wasn't sure it was needed and didn't want to do the work of updating if not; in general these patches are going to impact our ability to upgrade versions if they aren't upstreamed.
There was a problem hiding this comment.
Correct, right now we don't build tests on Windows, because the Azure workers don't have sufficient memory to compile much of anything with respect to the mocks (they eat up about 4GB of heap when included.) But it is necessary to retain that patch, and it won't be absorbed upstream because of what we are accomplishing with it. We are "borrowing" their nameser.h, because it is the most convenient way to obtain it.
There was a problem hiding this comment.
(Sunjay and I are building the tests frequently, and they are going live with the move to the RBE picture for Windows builds.)
There was a problem hiding this comment.
I think there might be other ways to get this header, e.g. via a genrule that extracts it from the http_archive. Or maybe even directly via a repository rule. I'd be happy to work on that in this PR if there was a way to validate it. Is there a way to enable this test?
I'm very much opposed to permanently maintaining cmake patches, since these are fragile and will impede our ability to track security updates by imposing a higher cost on folks making these updates.
There was a problem hiding this comment.
While I don't disagree with you, we can simply disable the test with tags = ["skip_on_windows"] and just forget about it. Looking at the situation, this seemed at the time to be the most viable.
Signed-off-by: Harvey Tuch <htuch@google.com>
wrowe
left a comment
There was a problem hiding this comment.
No, please do not do this. The global tags the build observes are "skip_on_windows" (total compile failure) and "fails_on_windows" (won't pass and known issue.) If we did this command-line, it would be ridonculous at this point in time. Just tweak the BUILD file to tags= out the test.
Signed-off-by: Harvey Tuch <htuch@google.com>
Signed-off-by: Harvey Tuch <htuch@google.com>
|
@htuch you should be able to apply this (and undo all other changes to work around the nameser.h thing for Windows) and it should work, probably what we shouldve done in the first place instead of a patch |
|
@sunjayBhatia ack, thanks for the suggestion. |
Signed-off-by: Harvey Tuch <htuch@google.com>
|
Looks like this change has broken compilation on RHEL 7. Bazel is 3.1.0 and building with |
#11149 broke CentOS/RHEL build, force lib install dir to lib rather than lib64 in those distro, so rules_foreign_cc can find built static libraries. Signed-off-by: Lizan Zhou <lizan@tetrate.io>
This picks up ares_getaddrinfo() and also some security fixes. See https://c-ares.haxx.se/changelog.html#1_16_1. Risk level: Low Testing: bazel test //test/... Signed-off-by: Harvey Tuch <htuch@google.com>
envoyproxy#11149 broke CentOS/RHEL build, force lib install dir to lib rather than lib64 in those distro, so rules_foreign_cc can find built static libraries. Signed-off-by: Lizan Zhou <lizan@tetrate.io>
This picks up ares_getaddrinfo() and also some security fixes.
See https://c-ares.haxx.se/changelog.html#1_16_1.
Risk level: Low
Testing: bazel test //test/...
Signed-off-by: Harvey Tuch htuch@google.com