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

Re: [BUG+PATCH] Repository "corruption" when committing several versions of a huge file

From: Philip Martin <philip_at_codematters.co.uk>
Date: Wed, 11 Jan 2012 19:32:55 +0000

"Daniel Shahaf" <d.s_at_daniel.shahaf.name> writes:

> On Tuesday, November 29, 2011 4:08 PM, "Martin Buck" <mb-tmp-fhoirefvba.ncnpur.bet_at_gromit.dyndns.org> wrote:
>> On Tue, Nov 29, 2011 at 04:32:39PM +0200, Daniel Shahaf wrote:
>> > Why isn't apr_off_t 64 bits?
>>
>> Sorry, I meant apr_size_t and that seems to correspond to C89's size_t and
>> is not supposed to be used for file sizes. apr_off_t is 64 bits, of course.
>>
>> > > --- subversion-1.7.1/subversion/libsvn_fs_fs/fs_fs.c.orig 2011-10-19 19:28:55.000000000 +0200
>> > > +++ subversion-1.7.1/subversion/libsvn_fs_fs/fs_fs.c 2011-11-25 16:53:56.000000000 +0100
>> > > @@ -2575,7 +2575,7 @@
>> > >
>> > > svn_revnum_t base_revision;
>> > > apr_off_t base_offset;
>> > > - apr_size_t base_length;
>> > > + svn_filesize_t base_length;
>> >
>> > I'd like both BASE_OFFSET and BASE_LENGTH to be 64 bit types. Would it
>> > work to make them both svn_filesize_t?
>>
>> I guess it would work (on a 32 bit machine, svn_filesize_t and apr_off_t are
>> both typedefed to "long long int" anyway), but I wanted to make the types
>> the same as those of "offset" and "size" in
>> libsvn_fs_fs/fs.h:representation_t where the values ultimately get assigned
>> to.
>>
>> But since this is the first time I've looked at the Subversion sources, I
>> can't really recommend anything (besides making sure that base_length is 64
>> bits).
>>
>
> Okay. Since both svn_filesize_t and apr_off_t are signed 64bits it may
> be just a bikeshed which type to use for which struct member. I'll
> commit your patch and nominate it for backport to 1.7.3. While at it I'll
> also scan the code for similar problems.

Are you still planning to commit this? Should someone else do it?

-- 
Philip
Received on 2012-01-11 20:33:35 CET

This is an archived mail posted to the Subversion Dev mailing list.