This is an automated email from the ASF dual-hosted git repository.

JingsongLi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-rust.git


The following commit(s) were added to refs/heads/main by this push:
     new e13d379b test(vindex): make executor cancellation test deterministic 
(#667)
e13d379b is described below

commit e13d379b17c7d74c8fc4d8b060dd603a32ec3e71
Author: QuakeWang <[email protected]>
AuthorDate: Tue Aug 4 13:33:24 2026 +0800

    test(vindex): make executor cancellation test deterministic (#667)
---
 crates/paimon/src/vindex/executor.rs | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/crates/paimon/src/vindex/executor.rs 
b/crates/paimon/src/vindex/executor.rs
index d8947102..76b8a185 100644
--- a/crates/paimon/src/vindex/executor.rs
+++ b/crates/paimon/src/vindex/executor.rs
@@ -478,27 +478,25 @@ mod tests {
     async fn cancelling_waiter_does_not_stop_submitted_task() {
         let (started_sender, started_receiver) = oneshot::channel();
         let (release_sender, release_receiver) = std::sync::mpsc::channel();
-        let completed = Arc::new(AtomicBool::new(false));
-        let completed_for_task = Arc::clone(&completed);
+        let (completed_sender, completed_receiver) = oneshot::channel();
         let join = tokio::spawn(async move {
             execute_global_index("test global-index task failed", move || {
                 let _ = started_sender.send(());
                 release_receiver.recv().unwrap();
-                completed_for_task.store(true, Ordering::SeqCst);
+                let _ = completed_sender.send(());
                 Ok(())
             })
             .await
         });
         started_receiver.await.unwrap();
 
-        let releaser = std::thread::spawn(move || {
-            std::thread::sleep(Duration::from_millis(20));
-            release_sender.send(()).unwrap();
-        });
         join.abort();
         assert!(join.await.unwrap_err().is_cancelled());
-        releaser.join().unwrap();
-        assert!(completed.load(Ordering::SeqCst));
+        release_sender.send(()).unwrap();
+        tokio::time::timeout(Duration::from_secs(1), completed_receiver)
+            .await
+            .expect("submitted task did not finish after waiter cancellation")
+            .expect("submitted task stopped before reporting completion");
     }
 
     #[test]

Reply via email to