This is an automated email from the ASF dual-hosted git repository.
zuston pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-uniffle.git
The following commit(s) were added to refs/heads/master by this push:
new d72a483e1 [#1308] improvement(rust): detect whether data has been
purged in UT (#1323)
d72a483e1 is described below
commit d72a483e1a480c2064feafec04ed874fe18ee126
Author: wenlongbrother <[email protected]>
AuthorDate: Wed Nov 22 15:23:52 2023 +0800
[#1308] improvement(rust): detect whether data has been purged in UT (#1323)
### What changes were proposed in this pull request?
add code to improve purge unit test to detect whether arc reference is 0
### Why are the changes needed?
Fix: #1308
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
1. UT
---------
Co-authored-by: 蒋文龙 <[email protected]>
---
rust/experimental/server/src/store/memory.rs | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/rust/experimental/server/src/store/memory.rs
b/rust/experimental/server/src/store/memory.rs
index 8894dbf2c..c7b0de94d 100644
--- a/rust/experimental/server/src/store/memory.rs
+++ b/rust/experimental/server/src/store/memory.rs
@@ -1084,8 +1084,22 @@ mod test {
let data = runtime.wait(store.get(reading_ctx.clone())).expect("");
assert_eq!(1, data.from_memory().shuffle_data_block_segments.len());
+ // get weak reference to ensure purge can successfully free memory
+ let weak_ref_before = store
+ .state
+ .get(&uid)
+ .map(|entry| Arc::downgrade(&entry.value()));
+ assert!(
+ weak_ref_before.is_some(),
+ "Failed to obtain weak reference before purge"
+ );
+
// purge
runtime.wait(store.purge(app_id.to_string())).expect("");
+ assert!(
+ weak_ref_before.clone().unwrap().upgrade().is_none(),
+ "Arc should not exist after purge"
+ );
let snapshot = runtime.wait(store.budget.snapshot());
assert_eq!(snapshot.used, 0);
// the remaining allocated will be removed.