Merge pull request #2118 from akka/wip-3973-joinSeedNodeProcess-name-master-patriknw

=clu #3973 Make JoinSeedNodeProcess actor name unique (forward port)
This commit is contained in:
Patrik Nordwall 2014-04-09 14:04:30 +02:00
commit 79e10f5964
2 changed files with 14 additions and 5 deletions

View file

@ -236,6 +236,7 @@ private[cluster] class ClusterCoreDaemon(publisher: ActorRef) extends Actor with
var gossipStats = GossipStats()
var seedNodeProcess: Option[ActorRef] = None
var seedNodeProcessCounter = 0 // for unique names
/**
* Looks up and returns the remote cluster command connection for the specific address.
@ -372,12 +373,16 @@ private[cluster] class ClusterCoreDaemon(publisher: ActorRef) extends Actor with
if (seedNodes == immutable.IndexedSeq(selfAddress)) {
self ! ClusterUserAction.JoinTo(selfAddress)
None
} else if (seedNodes.head == selfAddress) {
} else {
// use unique name of this actor, stopSeedNodeProcess doesn't wait for termination
seedNodeProcessCounter += 1
if (seedNodes.head == selfAddress) {
Some(context.actorOf(Props(classOf[FirstSeedNodeProcess], seedNodes).
withDispatcher(UseDispatcher), name = "firstSeedNodeProcess"))
withDispatcher(UseDispatcher), name = "firstSeedNodeProcess-" + seedNodeProcessCounter))
} else {
Some(context.actorOf(Props(classOf[JoinSeedNodeProcess], seedNodes).
withDispatcher(UseDispatcher), name = "joinSeedNodeProcess"))
withDispatcher(UseDispatcher), name = "joinSeedNodeProcess-" + seedNodeProcessCounter))
}
}
}
}

View file

@ -47,6 +47,10 @@ abstract class JoinSeedNodeSpec
runOn(seed1, seed2, seed3) {
cluster.joinSeedNodes(seedNodes)
runOn(seed3) {
// it is allowed to call this several times (verifies ticket #3973)
cluster.joinSeedNodes(seedNodes)
}
awaitMembersUp(3)
}
enterBarrier("after-1")