On Mon, Nov 14, 2022 at 4:31 PM JITHIN K <jithin...@gmail.com> wrote:
>
> Hello Team,
>
> I use Subversion 1.13 in Ubuntu 20.04.5 LTS and sync a repository size of 
> 300GB to a mirror server ( same version of SVN and OS ).
>
> I get the following warning svnsync: E120106: ra_serf: The server sent a 
> truncated HTTP response body every time ( I had to take a dump of specific 
> revisions and load it in the mirror server ).  Did anyone face this problem 
> while in sync? Is there any solution?
>
> Thank you.
> Jithin K

svnsync works inefficiently when both URLs (source and destination) in
the command use HTTP(S). The timeout issue can occur when both URLs
use HTTP(S):
1. The destination repository receives a transaction and has to commit
it. This operation can take some time.
2. svnsync keeps the connection to both source and destination
repositories over HTTP(S) and waits for a response from the
destination server. The transaction is still being committed.
3. The source server closes the connection due to a timeout because
svnsync was still waiting for the response from the destination
server.

To solve this problem, you need to switch the local URL to file://.
See examples below.

You normally run svnsync sync on one of two servers involved in the
replication (source or target/destination). And the URL to a local
repository has to use the file:// direct local access protocol. Local
URL means the file:// URL to a repository on the server's disk.

When one of the URLs is local, svnsync does not need to contact both
servers remotely via HTTP(S) and one of the repositories is always
accessed directly on disk. This rules out potential timeout issues
such as the one described in your email.

Here is a syntax example from SVNBook:
[[[
svnsync synchronize DEST_URL [SOURCE_URL]
]]]

The target or source repository URL has to be local:

If you run this command on there source server, then the SOURCE_URL
has to be local:
[[[
svnsync sync "https://svn1.example.com/svn/MyRepo";
"file:///C:/Repositories/MyRepo"
]]]

If you run this command on the target server then the DEST_URL has to be local:
[[[
svnsync sync "file:///C:/Repositories/MyRepo"
"https://svn1.example.com/svn/MyRepo";
]]]

Based on my answer at https://stackoverflow.com/a/70059081.


--
With best regards,
Pavel Lyalyakin
VisualSVN Team

Reply via email to