Talking to egagnon on IRC it appears that there is an issue with the
svnadmin hotcopy command when the repository is _very_ large, greater than
2Gb. In short it appears that we use apr_open_file to open each file for
copy. This open does not request O_LARGEFILE and so the open fails for
large string database.
In the example egagnon was trying to copy a repository with a strings file
of 3217223680. He was trying to copy it to the same filesystem prior to
backup. The copy itself failed as below:
# svnadmin hotcopy --clean-logs /hd/b/SUBVERSION/
/hd/b/hot-backup-subversion/
svn: File too large
svn: svn_io_copy_file: error copying '/hd/b/SUBVERSION/db/strings' to
'/hd/b/hot-backup-subversion/db/strings.tmp'
#
stracing the command shows the failure:
chmod("/hd/b/hot-backup-subversion/db/representations.tmp", 0644) = 0
rename("/hd/b/hot-backup-subversion/db/representations.tmp",
"/hd/b/hot-backup-subversion/db/representations") = 0
open("/hd/b/hot-backup-subversion/db/strings.tmp",
O_RDWR|O_CREAT|O_EXCL, 0666) = 6
close(6) = 0
open("/hd/b/SUBVERSION/db/strings", O_RDONLY) = -1 EFBIG (File too
large)
write(2, "svn: File too large\n", 20svn: File too large
Testing on this system shows that O_LARGEFILE support is available and used.
open("/hd/b/SUBVERSION/db/strings", O_RDONLY|O_LARGEFILE) = 3
That brings me to the real question. Clearly there is an issue here with
large
repositories. However, it is not clear what is a fault here. Is this an
underlying failure with APR, ie the problem is with the APR library and we
should be looking to filing an issue against that. Or should we be looking
for another way of handling these copies? Coding them ourselves etc?
I have had a brief look at the dev list archives and the issue tracker and
can't find anything relating to this?
Comments or thoughts?
Cheers.
-apw
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Dec 5 20:52:03 2003