=rem #3643 Remove warning message from normal remote system shutdown.
Conflicts: akka-remote/src/main/scala/akka/remote/Remoting.scala project/AkkaBuild.scala
This commit is contained in:
parent
ffa28ca293
commit
fdde09690a
3 changed files with 31 additions and 16 deletions
|
|
@ -102,19 +102,31 @@ private[remote] class EndpointException(msg: String, cause: Throwable) extends A
|
|||
def this(msg: String) = this(msg, null)
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
private[remote] trait AssociationProblem
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
@SerialVersionUID(1L)
|
||||
private[remote] case class ShutDownAssociation(localAddress: Address, remoteAddress: Address, cause: Throwable)
|
||||
extends EndpointException("Shut down address: " + remoteAddress, cause) with AssociationProblem
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
@SerialVersionUID(1L)
|
||||
private[remote] case class InvalidAssociation(localAddress: Address, remoteAddress: Address, cause: Throwable)
|
||||
extends EndpointException("Invalid address: " + remoteAddress, cause)
|
||||
extends EndpointException("Invalid address: " + remoteAddress, cause) with AssociationProblem
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
@SerialVersionUID(1L)
|
||||
private[remote] case class HopelessAssociation(localAddress: Address, remoteAddress: Address, uid: Option[Int], cause: Throwable)
|
||||
extends EndpointException("Catastrophic association error.")
|
||||
extends EndpointException("Catastrophic association error.") with AssociationProblem
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
|
|
@ -128,13 +140,6 @@ private[remote] class EndpointDisassociatedException(msg: String) extends Endpoi
|
|||
@SerialVersionUID(1L)
|
||||
private[remote] class EndpointAssociationException(msg: String, cause: Throwable) extends EndpointException(msg, cause)
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
@SerialVersionUID(1L)
|
||||
private[remote] class QuarantinedUidException(uid: Int, remoteAddress: Address)
|
||||
extends EndpointException(s"Refused association to [$remoteAddress] because its UID [$uid] is quarantined.")
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
|
|
@ -178,7 +183,7 @@ private[remote] class ReliableDeliverySupervisor(
|
|||
def retryGateEnabled = settings.RetryGateClosedFor > Duration.Zero
|
||||
|
||||
override val supervisorStrategy = OneForOneStrategy(settings.MaximumRetriesInWindow, settings.RetryWindow, loggingEnabled = false) {
|
||||
case e @ (_: InvalidAssociation | _: HopelessAssociation | _: QuarantinedUidException) ⇒ Escalate
|
||||
case e @ (_: AssociationProblem) ⇒ Escalate
|
||||
case NonFatal(e) ⇒
|
||||
uidConfirmed = false // Need confirmation of UID again
|
||||
if (retryGateEnabled) {
|
||||
|
|
@ -790,7 +795,7 @@ private[remote] class EndpointReader(
|
|||
case AssociationHandle.Unknown ⇒
|
||||
context.stop(self)
|
||||
case AssociationHandle.Shutdown ⇒
|
||||
throw InvalidAssociation(
|
||||
throw ShutDownAssociation(
|
||||
localAddress,
|
||||
remoteAddress,
|
||||
InvalidAssociationException("The remote system terminated the association because it is shutting down."))
|
||||
|
|
|
|||
|
|
@ -332,6 +332,10 @@ private[remote] object EndpointManager {
|
|||
case _ ⇒ false
|
||||
}
|
||||
|
||||
/**
|
||||
* Marking an endpoint as failed means that we will not try to connect to the remote system within
|
||||
* the gated period but it is ok for the remote system to try to connect to us.
|
||||
*/
|
||||
def markAsFailed(endpoint: ActorRef, timeOfRelease: Deadline): Unit =
|
||||
if (isWritable(endpoint)) {
|
||||
addressToWritable += writableToAddress(endpoint) -> Gated(timeOfRelease)
|
||||
|
|
@ -392,7 +396,16 @@ private[remote] class EndpointManager(conf: Config, log: LoggingAdapter) extends
|
|||
OneForOneStrategy(loggingEnabled = false) {
|
||||
case InvalidAssociation(localAddress, remoteAddress, _) ⇒
|
||||
log.warning("Tried to associate with unreachable remote address [{}]. " +
|
||||
"Address is now quarantined, all messages to this address will be delivered to dead letters.", remoteAddress)
|
||||
"Address is now gated for {} ms, all messages to this address will be delivered to dead letters.",
|
||||
remoteAddress, settings.UnknownAddressGateClosedFor.toMillis)
|
||||
endpoints.markAsFailed(sender, Deadline.now + settings.UnknownAddressGateClosedFor)
|
||||
context.system.eventStream.publish(AddressTerminated(remoteAddress))
|
||||
Stop
|
||||
|
||||
case ShutDownAssociation(localAddress, remoteAddress, _) ⇒
|
||||
log.debug("Remote system with address [{}] has shut down. " +
|
||||
"Address is now gated for {} ms, all messages to this address will be delivered to dead letters.",
|
||||
remoteAddress, settings.UnknownAddressGateClosedFor.toMillis)
|
||||
endpoints.markAsFailed(sender, Deadline.now + settings.UnknownAddressGateClosedFor)
|
||||
context.system.eventStream.publish(AddressTerminated(remoteAddress))
|
||||
Stop
|
||||
|
|
@ -418,9 +431,6 @@ private[remote] class EndpointManager(conf: Config, log: LoggingAdapter) extends
|
|||
context.system.eventStream.publish(AddressTerminated(remoteAddress))
|
||||
Stop
|
||||
|
||||
case _: QuarantinedUidException ⇒
|
||||
Stop
|
||||
|
||||
case NonFatal(e) ⇒
|
||||
// logging
|
||||
e match {
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ class RemotingSpec extends AkkaSpec(RemotingSpec.cfg) with ImplicitSender with D
|
|||
}
|
||||
|
||||
"send warning message for wrong address" in {
|
||||
filterEvents(EventFilter.warning(pattern = "Address is now quarantined", occurrences = 1)) {
|
||||
filterEvents(EventFilter.warning(pattern = "Address is now gated for ", occurrences = 1)) {
|
||||
system.actorFor("akka.test://nonexistingsystem@localhost:12346/user/echo") ! "ping"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue