On Thu, 07 Oct 2004, Pieter De Wit <pieter@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@umn.edu>