Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-4220

post-commit revprop packing breaks commit

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • trunk
    • 1.8.0
    • libsvn_fs_fs
    • None

    Description

      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.
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            philipm Philip Martin
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: