You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by gv...@apache.org on 2019/01/31 16:51:20 UTC
[ignite] branch master updated: IGNITE-11121: MVCC TX:
AssertionError in discovery manager on BLT change fixed. This closes #5963.
This is an automated email from the ASF dual-hosted git repository.
gvvinblade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 3653230 IGNITE-11121: MVCC TX: AssertionError in discovery manager on BLT change fixed. This closes #5963.
3653230 is described below
commit 36532308292dcd8aa8139c4c2642f7f7b4640961
Author: ipavlukhin <vo...@gmail.com>
AuthorDate: Thu Jan 31 19:50:58 2019 +0300
IGNITE-11121: MVCC TX: AssertionError in discovery manager on BLT change fixed. This closes #5963.
---
.../ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java | 7 +++++--
.../internal/processors/cache/transactions/IgniteTxManager.java | 3 ++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
index b333d33..3ed686d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
@@ -452,8 +452,11 @@ public class MvccProcessorImpl extends GridProcessorAdapter implements MvccProce
RecoveryBallotBox ballotBox = recoveryBallotBoxes
.computeIfAbsent(nodeId, uuid -> new RecoveryBallotBox());
- ballotBox
- .voters(evt.topologyNodes().stream().map(ClusterNode::id).collect(Collectors.toList()));
+ ballotBox.voters(evt.topologyNodes().stream()
+ // Nodes not supporting MVCC will never send votes to us. So, filter them away.
+ .filter(this::supportsMvcc)
+ .map(ClusterNode::id)
+ .collect(Collectors.toList()));
tryFinishRecoveryVoting(nodeId, ballotBox);
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index e8d1a3f..b3df67a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -2541,7 +2541,8 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
", failedNodeId=" + evtNodeId + ']');
// Null means that recovery voting is not needed.
- GridCompoundFuture<IgniteInternalTx, Void> allTxFinFut = node.isClient() && mvccCrd != null
+ GridCompoundFuture<IgniteInternalTx, Void> allTxFinFut =
+ node.isClient() && mvccCrd != null && mvccCrd.nodeId() != null
? new GridCompoundFuture<>() : null;
for (final IgniteInternalTx tx : activeTransactions()) {