Daniel Shahaf <danie...@elego.de> writes: > Philip Martin wrote on Wed, Jul 25, 2012 at 11:09:54 +0100: >> Daniel Shahaf <danie...@elego.de> writes: >> >> > Philip Martin wrote on Wed, Jul 25, 2012 at 10:49:36 +0100: >> >> >> >> I attached to the issue a repository that demonstrates the corruption; >> >> verify doesn't report a problem on that repository. What does verify >> >> check? >> > >> > validate_root_noderev() catches an instance of the #4129 corruption and >> > in its docstring xrefs svn_fs_fs__verify(), so I think the checks in the >> > former are done in the latter too. >> >> validate_root_noderev is only called by write_final_rev and not during >> verify. svn_fs_fs__verify calls svn_fs_fs__verify_root and that does: >> >> /* Issue #4129: bogus predecessors. */ >> /* Check 1: predecessor must be an earlier revision. >> */ >> if (pred_rev >= root->rev) >> return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL, >> "r%ld's root node's predecessor is r%ld" >> " but must be earlier revision", >> root->rev, pred_rev); > > The check was included in svn_fs_fs__verify_root() in r1349313: > > /* Verify explicitly the predecessor of the root. */ > { > ... > /* Check the predecessor's revision. */ > if (pred_id) > { > SVN_ERR(svn_fs_fs__dag_get_node(&pred, root->fs, pred_id, pool)); > SVN_ERR(svn_fs_fs__dag_get_revision(&pred_rev, pred, pool)); > if (pred_rev+1 != root->rev) > /* Issue #4129. */ > return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL, > "r%ld's root node's predecessor is r%ld", > root->rev, pred_rev); > } > {
That check was relaxed by: r1358322 | stefan2 | 2012-07-06 19:04:09 +0100 (Fri, 06 Jul 2012) | 5 lines Relax overly strict consistency check that is not covered by the FSFS format specification. * subversion/libsvn_fs_fs/tree.c (svn_fs_fs__verify_root): fix test and add commentary -- Certified & Supported Apache Subversion Downloads: http://www.wandisco.com/subversion/download