From 0aca351d81214947dfef6f28cb7ec41440010a93 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Tue, 23 Aug 2016 17:51:57 +0200 Subject: [PATCH] harden SurviveNetworkInstabilitySpec #18767 --- .../cluster/SurviveNetworkInstabilitySpec.scala | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/SurviveNetworkInstabilitySpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/SurviveNetworkInstabilitySpec.scala index f493be218c..eeeedb7301 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/SurviveNetworkInstabilitySpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/SurviveNetworkInstabilitySpec.scala @@ -330,9 +330,19 @@ abstract class SurviveNetworkInstabilitySpec runOn(side1AfterJoin: _*) { // side2 removed val expected = (side1AfterJoin map address).toSet - awaitAssert(clusterView.members.map(_.address) should ===(expected)) - awaitAssert(clusterView.members.collectFirst { case m if m.address == address(eighth) ⇒ m.status } should ===( - Some(MemberStatus.Up))) + awaitAssert { + // repeat the downing in case it was not successful, which may + // happen if the removal was reverted due to gossip merge, see issue #18767 + runOn(fourth) { + for (role2 ← side2) { + cluster.down(role2) + } + } + + clusterView.members.map(_.address) should ===(expected) + clusterView.members.collectFirst { case m if m.address == address(eighth) ⇒ m.status } should ===( + Some(MemberStatus.Up)) + } } enterBarrier("side2-removed")