[WIP] deps: Bump build images -> e21298a (llvm -> 18)#38093
Closed
dependency-envoy[bot] wants to merge 6 commits intomainfrom
Closed
[WIP] deps: Bump build images -> e21298a (llvm -> 18)#38093dependency-envoy[bot] wants to merge 6 commits intomainfrom
e21298a (llvm -> 18)#38093dependency-envoy[bot] wants to merge 6 commits intomainfrom
Conversation
|
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to |
e21298ae21298a
Member
|
cc @krinkinmu |
e21298ae21298a (llvm -> 18)
Member
external/com_github_google_tcmalloc/tcmalloc/page_allocator_interface.h:83:46: error: returning variable 'info_' by reference requires holding mutex 'pageheap_lock' [-Werror,-Wthread-safety-reference-return]
83 | const PageAllocInfo& info() const { return info_; }
| ^
1 error generated.https://github.com/envoyproxy/envoy/actions/runs/12834491248/job/35791937879#step:17:601 |
004545d to
8ff9eaf
Compare
Member
In file included from source/common/stats/thread_local_store.cc:1:
./source/common/stats/thread_local_store.h:425:14: error: returning variable 'central_cache_' by reference requires holding mutex 'parent_.lock_' [-Werror,-Wthread-safety-reference-return]
425 | return central_cache_;
| https://github.com/envoyproxy/envoy/actions/runs/12869653512/job/35878982913#step:17:796 |
7251f97 to
87d7d85
Compare
phlax
reviewed
Jan 23, 2025
|
|
||
| package(default_visibility = ["//visibility:public"]) | ||
|
|
||
| CACHE_SILO_KEY = "llvm-18" |
35c5d66 to
cedf21a
Compare
Signed-off-by: dependency-envoy[bot] <148525496+dependency-envoy[bot]@users.noreply.github.com> Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
Those return references to internal protected members, so ideally all the callers should acquire a lock before calling those. However, all the tests that use FakeStream or one of its derivatives cannot really acquire the right lock because it's a protected member of the class. We got away with this so far for a few reasons: 1. Clang thread safety annotations didn't detect this problematic pattern in the clang-14 that we are currently using (potentially because those methods actually acquired locks, even though those locks didn't actually protect much). 2. The locks are really only needed to synchronize all the waitForX methods, accesors methods like body(), headers() and trailers() are called in tests after the appropriate waitForX method was called. Disabling thread safety annotations for these methods does not actually make anything worse, because the existing implementation aren't thread safe anyways, however here are a few alternatives to disabling those that I considered and rejected at the moment: 1. Return copies of body, headers and trailers instead of references, create those copies under a lock - that would be the easiest way to let compiler know that the code is fine, but all three methods return abstract classes and currently there is no easy way to copy them (that's not to say, that copying is impossible in principle); 2. Expose the lock and require all the callers acquire it - this was my first idea of how to fix the issue, but FakeStream (and it's derivatives) is used quite a lot in tests, so this change will get quite invasive. Because it does not seem like we really need to lock those methods in practice and given that alternatives to disabling thread safety analysis on those are quite invasive, I figured I can just silence the compiler in this case. Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com> Signed-off-by: Ryan Northey <ryan@synca.io>
cedf21a to
958dad8
Compare
Member
|
closed due to branch rename - will reopen once build image update |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Created by Envoy dependency bot
Signed-off-by: dependency-envoy[bot] <148525496+dependency-envoy[bot]@users.noreply.github.com>