[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Possible incompatibility of svn_repos_verify_fs2() in 1.9.0-rc1

From: Evgeny Kotkov <evgeny.kotkov_at_visualsvn.com>
Date: Mon, 8 Jun 2015 20:06:39 +0300

Branko Čibej <brane_at_wandisco.com> writes:

>
> I completed your patch and committed the fix in r1683311. Please review!
>
> -- Brane

Sorry, I was on vacation last week and couldn't look at this fix earlier.

I reviewed the committed patch and tested how Subversion 1.9.x behaves with it,
as the change itself got merged into branches/1.9.x in r1683658. From what I
witness, 'svnadmin verify' now erroneously reports the same error twice for a
corrupted repository:

  * Verifying repository metadata ...
  * Verified revision 0.
  * Verified revision 1.
  * Error verifying revision 2.
  svnadmin: E160062: Malformed node revision ID string
  svnadmin: E160062: Malformed node revision ID string

Relevant hunks of r1683311 are located in subversion/libsvn_repos/dump.c:2433
and :2466, where we send the error notification and immediately return the same
error to the caller:
[[[
    ...
    else if (err)
      {
        notify_verification_error(rev, err, notify_func, notify_baton,
                                  iterpool);

        if (!keep_going)
          {
            /* Return the error, the caller doesn't want us to continue. */
            return svn_error_trace(err);
          }
    ...
]]]

The caller (subversion/svnadmin/svnadmin.c:1908) writes both of these errors
to stderr, and that results in the erroneous output.

Regards,
Evgeny Kotkov
Received on 2015-06-08 19:08:13 CEST

This is an archived mail posted to the Subversion Dev mailing list.