Quick update:
another test i ran this time round is that the cluster application is left
running (i.e. Play 2.3 + Akka 2.3.2) and i had a client connect to the
clustered application using Play 2.2 + Akka 2.2.3 and this time round i am
able to connect to the router and send messages to the environment running
Play 2.3 + Akka 2.3.2
Will continue to dig to see what's going on here.
On Monday, April 28, 2014 3:41:07 PM UTC+8, 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.