Same issue with Play 2.3.6 and Akka 2.3.6, spent a day trying all kinds of
workarounds and nothing worked.
Proof that technologies like these will take time to become reliable for
companies. A day lost looking for hopeless solutions to problems like these
is too much for young startups, and this is what makes people like us avoid
all of this. Truly disappointed.
On Monday, 28 April 2014 09:41:07 UTC+2, Raymond Tay wrote:
>
> Hi Akka users,
>
> I've got a situation that's perplexing. It began with Akka 2.3.2 and i
> have a Play 2.3-M1 attempting to connect to a Akka 2.3.2 actor (part of a
> cluster named TrailingHammer) and it's not able to do so by throwing an
> error message like the following:
>
> play.api.Application$$anon$1: Execution exception[[MatchError:
> Some(Failure(akka.actor.ActorNotFound: Actor not found for:
> ActorSelection[Anchor(akka://application/deadLetters),
> Path(/user/ShadowFrontend)])) (of class scala.Some)]]
> at play.api.Application$class.handleError(Application.scala:297)
> ~[play_2.10-2.3-M1.jar:2.3-M1]
> at play.api.DefaultApplication.handleError(Application.scala:403)
> [play_2.10-2.3-M1.jar:2.3-M1]
> at
> play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:318)
>
> [play_2.10-2.3-M1.jar:2.3-M1]
> at
> play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:318)
>
> [play_2.10-2.3-M1.jar:2.3-M1]
> at scala.Option.map(Option.scala:145) [scala-library.jar:na]
> Caused by: scala.MatchError: Some(Failure(akka.actor.ActorNotFound: Actor
> not found for: ActorSelection[Anchor(akka://application/deadLetters),
> Path(/user/ShadowFrontend)])) (of class scala.Some)
>
> The code in the Play controller looks like this:
>
> lazy val config = ConfigFactory.load("TrailingHammer")
>
> lazy val notificationHost =
> config.getString("bamboo.persistence.cluster.hostname")
> lazy val notificationPort =
> config.getInt("bamboo.persistence.cluster.port")
> lazy val notificationServiceName = config.getString("
> bamboo.persistence.cluster.name")
> implicit lazy val timeOut =
> Timeout(config.getInt("bamboo.persistence.cluster.query.timeout") seconds)
>
> val backend = Akka.system.actorSelection(RootActorPath(backendAddress) /
> "user" / "ShadowFrontend")
>
>
>
> This code is pretty idiomatic and i've used this successfully in Akka
> [2.2.3] and wasn't too sure what's going on but the message on
> *Path(/user/ShadowFrontend)* seems not to be catching the entire path
> which should read like "akka.tcp://
> [email protected]:2553/user/ShadowFrontend" and when i plugged
> this string directly into the code and restarted all my services, it gave
> me the following error message repeatedly indicating that somehow the
> default actor for handling these faults have died as well. :
>
> [INFO] [04/28/2014 15:36:58.380]
> [application-akka.actor.default-dispatcher-3]
> [akka://application/deadLetters] Message [java.lang.String] from
> Actor[akka://application/deadLetters] to
> Actor[akka://application/deadLetters] was not delivered. [1] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> [error] play - Cannot invoke the action, eventually got an error:
> akka.pattern.AskTimeoutException:
> Recipient[Actor[akka://application/deadLetters]] had already been
> terminated.
> [error] application -
>
> ! @6i3hf3e84 - Internal server error, for (POST) [/audit] ->
>
> play.api.Application$$anon$1: Execution exception[[AskTimeoutException:
> Recipient[Actor[akka://application/deadLetters]] had already been
> terminated.]]
> at play.api.Application$class.handleError(Application.scala:297)
> ~[play_2.10-2.3-M1.jar:2.3-M1]
> at play.api.DefaultApplication.handleError(Application.scala:403)
> [play_2.10-2.3-M1.jar:2.3-M1]
> at
> play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:318)
>
> [play_2.10-2.3-M1.jar:2.3-M1]
> at
> play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:318)
>
> [play_2.10-2.3-M1.jar:2.3-M1]
> at scala.Option.map(Option.scala:145) [scala-library.jar:na]
> Caused by: akka.pattern.AskTimeoutException:
> Recipient[Actor[akka://application/deadLetters]] had already been
> terminated.
> at akka.pattern.AskableActorRef$.ask$extension(AskSupport.scala:132)
> ~[akka-actor_2.10-2.3.2.jar:na]
> at akka.pattern.AskableActorRef$.$qmark$extension(AskSupport.scala:144)
> ~[akka-actor_2.10-2.3.2.jar:na]
>
>
>
> Any ideas guys ?
>
> Thanks in advance!
> Raymond
>
--
>>>>>>>>>> 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.