IGNITE-5554 ServiceProcessor may process failed reassignments in timeout thread


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/517a23d2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/517a23d2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/517a23d2

Branch: refs/heads/ignite-2.1
Commit: 517a23d252078e62a8addca55ca78497e5226b5b
Parents: 3314a45
Author: mcherkasov <mcherka...@gridgain.com>
Authored: Fri Jun 30 20:23:55 2017 +0300
Committer: mcherkasov <mcherka...@gridgain.com>
Committed: Fri Jul 7 17:44:16 2017 +0300

----------------------------------------------------------------------
 .../service/GridServiceProcessor.java           | 24 +++++++++-----------
 1 file changed, 11 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/517a23d2/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index d67f2d1..23a29f8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutorService;
@@ -1509,18 +1510,11 @@ public class GridServiceProcessor extends 
GridProcessorAdapter implements Ignite
                 }
 
                 @Override public void onTimeout() {
-                    GridSpinBusyLock busyLock = 
GridServiceProcessor.this.busyLock;
-
-                    if (busyLock == null || !busyLock.enterBusy())
-                        return;
-
-                    try {
-                        // Try again.
-                        onDeployment(dep, topVer);
-                    }
-                    finally {
-                        busyLock.leaveBusy();
-                    }
+                    depExe.execute(new DepRunnable() {
+                        @Override public void run0() {
+                            onDeployment(dep, topVer);
+                        }
+                    });
                 }
             });
         }
@@ -1716,7 +1710,11 @@ public class GridServiceProcessor extends 
GridProcessorAdapter implements Ignite
                         }
 
                         @Override public void onTimeout() {
-                            onReassignmentFailed(topVer, retries);
+                            depExe.execute(new Runnable() {
+                                public void run() {
+                                    onReassignmentFailed(topVer, retries);
+                                }
+                            });
                         }
                     });
                 }

Reply via email to