Disallow re-joining, see #2873
* Disallow join requests when already part of a cluster * Remove wipe state when joining, since join can only be performed from empty state * When trying to join, only accept gossip from that member * Ignore gossips from unknown (and unreachable) members * Make sure received gossip contains selfAddress * Test join of fresh node with same host:port * Remove JoinTwoClustersSpec * Welcome message as reply to Join * Retry unsucessful join request * AddressUidExtension * Uid in cluster Member identifier To be able to distinguish nodes with same host:port after restart. * Ignore gossip with wrong uid * Renamed Remove command to Shutdown * Use uid in vclock identifier * Update sample, Member apply is private * Disabled config duration syntax and cleanup of io settings * Update documentation
This commit is contained in:
parent
cdf717e855
commit
9e56ab6fe5
35 changed files with 795 additions and 546 deletions
|
|
@ -92,8 +92,8 @@ private[io] abstract class TcpConnection(val channel: SocketChannel,
|
|||
doWrite(handler)
|
||||
if (!writePending) // writing is now finished
|
||||
handleClose(handler, closeCommander, closedEvent)
|
||||
case SendBufferFull(remaining) ⇒ pendingWrite = remaining; selector ! WriteInterest
|
||||
case WriteFileFinished ⇒ pendingWrite = null; handleClose(handler, closeCommander, closedEvent)
|
||||
case SendBufferFull(remaining) ⇒ { pendingWrite = remaining; selector ! WriteInterest }
|
||||
case WriteFileFinished ⇒ { pendingWrite = null; handleClose(handler, closeCommander, closedEvent) }
|
||||
case WriteFileFailed(e) ⇒ handleError(handler, e) // rethrow exception from dispatcher task
|
||||
|
||||
case Abort ⇒ handleClose(handler, Some(sender), Aborted)
|
||||
|
|
@ -122,7 +122,7 @@ private[io] abstract class TcpConnection(val channel: SocketChannel,
|
|||
pendingWrite = createWrite(write)
|
||||
doWrite(handler)
|
||||
|
||||
case SendBufferFull(remaining) ⇒ pendingWrite = remaining; selector ! WriteInterest
|
||||
case SendBufferFull(remaining) ⇒ { pendingWrite = remaining; selector ! WriteInterest }
|
||||
case WriteFileFinished ⇒ pendingWrite = null
|
||||
case WriteFileFailed(e) ⇒ handleError(handler, e) // rethrow exception from dispatcher task
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue