fs_fs.c:recover_body() needs to be taught that the youngest revision
does not necessarily have a revprop file.  The following repository
demonstrates the bug:

    % cat db/format
    5
    layout sharded 4
    % cat db/current
    3
    % find db/rev*
    db/revprops
    db/revprops/revprops.db
    db/revs
    db/revs/0.pack
    db/revs/0.pack/manifest
    db/revs/0.pack/pack
    % svnadmin recover ./
    Repository lock acquired.
    Please wait; recovering the repository may take some time...
    subversion/libsvn_repos/repos.c:1740: (apr_err=160004)
    subversion/libsvn_fs_fs/fs_fs.c:606: (apr_err=160004)
    subversion/libsvn_fs_fs/fs_fs.c:6780: (apr_err=160004)
    svnadmin: Revision 3 has a revs file but no revprops file
    %

I created the repository as follows:

    % svnadmin create r
    % sed -i 2s/1000/4/ r/db/format
    % for i in 1 2 3; do svn mkdir file://`pwd`/r/$i -mr$i; done

Found by: svnadmin_tests 13, when built with
-DSVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR=4 and -DPACK_AFTER_EVERY_COMMIT.

Daniel

Reply via email to