spark-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chester Chen <ches...@alpinenow.com>
Subject Re: Unit testing Master-Worker Message Passing
Date Wed, 15 Oct 2014 21:18:03 GMT
You can call resolve method on ActorSelection.resolveOne() to see if the
actor is still there or the path is correct. The method returns a future
and you can wait for it with timeout. This way, you know the actor is live
or already dead or incorrect.

Another way, is to send Identify method to ActorSystem, if it returns with
correct identified message; then you can act on it, otherwise, ...

hope this helps

Chester

On Wed, Oct 15, 2014 at 1:38 PM, Matthew Cheah <matthew.c.cheah@gmail.com>
wrote:

> What's happening when I do this is that the Worker tries to get the Master
> actor by calling context.actorSelection(), and the RegisterWorker message
> gets sent to the dead letters mailbox instead of being picked up by
> expectMsg. I'm new to Akka and I've tried various ways to registering a
> "mock" master to no avail.
>
> I would think there would be at least some kind of test for master - worker
> message passing, no?
>
> On Wed, Oct 15, 2014 at 11:28 AM, Nan Zhu <zhunanmcgill@gmail.com> wrote:
>
> > I don’t think there are test cases for Worker itself
> >
> >
> > You can
> >
> >
> > val actorRef = TestActorRef[Master](Props(classOf[Master], ...))(
> > actorSystem) actorRef.underlyingActor.receive(Heartbeat)
> >
> > and use expectMsg to test if Master can reply correct message  by
> assuming
> > Worker is absolutely correct
> >
> > Then in another test case to test if Worker can send register message to
> > Master after receiving Master’s “re-register” instruction, (in this test
> > case assuming that the Master is absolutely right)
> >
> > Best,
> >
> > --
> > Nan Zhu
> >
> > On Wednesday, October 15, 2014 at 2:04 PM, Matthew Cheah wrote:
> >
> > Thanks, the example was helpful.
> >
> > However, testing the Worker itself is a lot more complicated than
> > WorkerWatcher, since the Worker class is quite a bit more complex. Are
> > there any tests that inspect the Worker itself?
> >
> > Thanks,
> >
> > -Matt Cheah
> >
> > On Tue, Oct 14, 2014 at 6:40 PM, Nan Zhu <zhunanmcgill@gmail.com> wrote:
> >
> > You can use akka testkit
> >
> > Example:
> >
> >
> >
> https://github.com/apache/spark/blob/ef4ff00f87a4e8d38866f163f01741c2673e41da/core/src/test/scala/org/apache/spark/deploy/worker/WorkerWatcherSuite.scala
> >
> > --
> > Nan Zhu
> >
> > On Tuesday, October 14, 2014 at 9:17 PM, Matthew Cheah wrote:
> >
> > Hi everyone,
> >
> > I’m adding some new message passing between the Master and Worker actors
> in
> > order to address https://issues.apache.org/jira/browse/SPARK-3736 .
> >
> > I was wondering if these kinds of interactions are tested in the
> automated
> > Jenkins test suite, and if so, where I could find some examples to help
> me
> > do the same.
> >
> > Thanks!
> >
> > -Matt Cheah
> >
> >
> >
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message