environment:
- jdk 1.8.0_40-b26
- scala 2.11.7
- akka-remote 2.3.11
If *akka-remote* configuration contains an *invalid *settings,
# setting
log-frame-size-exceeding = off # valid
log-frame-size-exceeding = 1000b # valid
log-frame-size-exceeding = on # invalid (error prone)
the following log message occurs.
address is now gated for [5000] ms. Reason: [exception during creation] Caused
by: [*null*]
detail log message:
[WARN] [07/02/2015 11:32:24.896]
[pulse-service-web-akka.remote.default-remote-dispatcher-5]
[akka.tcp://......../system/endpointManager/reliableEndpointWriter-akka.tcp........]
Association with remote system [akka.tcp://........] has failed, address is
now gated for [5000] ms. Reason: [exception during creation] Caused by: [null]
[ERROR] [07/02/2015 11:32:54.908]
[pulse-service-web-akka.actor.default-dispatcher-22]
[ActorSystem(pulse-service-web)] Error during processing of request
HttpRequest(..................)
akka.pattern.AskTimeoutException: Ask timed out on
[ActorSelection[Anchor(akka.tcp://......../), Path(/user/report)]] after [30000
ms]
at
akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:334)
at akka.actor.Scheduler$$anon$7.run(Scheduler.scala:117)
at
scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:599)
at
scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)
at
scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:597)
at
akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(Scheduler.scala:467)
at
akka.actor.LightArrayRevolverScheduler$$anon$8.executeBucket$1(Scheduler.scala:419)
at
akka.actor.LightArrayRevolverScheduler$$anon$8.nextTick(Scheduler.scala:423)
at
akka.actor.LightArrayRevolverScheduler$$anon$8.run(Scheduler.scala:375)
at java.lang.Thread.run(Thread.java:745)
and debug result.
<https://lh3.googleusercontent.com/-c9_Svwc4D5M/VZTUWzyd_LI/AAAAAAAAELc/83o02GvrNDw/s1600/intellij-debugging.png>
How to solve it like this?
diff --git a/akka-remote/src/main/scala/akka/remote/Endpoint.scala
b/akka-remote/src/main/scala/akka/remote/Endpoint.scala
index af3ec82..3c747b4 100644
--- a/akka-remote/src/main/scala/akka/remote/Endpoint.scala
+++ b/akka-remote/src/main/scala/akka/remote/Endpoint.scala
@@ -28,6 +28,7 @@ import scala.util.control.NonFatal
import java.util.concurrent.locks.LockSupport
import scala.concurrent.Future
import scala.concurrent.blocking
+import java.lang.reflect.InvocationTargetException
/**
* INTERNAL API
@@ -210,7 +211,12 @@ private[remote] class ReliableDeliverySupervisor(
override val supervisorStrategy = OneForOneStrategy(loggingEnabled = false) {
case e @ (_: AssociationProblem) ⇒ Escalate
case NonFatal(e) ⇒
- val causedBy = if (e.getCause == null) "" else s"Caused by:
[${e.getCause.getMessage}]"
+
+ val causedBy = Option(e.getCause).withFilter(_ != null).flatMap {
+ case ec: InvocationTargetException ⇒ Option(ec.getCause).withFilter(_
!= null).map(_.getMessage)
+ case ec ⇒ Some(ec.getMessage)
+ }.fold("")(message ⇒ s"Caused by: [$message]")
+
log.warning("Association with remote system [{}] has failed, address is
now gated for [{}] ms. Reason: [{}] {}",
remoteAddress, settings.RetryGateClosedFor.toMillis, e.getMessage,
causedBy)
uidConfirmed = false // Need confirmation of UID again
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.