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

Re: opening fsfs rev files rw

From: 'Daniel Shahaf' <d.s_at_daniel.shahaf.name>
Date: Wed, 4 Aug 2010 20:55:23 +0300

Bert Huijben wrote on Tue, Aug 03, 2010 at 17:43:38 +0200:
> > -----Original Message-----
> > From: Daniel Shahaf [mailto:d.s_at_daniel.shahaf.name]
> > Sent: dinsdag 3 augustus 2010 17:20
> > To: dev_at_subversion.apache.org
> > Subject: Re: opening fsfs rev files rw
> >
> > Daniel Shahaf wrote on Tue, Aug 03, 2010 at 11:58:32 +0300:
> > > There was yesterday on IRC [1] some discussion around whether revprop
> > > editing can corrupt rev files.
> > >
> > > [[[
> > > 0:% rm -rf r
> > > 0:% ./subversion/svnadmin/svnadmin create r
> > > 0:% ls -l r/db/revs/0/0
> > > -rw-r--r-- 1 daniel daniel 115 2010-08-03 11:56 r/db/revs/0/0
> > > ]]]
> > >
> > > Shouldn't we create rev files with the write bit disabled? (i.e.,
> > 0222 umask)
> > >
> >
> > r981921 + nominated for backport.
>
> I'm not sure whether this really helps. What I suggested on IRC, was that we
> shouldn't open the files for read-write, but only for reading (where I just
> tried to get confirmation that we did)
>

To answer your question, open_pack_or_rev_file() does pass APR_READ.
(I grepped for 'open\i*(', where \i is [a-z0-9_].)

But yesterday while debugging this (via a couple of 'strace | grep' and
'chmod; svn pe --revprop' invocations), I noticed that we weren't marking
rev files rw on disk. Since they are immutable, it seemed worthwhile
(a small improvement) to mark them ro.

> This patch just makes us a tiny bit slower and makes it a bit harder for
> third party tools to corrupt the repository.
>

Slower how?

>
> One other thing: How does 'svnadmin pack' handle this?
>
> If it can't handle this we might have to delay this to the first format
> bump.
>

Pack and manifest files are made read-only too (explicitly in the code;
their permissions are not inherited from the permissions of rev files).
Old rev shards are removed when packed. Does that answer your question?

> Bert
>
Received on 2010-08-04 19:57:41 CEST

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