On Wed, Jun 19, 2013 at 3:30 PM, Philip Martin
<philip.mar...@wandisco.com>wrote:

> stef...@apache.org writes:
>
> > Author: stefan2
> > Date: Tue Jun 18 20:59:07 2013
> > New Revision: 1494298
>
> >  static svn_error_t *
> > @@ -1501,6 +1507,29 @@ upgrade_pack_revprops(svn_fs_t *fs,
> >        svn_pool_clear(iterpool);
> >      }
>
> Is there any reason for upgrade_pack_revprops and
> upgrade_cleanup_pack_revprops to clear the pool at the end of the loop
> rather than the standard pattern at the start of the loop?
>
> >    /* Bump the format file. */
> > -  return write_format(format_path, SVN_FS_FS__FORMAT_NUMBER,
> max_files_per_dir,
> > -                      TRUE, pool);
> > +  SVN_ERR(write_format(format_path, SVN_FS_FS__FORMAT_NUMBER,
> > +                       max_files_per_dir, TRUE, pool));
> > +
> > +  /* Now, it is safe to remove the redundant revprop files. */
> > +  if (needs_revprop_shard_cleanup)
> > +    SVN_ERR(upgrade_pack_revprops(fs, pool));
>
> That's corrected to upgrade_cleanup_pack_revprops in a later revision.
>
> This whole change is to handle a rerun after an interrupted upgrade but
> suppose the rerun is itself interupted between write_format and
> upgrade_cleanup_pack_revprops.  Is the user reduced to manually removing
> the revprop files?  Neither upgrade nor pack appear to do it.
>

I consider them "leftovers" like abandoned transactions.
But I agree that we should do something about them.

Perhaps pack should cleanup old revprop files?
>

Good idea. Done in r1495566. Not foolproof but covers
99% percent of the already fringy "I cancel upgrade' case.

-- Stefan^2.

Reply via email to