You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Trent Fisher <tr...@oracle.com> on 2014/09/15 23:39:58 UTC

Error while replaying commit

I have an svnsync replica which is running into this error when I sync:  
"svnsync: E210008: Error while replaying commit".

I was able to work around the problem by doing an svnadmin dump of the 
troublesome revision and loading it on the other server, then tweaking 
the svnsync properties.  However, I decided to spend a bit of time 
trying to dig down to the root cause (since this error pops up 
periodically).

I am doing the svnsync via an svn+ssh url, doing the svnsync as a pull, 
and I am running as the owner of the repository (on both hosts), so 
there should be no permissions issues.  Both machines are running SVN 
1.8.9 on Linux.  To narrow it down to whether the problem is on the 
sending or the receiving side (the error message implies the latter), I 
ran svnrdump:

svnrdump dump --incremental -r511 svn+ssh://scmadm@somehost/some/svn/repos
svnrdump: E210008: Error while replaying commit

Ok, so I narrowed it down to being on the sending side. I ran svnrdump 
on the server itself using a file: url, and that worked. Then I brought 
up an svnserve process and tried using an svn: url, and that worked.  So 
it seems that SSH is getting in the way somehow.  I ran the first 
svnrdump with "--config-option config:tunnels:ssh='$SVN_SSH ssh -vvv'" 
but couldn't see anything wrong from what I could decipher.

I need to move on to other tasks for now, but I was hoping that someone 
may have some insights as to what might be going wrong here, or at least 
some pointers as to what to try next.  It would be awfully helpful if 
the error message actually said what was wrong and there were a way to 
get more verbose/debugging output from svnsync and svnrdump.

++thanks,
trent...

Re: Error while replaying commit

Posted by Philip Martin <ph...@wandisco.com>.
Trent Fisher <tr...@oracle.com> writes:

> I have an svnsync replica which is running into this error when I
> sync: "svnsync: E210008: Error while replaying commit".
>
> I was able to work around the problem by doing an svnadmin dump of the
> troublesome revision and loading it on the other server, then tweaking
> the svnsync properties.  However, I decided to spend a bit of time
> trying to dig down to the root cause (since this error pops up
> periodically).
>
> I am doing the svnsync via an svn+ssh url, doing the svnsync as a
> pull, and I am running as the owner of the repository (on both hosts),
> so there should be no permissions issues.  Both machines are running
> SVN 1.8.9 on Linux.  To narrow it down to whether the problem is on
> the sending or the receiving side (the error message implies the
> latter), I ran svnrdump:
>
> svnrdump dump --incremental -r511 svn+ssh://scmadm@somehost/some/svn/repos
> svnrdump: E210008: Error while replaying commit
>
> Ok, so I narrowed it down to being on the sending side. I ran svnrdump
> on the server itself using a file: url, and that worked. Then I
> brought up an svnserve process and tried using an svn: url, and that
> worked.  So it seems that SSH is getting in the way somehow.  I ran
> the first svnrdump with "--config-option config:tunnels:ssh='$SVN_SSH
> ssh -vvv'" but couldn't see anything wrong from what I could decipher.
>
> I need to move on to other tasks for now, but I was hoping that
> someone may have some insights as to what might be going wrong here,
> or at least some pointers as to what to try next.  It would be awfully
> helpful if the error message actually said what was wrong and there
> were a way to get more verbose/debugging output from svnsync and
> svnrdump.

E210008 is SVN_ERR_RA_SVN_EDIT_ABORTED.  Not sure how best to debug
that, the cleartext across the tunnel would be interesting but using
some sort on non-encrypting tunnel might make the problem go away.

It's possible that svnserve logging will show something of use.  I don't
know of any simple way to enable logging over svn+ssh but you can force
it as follows:

 - create a script on the server containing:

  #!/bin/sh
  /path/to/svnserve --log-file /path/to/log-file -t

 - cause svnrdump to invoke the script instead of svnserve:

  svnrdump dump --incremental -r511 \
   svn+ssh://server/some/svn/repos \
   --config-option config:tunnels:foo='ssh -q scmadm@somehost /path/to/script'

(The hostname in the URL is a placeholder, the tunnel defines which
server to use.)

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*