ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a.@apache.org
Subject [03/28] ignite git commit: IGNITE-8912 Fixed case when PartitionLossPolicy.READ_ONLY_SAFE does not detect partition loss - Fixes #4331.
Date Tue, 17 Jul 2018 21:45:54 GMT
IGNITE-8912 Fixed case when PartitionLossPolicy.READ_ONLY_SAFE does not detect partition loss
- Fixes #4331.

Signed-off-by: Alexey Goncharuk <alexey.goncharuk@gmail.com>


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

Branch: refs/heads/ignite-8783
Commit: eca5c5a410e324e7f2bddf780fab540446fabdc8
Parents: b8a421e
Author: pvinokurov <vinokurov.pasha@gmail.com>
Authored: Fri Jul 13 19:57:35 2018 +0300
Committer: Alexey Goncharuk <alexey.goncharuk@gmail.com>
Committed: Fri Jul 13 19:57:35 2018 +0300

----------------------------------------------------------------------
 .../dht/GridDhtPartitionTopologyImpl.java       | 32 +++-----------------
 .../IgniteCachePartitionLossPolicySelfTest.java | 13 +++++++-
 2 files changed, 17 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/eca5c5a4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index 89cd4c5..d9d8868 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@ -725,35 +725,13 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology
{
                             if (grp.rebalanceEnabled()) {
                                 Collection<ClusterNode> owners = owners(p);
 
-                                // If there are no other owners, then become an owner.
-                                if (F.isEmpty(owners)) {
-                                    boolean owned = locPart.own();
+                                // If an owner node left during exchange, then new exchange
should be started with detecting lost partitions.
 
-                                    assert owned : "Failed to own partition [grp=" + grp.cacheOrGroupName()
+
-                                        ", locPart=" + locPart + ']';
-
-                                    updateSeq = updateLocal(p, locPart.state(), updateSeq,
topVer);
-
-                                    changed = true;
-
-                                    if (grp.eventRecordable(EVT_CACHE_REBALANCE_PART_DATA_LOST))
{
-                                        DiscoveryEvent discoEvt = exchFut.events().lastEvent();
-
-                                        grp.addRebalanceEvent(p,
-                                            EVT_CACHE_REBALANCE_PART_DATA_LOST,
-                                            discoEvt.eventNode(),
-                                            discoEvt.type(),
-                                            discoEvt.timestamp());
-                                    }
-
-                                    if (log.isDebugEnabled()) {
-                                        log.debug("Owned partition [grp=" + grp.cacheOrGroupName()
+
-                                            ", part=" + locPart + ']');
-                                    }
+                                if (!F.isEmpty(owners)) {
+                                    if (log.isDebugEnabled())
+                                        log.debug("Will not own partition (there are owners
to rebalance from) [grp=" + grp.cacheOrGroupName() +
+                                            ", locPart=" + locPart + ", owners = " + owners
+ ']');
                                 }
-                                else if (log.isDebugEnabled())
-                                    log.debug("Will not own partition (there are owners to
rebalance from) [grp=" + grp.cacheOrGroupName() +
-                                        ", locPart=" + locPart + ", owners = " + owners +
']');
                             }
                             else
                                 updateSeq = updateLocal(p, locPart.state(), updateSeq, topVer);

http://git-wip-us.apache.org/repos/asf/ignite/blob/eca5c5a4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
index f4660fa..7cefc67 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCachePartitionLossPolicySelfTest.java
@@ -92,7 +92,7 @@ public class IgniteCachePartitionLossPolicySelfTest extends GridCommonAbstractTe
             }
 
             @Override protected int delayMillis() {
-                return 500;
+                return 250;
             }
         });
 
@@ -173,6 +173,17 @@ public class IgniteCachePartitionLossPolicySelfTest extends GridCommonAbstractTe
     /**
      * @throws Exception if failed.
      */
+    public void testReadWriteSafeWithBackupsAfterKillThreeNodes() throws Exception {
+        partLossPlc = PartitionLossPolicy.READ_WRITE_SAFE;
+
+        backups = 1;
+
+        checkLostPartition(true, true, new TopologyChanger(true, Arrays.asList(3, 2, 1),
Arrays.asList(0, 4)));
+    }
+
+    /**
+     * @throws Exception if failed.
+     */
     public void testReadWriteSafeAfterKillCrd() throws Exception {
         partLossPlc = PartitionLossPolicy.READ_WRITE_SAFE;
 


Mime
View raw message