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

'svnadmin recover' with FSFS revprop packing: edge case bug

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Sun, 31 Jan 2010 00:00:36 +0200 (IST)

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
Received on 2010-01-30 23:04:04 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.