This would be much easier to reproduce if we could 'svnadmin upgrade' to
specific newer formats instead of only directly to the latest version.
I have no idea how hard it would be to implement this (and it certainly
can't be backported to 1.8), but at least it would allow more testing for
future versions.
Bert
From: Stefan Fuhrmann [mailto:stefan.fuhrmann_at_wandisco.com]
Sent: dinsdag 18 juni 2013 23:53
To: Bert Huijben
Cc: Ivan Zhakov; Miliotis Nikolaos; Subversion Development
Subject: Re: Divide by zero at
subversion/libsvn_fs_fs/fs_fs.c:upgrade_pack_revprops() (was Re: SVN crach
Log)
On Tue, Jun 18, 2013 at 11:47 PM, Bert Huijben <bert_at_qqmail.nl
<mailto:bert_at_qqmail.nl> > wrote:
Shouldn't be to hard by just passing the options to create an 1.1 compatible
FSFS respository?
No. You need to upgrade from 1.1 to 1.4 .. 1.7 and *then* 1.8.
The problem occurs in repos that support sharding but are
not shared.
-- Stefan^2.
From: Stefan Fuhrmann
Sent: Tuesday, June 18, 2013 11:39 PM
To: Ivan Zhakov
Cc: Miliotis Nikolaos; Subversion Development
On Tue, Jun 18, 2013 at 10:42 PM, Ivan Zhakov <ivan_at_visualsvn.com
<mailto:ivan_at_visualsvn.com> > wrote:
On Wed, Jun 19, 2013 at 12:37 AM, Stefan Fuhrmann
<stefan.fuhrmann_at_wandisco.com <mailto:stefan.fuhrmann_at_wandisco.com> > wrote:
> On Tue, Jun 18, 2013 at 6:53 PM, Ivan Zhakov <ivan_at_visualsvn.com
<mailto:ivan_at_visualsvn.com> > wrote:
>>
>> On Tue, Jun 18, 2013 at 5:51 PM, Miliotis Nikolaos
>> <NMiliotis_at_eurobank.gr <mailto: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.
>
>
> It's legal even for recent repository formats to not use sharding at all.
> In that case, max_files_per_dir can actually be 0.
>
> r1494287 fixes this issue (should be shipped of 1.8.1).
>
Great! Is it possible to write test case for this issue?
Can be done but requires some fiddling with format files etc.
Will do that tomorrow.
-- Stefan^2.
Received on 2013-06-19 11:26:34 CEST