Running
./basic-tests.py --fsfs-sharding=2 --fsfs-packing
This sets the sharding in db/format to 2 and installs a post-commit script that
packs the repository. The tests fail with
W: ../src/subversion/svn/import-cmd.c:128: (apr_err=2)
W: ../src/subversion/libsvn_client/commit.c:976: (apr_err=2)
W: ../src/subversion/libsvn_repos/commit.c:805: (apr_err=2)
W: ../src/subversion/libsvn_repos/commit.c:189: (apr_err=2)
W: ../src/subversion/libsvn_fs/fs-loader.c:1270: (apr_err=2)
W: ../src/subversion/libsvn_fs_fs/fs_fs.c:8978: (apr_err=2)
W: ../src/subversion/libsvn_fs_fs/fs_fs.c:4165: (apr_err=2)
W: ../src/subversion/libsvn_fs_fs/fs_fs.c:3685: (apr_err=2)
W: ../src/subversion/libsvn_fs_fs/fs_fs.c:3405: (apr_err=2)
W: ../src/subversion/libsvn_fs_fs/fs_fs.c:1644: (apr_err=2)
W: ../src/subversion/libsvn_subr/io.c:2215: (apr_err=2)
W: ../src/subversion/libsvn_subr/io.c:3186: (apr_err=2)
W: svn: E000002: Can't open file
'/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/repos/db/revprops/0/1':
No such file or directory
Traceback (most recent call last):
File "../../../../src/subversion/tests/cmdline/basic_tests.py", line 3057, in
<module>
svntest.main.run_tests(test_list)
File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py",
line 1668, in run_tests
sys.exit(execute_tests(test_list, serial_only))
File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py",
line 1927, in execute_tests
svntest.actions.setup_pristine_greek_repository()
File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/actions.py",
line 92, in setup_pristine_greek_repository
main.pristine_greek_repos_url)
File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py",
line 658, in run_svn
*(_with_auth(_with_config_dir(varargs))))
File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py",
line 347, in run_command
None, *varargs)
File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py",
line 531, in run_command_stdin
raise Failure
svntest.Failure
The problem is that the post-commit hook packs the repository and changes
min-unpacked-rev so that the cached value in the svn_fs_t is out-of-date. Then
when invoke_commit_cb attempts to retrieve the revision properties for date and
author the code does not handle the out-of-date value and only looks for
unpacked files. Note that the commit "succeeds" as the new revision is present
in the repository but the notification to the user has failed.
This only happens with FSFS format 6 (1.8) repositories. If I use a format 4
(1.7) repository and use 1.8 code to do the commit the code handles the packing
and the commit works.