Keep Alive packets

John Van Essen vanes002 at umn.edu
Thu Oct 7 09:41:59 GMT 2004


On Thu, 07 Oct 2004, Pieter De Wit <pieter at insync.za.net> wrote:
> Hello Everyone,
> 
> Would it be posiable to add a "keep alive" option to rsync. The problem
> I am having is that the connection is dropped while rsync is scanning
> the local directory. If "null" packets are send to the server every 60
> seconds or so, the connection will stay up and the sync will work.

I, too, would like to see this type of feature.

In my case, a very busy file server rsyncs a 12,000 file hierarchy
from an rsync daemon.  It receives the file list quickly, but then,
due to the heavy load and busy disk, it may take it a long time to
read the inodes and directory blocks to work its way down to a
file that needs to be transferred.

I use --timeout=3600, so if it takes more than an hour, the daemon
closes the connection.  When the generator finally tries to tell
the sender to send a file, the sender has already gone away and I
end up with this:

  io timeout after 3600 seconds - exiting
  rsync error: timeout in data send/receive (code 30) at io.c(85)
  rsync: connection unexpectedly closed (324681 bytes read so far)
  rsync error: error in rsync protocol data stream (code 12) at io.c(150)

Sending a message every so often would reset the timer on the sender
and keep it from timing out.

If sending a message every 60 seconds isn't very workable, then
how about sending a keep-alive message after every 1000th file list
entry has been examined and at least 60 seconds have elapsed since
the last keep-alive?

Also - as an optimization, if a --timeout value has been given then
use 1/2 of that value for the keep-alive interval (instead of 60).
-- 
        John Van Essen  Univ of MN Alumnus  <vanes002 at umn.edu>



More information about the rsync mailing list