=rem #3870 Stop re-delivery of system messages when watching non-existing sys
* We don't know the UID so we can't quarantine, but we can stop the endpoint writer and drop outstanding system messages
This commit is contained in:
parent
f1edf78979
commit
aa6bdd197e
9 changed files with 62 additions and 25 deletions
|
|
@ -46,7 +46,7 @@ object RemoteWatcherSpec {
|
|||
|
||||
object TestRemoteWatcher {
|
||||
case class AddressTerm(address: Address)
|
||||
case class Quarantined(address: Address, uid: Int)
|
||||
case class Quarantined(address: Address, uid: Option[Int])
|
||||
}
|
||||
|
||||
class TestRemoteWatcher(heartbeatExpectedResponseAfter: FiniteDuration) extends RemoteWatcher(createFailureDetector,
|
||||
|
|
@ -61,7 +61,7 @@ object RemoteWatcherSpec {
|
|||
// that doesn't interfere with the real watch that is going on in the background
|
||||
context.system.eventStream.publish(TestRemoteWatcher.AddressTerm(address))
|
||||
|
||||
override def quarantine(address: Address, uid: Int): Unit = {
|
||||
override def quarantine(address: Address, uid: Option[Int]): Unit = {
|
||||
// don't quarantine in remoting, but publish a testable message
|
||||
context.system.eventStream.publish(TestRemoteWatcher.Quarantined(address, uid))
|
||||
}
|
||||
|
|
@ -200,7 +200,7 @@ class RemoteWatcherSpec extends AkkaSpec(
|
|||
// but no HeartbeatRsp
|
||||
monitorA ! ReapUnreachableTick
|
||||
p.expectMsg(1 second, TestRemoteWatcher.AddressTerm(b.path.address))
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(b.path.address, remoteAddressUid))
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(b.path.address, Some(remoteAddressUid)))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -235,8 +235,8 @@ class RemoteWatcherSpec extends AkkaSpec(
|
|||
// but no HeartbeatRsp
|
||||
monitorA ! ReapUnreachableTick
|
||||
p.expectMsg(1 second, TestRemoteWatcher.AddressTerm(b.path.address))
|
||||
// no quarantine when missing first heartbeat, uid unknown
|
||||
q.expectNoMsg(1 second)
|
||||
// no real quarantine when missing first heartbeat, uid unknown
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(b.path.address, None))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -273,7 +273,7 @@ class RemoteWatcherSpec extends AkkaSpec(
|
|||
// but no HeartbeatRsp
|
||||
monitorA ! ReapUnreachableTick
|
||||
p.expectMsg(1 second, TestRemoteWatcher.AddressTerm(b.path.address))
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(b.path.address, remoteAddressUid))
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(b.path.address, Some(remoteAddressUid)))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -318,7 +318,7 @@ class RemoteWatcherSpec extends AkkaSpec(
|
|||
// but no HeartbeatRsp
|
||||
monitorA ! ReapUnreachableTick
|
||||
p.expectMsg(1 second, TestRemoteWatcher.AddressTerm(c.path.address))
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(c.path.address, remoteAddressUid))
|
||||
q.expectMsg(1 second, TestRemoteWatcher.Quarantined(c.path.address, Some(remoteAddressUid)))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue