#1312: quick rsync for simfactory
Reporter:Frank Löffler
Status:new
Milestone:
Version:development version
Type:enhancement
Priority:minor
Component:SimFactory

Comment (by Roland Haas):

Such a quick option is very dangerous. Editing on the remote system is not required to end up with an inconsistent state.

It can be triggered by the following steps:

  1. use sim sync to copy to a remote cluster
  2. edit on your local machine
  3. use sim build on the remote cluster
  4. use sim sync to copy to the remote cluster once more

Since 3 happened after 2 the object files created on the cluster now have a timestamp newer than the source files on the local machine. Now since the --times option (needed to make timestamp based skipping possible) also causes rsync to set the time stamp of the copied files to the timestamp on the source system in 4 (see https://linux.die.net/man/1/rsync), make will not consider the object file to be out of date wrt to its source file (that was just copied in).

So a sim build on the cluster after 4 will not recompile files even though those files were changed (and rsync in fact copied them because the time stamp differed).

You can currently get back the behaviour you desire by setting your rsyncopts to --times in your defs.local.ini. If adding such a qick option I would try and name it --unsafe to make very clear to anyone using it that it hands out rope and you may now hang yourself.

Note that steps 1 -- 4 can very easily happen if you have multiple remote machines if you every compile without doing a sim sync just before.

--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/1312/quick-rsync-for-simfactory