D D <[email protected]> writes:
> I'd be interested to know if svnadmin employs some memory buffer to
> hot-copy.
> The offsets where data corruption starts look like multiples of 0x1000
> which is 4K.
> The NTFS cluster size on the disk is exactly 4K.
> If svnadmin just calls the OS to copy each file the problem should either
> be in the OS
> or the disk.
Hotcopy uses libsvn_subr/io.c:copy_contents where SVN__STREAM_CHUNK_SIZE
is 16384:
/* Copy bytes till the cows come home. */
while (1)
{
char buf[SVN__STREAM_CHUNK_SIZE];
apr_size_t bytes_this_time = sizeof(buf);
apr_status_t read_err;
apr_status_t write_err;
/* Read 'em. */
read_err = apr_file_read(from_file, buf, &bytes_this_time);
if (read_err && !APR_STATUS_IS_EOF(read_err))
{
return read_err;
}
/* Write 'em. */
write_err = apr_file_write_full(to_file, buf, bytes_this_time, NULL);
if (write_err)
{
return write_err;
}
if (read_err && APR_STATUS_IS_EOF(read_err))
{
/* Return the results of this close: an error, or success. */
return APR_SUCCESS;
}
}
--
Philip