-
Notifications
You must be signed in to change notification settings - Fork 553
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI Failure (4GB allocation) in RandomNodeOperationsTest.test_node_operations
#18130
Comments
RandomNodeOperationsTest.test_node_operations
RandomNodeOperationsTest.test_node_operations
NB: This is in version 23.3.13
|
@ztlpn - I'm looking at the behavior of So this means that topic table has to reliably increment the version on any modification (including non-top level modifications: changes not to the topic table objects themselves, but of objects pointed to by it, e.g., of the replicas for a partition), is that right? |
Similar issue as #17975 ? |
Just scanning through the topic table code, here's one place where it appears to me that we modify-then-suspend (in
|
@travisdowns great catch! I managed to reproduce it in a unit test that concurrently calls planner and applies controller snapshots (i.e. ASan sees it).
That's correct. Quite error-prone of course, ideally we'd use some kind of persistent data structure here, but that's what we have for now. |
Nice, thanks for the quick fix!
One helpful approach I've done in the past for things like this is to try to use the type system to help you: e.g., wrap the map in another struct which only gives out This still leaves open a hole if you get such a reference and hold it over a suspension point and the further modify is, though this is already a potentially crashing bug that must be avoided: one way to fix that aspect is to not give out a map reference at all but only implement mutating operations inside the wrapper. Another way to close that last hole is to have a way of declaring objects which cannot be held across a possible suspension point, I can think of a few ways to do that. |
Likely fixed by #18305 |
https://buildkite.com/redpanda/vtools/builds/13269
JIRA Link: CORE-2694
The text was updated successfully, but these errors were encountered: