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.

Reply via email to