You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/12/25 07:36:39 UTC
[6/6] ignite git commit: ignite-647
ignite-647
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bf101deb
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bf101deb
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bf101deb
Branch: refs/heads/ignite-1537
Commit: bf101deb96d4a718d12fcbc857c9f272b4335166
Parents: 023ea3d
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 25 09:11:33 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 25 09:11:33 2015 +0300
----------------------------------------------------------------------
.../internal/processors/cache/GridCacheIoManager.java | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/bf101deb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
index 2a555c1..b297827 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java
@@ -124,7 +124,15 @@ public class GridCacheIoManager extends GridCacheSharedManagerAdapter {
if (cacheMsg.partitionExchangeMessage()) {
if (cacheMsg instanceof GridDhtAffinityAssignmentRequest) {
- fut = cctx.exchange().affinityReadyFuture(new AffinityTopologyVersion(cctx.localNode().order()));
+ assert cacheMsg.topologyVersion() != null : cacheMsg;
+
+ AffinityTopologyVersion startTopVer = new AffinityTopologyVersion(cctx.localNode().order());
+
+ assert cacheMsg.topologyVersion().compareTo(startTopVer) > 0 :
+ "Invalid affinity request [startTopVer=" + startTopVer + ", msg=" + cacheMsg + ']';
+
+ // Need to wait for initial exchange to avoid race between cache start and affinity request.
+ fut = cctx.exchange().affinityReadyFuture(startTopVer);
if (fut != null && !fut.isDone()) {
cctx.kernalContext().closure().runLocalSafe(new Runnable() {