[racket] remote tasks

From: Eli Barzilay (eli at barzilay.org)
Date: Wed May 16 17:22:30 EDT 2012

A few minutes ago, Kevin Tew wrote:
> On 05/15/2012 09:37 AM, Eli Barzilay wrote:
> > More issues:
> >
> > * [...]
> >
> >   The "/var/tmp" path means that this was started from the nightly
> >   build -- is there some test that uses that port?  If so, then
> >   it's a bad idea to risk leaving a running process and worse to
> >   have it open a port -- can you add code that checks that the
> >   process is dead and kill it if it isn't?
> There were some tests that used to run nightly, but they have been
> disabled for a while.  This shouldn't be a problem anymore for
> nightly builds.

Given the open tcp port, I think that you should add some comment next
to the disabled tests about it.

> > * Openning a tcp port for each node seems pretty bad in general --
> >   if it's ssh-ing to the other machine, why not use the standard
> >   IO ports and avoid the potential problems?  (Eg, for the build
> >   script I would never use a system that just opens a random port
> >   -- even if all of the machines are protected by a firewall, a
> >   stuck build process would be very problematic.)
> The distributed system, by default, builds a complete graph between
> the nodes.  The star network of ssh connections is not what I wanted
> to implement.

Well, you get some advantage with a complete graph, but IMO the
disadvantage of openning ports is a major one, since it makes this
something that is only useful on trusted LANs.

> > * The documentation says: "The same user account is used across
> >   all nodes in the distributed network" -- is that really needed?
> >   If it uses ssh to connect, then "ssh foo" could use a different
> >   username if my .ssh/config sets that up, and in addition is
> >   there any problem with "ssh foo at bar"?
> It will use a different username if your .ssh/config sets that up.
> It doesn't support a "user at host" hostname string, so that won't work.

Is there a reason for not allowing it?

> > * Later it says: "All machines run the same version of Racket" --
> >   if this is required because it uses zo to pass around data, then
> >   it's better to say that explicitly.  (Otherwise it's not clear:
> >   should it be exactly the same racket build for the same platform
> >   on both machines?  Maybe it should only have the same
> >   functionality wrt the places libraries?)
> I'm being conservative for now.  Currently, serialization just uses
> read and write.

So I think that a note about the possibility of using zo binary data
would be a good addition.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.