Feedback on 2.4.7pre1

Carey Jung carey at itfreedom.com
Thu Sep 6 13:01:10 EST 2001


Thanks.  I don't feel so alone, now.  :-)

> -----Original Message-----
> From: David Bolen [mailto:db3l at fitlinxx.com]
> Sent: Wednesday, September 05, 2001 9:54 PM
> To: 'Carey Jung'
> Cc: rsync list
> Subject: RE: Feedback on 2.4.7pre1
>
>
> Carey Jung [carey at itfreedom.com] writes:
>
> > The only thing we did was set timeout=0 -- which I guess is unnecessary.
> > The semantics of this flag are a bit unclear.  We thought was
> 'time since
> > response from a server', but it seems to be total runtime of rsync.
>
> Yes, it's supposed to represent an I/O timeout (that is lack of
> communication for that long), not overall runtime of rsync.  There was
> an old bug that did have the behavior of effectively making this into
> an overall process timeout though.  In receive mode, it's really the
> child doing the I/O and thus needing to check the timeout.  But the
> parent process used read_int() to wait for the child which in turn
> applied the same timeout and was effectively a timeout for the overall
> process execution.
>
> A small patch to main.c was proposed by Neil Schellenberger
> [nschelle at crosskeys.com] on this list back in June of 2000 - perhaps
> it never actually made it into the development tree.  Or perhaps it
> was resolved some other way, although from your comments I'm guessing
> not.  I've been running with it locally applied ever since then without
> a problem (and we definitely run with timeouts on all of our uses).
>
> I don't have Neil's original mail handy at the moment but have
> enclosed a context diff from when I applied it to my 2.4.3 based tree.
> It still applies cleanly to the latest CVS sources.
>
> -- David
>
> /-----------------------------------------------------------------------\
>  \               David Bolen            \   E-mail: db3l at fitlinxx.com  /
>   |             FitLinxx, Inc.            \  Phone: (203) 708-5192    |
>  /  860 Canal Street, Stamford, CT  06902   \  Fax: (203) 316-5150     \
> \-----------------------------------------------------------------------/
>
> 	  - - - - - - - - - - - - - - - - - - - - - - - - -
>
> RCS file: e:/binaries/cvs/ni/bin/rsync/main.c,v
> retrieving revision 1.2
> retrieving revision 1.3
> diff -c -r1.2 -r1.3
> *** main.c	2000/05/30 18:34:55	1.2
> --- main.c	2000/06/30 19:10:32	1.3
> ***************
> *** 279,289 ****
> --- 279,291 ----
>   	int status=0;
>   	int recv_pipe[2];
>   	int error_pipe[2];
> + 	int io_timeout_save = -1;
>   	extern int preserve_hard_links;
>   	extern int delete_after;
>   	extern int recurse;
>   	extern int delete_mode;
>   	extern int remote_version;
> + 	extern int io_timeout;
>
>   	if (preserve_hard_links)
>   		init_hard_links(flist);
> ***************
> *** 339,344 ****
> --- 341,349 ----
>
>   	io_set_error_fd(error_pipe[0]);
>
> + 	io_timeout_save = io_timeout;
> + 	io_timeout = 0;		/* child is managing timeouts */
> +
>   	generate_files(f_out,flist,local_name,recv_pipe[0]);
>
>   	read_int(recv_pipe[0]);
> ***************
> *** 348,353 ****
> --- 353,360 ----
>   		write_int(f_out, -1);
>   	}
>   	io_flush();
> +
> + 	io_timeout = io_timeout_save;
>
>   	kill(pid, SIGUSR2);
>   	wait_process(pid, &status);
>
>





More information about the rsync mailing list