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

apkhmv pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 560c6da4af IGNITE-21282 Fix flaky 
ItComputeTestEmbedded#cancelsJobLocally (#3060)
560c6da4af is described below

commit 560c6da4afb067abe628d5d58872d9111ba477e1
Author: Vadim Pakhnushev <8614891+valep...@users.noreply.github.com>
AuthorDate: Wed Jan 17 14:01:49 2024 +0300

    IGNITE-21282 Fix flaky ItComputeTestEmbedded#cancelsJobLocally (#3060)
---
 .../java/org/apache/ignite/internal/compute/queue/QueueEntry.java   | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git 
a/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueEntry.java
 
b/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueEntry.java
index 89e0fafba6..499c11d860 100644
--- 
a/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueEntry.java
+++ 
b/modules/compute/src/main/java/org/apache/ignite/internal/compute/queue/QueueEntry.java
@@ -49,7 +49,7 @@ class QueueEntry<R> implements Runnable, 
Comparable<QueueEntry<R>> {
 
     private final Lock lock = new ReentrantLock();
 
-    private boolean isInterrupted;
+    private volatile boolean isInterrupted;
 
     /**
      * Constructor.
@@ -103,8 +103,10 @@ class QueueEntry<R> implements Runnable, 
Comparable<QueueEntry<R>> {
         lock.lock();
         try {
             if (workerThread != null) {
-                workerThread.interrupt();
+                // Set the interrupted flag first since it's used to determine 
the final status of the job.
+                // Job could handle interruption and exit before this flag is 
set moving the job to completed state rather than canceled.
                 isInterrupted = true;
+                workerThread.interrupt();
             }
         } finally {
             lock.unlock();

Reply via email to