On Wed, 21 Sep 2005, Wayne Davison wrote:

> Date: Wed, 21 Sep 2005 10:06:07 -0700
> From: Wayne Davison
> To: Wojtek.Pilorz
> Cc: rsync@lists.samba.org
> Subject: Re: Nulls instead of data
>
> On Wed, Sep 21, 2005 at 11:55:43AM +0200, Wojtek.Pilorz wrote:
> > After patching rsync with the patch provided, rsync did not quietly
> > produced bad file, which is good, and, unfortunately, it did not produce
> > any data, so there is still some room for improvement;

>
> If you want the partial data saved (instead of discarded), specify
> --partial. Otherwise, I don't see what else you expect rsync to do
> after getting an I/O read error on the source file.
>
> ..wayne..
>

Oh, I understand.

Unfortunately, I could not make more tests during my normal working
hours unless I modify rsync to use smaller read size - reading 256KB over
that slow and unstable link would make other users of that link very
unhappy.
So my question goes:
I would like to recompile rsync with smaller buffers;
in rsync.h I can see

#define SPARSE_WRITE_SIZE (1024)
#define WRITE_SIZE (32*1024)
#define CHUNK_SIZE (32*1024)
#define MAX_MAP_SIZE (256*1024)

#define FILE_EXTENT (256 * 1024)
#define HLINK_EXTENT (128 * 1024)

which values should I change to have e.g. 24KBytes in one read, if that is possible?

BTW.
Was that expected that after unsuccessful read (that one with EIO) data was still
written by the process, with nulls from some point?

It is interesing to compare trace with system log, which says

Sep 21 08:54:36 pc2 kernel: SMB server not responding
Sep 21 08:54:36 pc2 kernel: smb_request: result -5, setting invalid
Sep 21 08:54:36 pc2 kernel: smb_file_read: transftest/rsync-2.6.6.tar.gz validation failed, error=4294967291
Sep 21 08:54:41 pc2 kernel: smb_retry: successful, new pid=2762, generation=40
Sep 21 08:58:32 pc2 kernel: SMB server not responding
Sep 21 08:58:32 pc2 kernel: smb_get_length: recv error = 5
Sep 21 08:58:32 pc2 kernel: smb_request: result -5, setting invalid
Sep 21 08:58:32 pc2 kernel: smb_file_read: transftest/rsync-2.6.6.tar.gz validation failed, error=4294967291
Sep 21 08:58:34 pc2 kernel: smb_retry: successful, new pid=2762, generation=41

I would understand that second read was attempted while SMB process was about
retrying, and that failed.
Perhaps if read had been retried after a few seconds of sleeping it would
succeed.
But I am not suggesting that rsync would be an appropriate place for such
hacks.

Best regards,

Wojtek


--
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html