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

Re: Divide by zero at subversion/libsvn_fs_fs/fs_fs.c:upgrade_pack_revprops() (was Re: SVN crach Log)

From: Daniel Shahaf <danielsh_at_elego.de>
Date: Tue, 18 Jun 2013 20:18:13 +0300

Ivan Zhakov wrote on Tue, Jun 18, 2013 at 21:10:49 +0400:
> On Tue, Jun 18, 2013 at 9:07 PM, Daniel Shahaf <danielsh_at_apache.org> wrote:
> > On Tue, Jun 18, 2013 at 08:53:41PM +0400, Ivan Zhakov wrote:
> >> On Tue, Jun 18, 2013 at 5:51 PM, Miliotis Nikolaos
> >> <NMiliotis_at_eurobank.gr> wrote:
> >> >
> >> > Hi,
> >> >
> >> > I have installed Subversion 1.8 and tried to upgrade the repository. During the upgrade it
> >> > produced the attached files.
> >> >
> >> > The command I used was:
> >> >
> >> > svnadmin –verify .
> >> > svnadmin –upgrade .
> >> Subversion crash (divide by zero) occur at
> >> subversion/libsvn_fs_fs/fs_fs.c:1481 in upgrade_pack_revprops()
> >> [[[
> >> static svn_error_t *
> >> upgrade_pack_revprops(svn_fs_t *fs,
> >> apr_pool_t *scratch_pool)
> >> {
> >> fs_fs_data_t *ffd = fs->fsap_data;
> >> const char *revprops_shard_path;
> >> const char *revprops_pack_file_dir;
> >> apr_int64_t shard;
> >> apr_int64_t first_unpacked_shard
> >> = ffd->min_unpacked_rev / ffd->max_files_per_dir;
> >> ^^^^^ zero!
> >>
> >> apr_pool_t *iterpool = svn_pool_create(scratch_pool);
> >> const char *revsprops_dir = svn_dirent_join(fs->path, PATH_REVPROPS_DIR,
> >>
> >> ]]]
> >>
> >> ffd->max_files_per_dir == 0 for some reason.
> >>
> >> Miliotis, could you please provide .\db\fsfs.conf and .\db\format file. Thanks!
> >
> > No need for that, it's easy to reproduce:
> >
> > % svnadmin1.8 create --compatible-version=1.0 r
> > % svnadmin1.7 upgrade r
> > Repository lock acquired.
> > Please wait; upgrading the repository may take some time...
> >
> > Upgrade completed.
> > % svnadmin1.8 upgrade r
> > Repository lock acquired.
> > Please wait; upgrading the repository may take some time...
> > zsh: floating point exception svnadmin upgrade r
> Does it mean that problem in svnadmin1.7 upgrade code?

The problem I see is that the 1.8 code doesn't handle format-4 "layout
linear" filesystems --- that is, repositories created by 1.4 or earlier
that have had 'svnadmin1.6 upgrade' and/or 'svnadmin1.7 upgradfe' run on
them, without a dump/load.

We can probably fix that for 1.8.1 --- so just hold off running
'upgrade' until then.
Received on 2013-06-18 19:18:53 CEST

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.