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

Re: New SVNSYNC bug?

From: David Glasser <glasser_at_davidglasser.net>
Date: Tue, 29 Apr 2008 14:45:41 -0700

On Tue, Apr 29, 2008 at 2:43 PM, David Summers
<david_at_summersoft.fay.ar.us> wrote:
>
> On Tue, 29 Apr 2008, David Glasser wrote:
>
>
> > On Tue, Apr 29, 2008 at 12:11 PM, David Summers
> > <david_at_summersoft.fay.ar.us> wrote:
> >
> > > On Tue, 29 Apr 2008, Lieven Govaerts wrote:
> > >
> > >
> > >
> > > > Justin Erenkrantz wrote:
> > > >
> > > >
> > > > > On Mon, Apr 28, 2008 at 3:48 PM, David Glasser
> > > > >
> > > >
> > > <glasser_at_davidglasser.net>
> > >
> > > >
> > > > > wrote:
> > > > >
> > > > > > There were in fact changes to the svnsync RA calls as well as to
> the
> > > > > > svnserve protocol for it, so I wouldn't be horribly surprised if
> we
> > > > > > screwed something up in the compatibility code or something.
> > > > > >
> > > > >
> > > > > FWIW, we're starting to deploy the mirroring code over at
> apache.org
> > > > > and we're seeing a similar bug to what David S. is seeing: new
> files
> > > > > aren't being added over replay. Changed/modified files are okay.
> > > > >
> > > > > (Sadly, our master SVN server has suffered a hard drive failure; so
> > > > > this is on the back burner for us now.) -- justin
> > > > >
> > > > >
> > > > >
> > > >
> > > > David, Justin,
> > > >
> > > > For completeness sake:
> > > > 1. between master and svnsync client you're using http, with ra_serf
> or
> > > >
> > > ra_neon?
> > >
> > > > 2. between svnsync and slave you're using what? ra_local?
> > > >
> > > >
> > > >
> > >
> > > Maybe I'm not understanding (terminology?) something, but here is my
> setup.
> > >
> > > 1. I commit from a WinXP SP2 client using Subversion command-line
> client
> > > 1.4.6 with http method. (I commit to the web-dav proxy enabled slave but
> as
> > > per your message above, that may not be relevant, the master is not
> being
> > > corrupted as far as I can tell).
> > >
> > > 2. The master server receives the commit and in the post-commit hook
> does a
> > > svnsync to the slave.
> > >
> > > 3. On the slave server I have svnserve running (svn method) to do the
> sync
> > > between the master and slave.
> > >
> > > When I then subsequently check the slave server with "svn log -v" then
> I
> > > see no information in "Changed Paths" and no log message.
> > >
> > > Hope that helps. I'm working on setting up a controlled test with rc3
> to
> > > see what happens and if I can narrow it down any further.
> > >
> > > When I backed the slave back down from rc3 to r27613 then things
> started
> > > working fine again.
> > >
> > > Also, I'm beginning to wonder if the problem only showed up on a slave
> repo
> > > created recently with rc3 or higher but I don't remember exactly when I
> > > installed rc3 or created the new slave repo. I *think* I'm only seeing
> > > corruption on my newest small repo and not ones created earlier with
> r27613
> > > or older, but I can't swear to it yet.
> > >
> >
> > I'm not sure that this would be relevant, but there are a couple of
> > places you are breaking our abstractions and doing things by hand:
> >
> >
> > > Here is my script I use to create slave repos:
> > > #! /bin/bash
> > > # Set up a mirror from SAMSON
> > >
> > > usage() {
> > > echo "Usage: setup.mirror RepositoryName
> > > http://SourceHost/SourceRepository"
> > > exit 1
> > > }
> > >
> > > if [ ! -f repos/TEMPLATE/README.txt ]; then
> > > echo "Missing TEMPLATE repository."
> > > exit 1
> > > fi
> > >
> > > if [ "$1"x = "x" ]; then
> > > usage
> > > fi
> > >
> > > if [ "$2"x = "x" ]; then
> > > usage
> > > fi
> > >
> > > REPO_NAME=$1
> > > SOURCE_REPOSITORY=$2
> > >
> > > result=`echo $SOURCE_REPOSITORY | grep -i http://`
> > >
> > > if [ "$result"x = "x" ]; then
> > > usage
> > > fi
> > >
> > > # Create new repository
> > > svnadmin --pre-1.5-compatible create repos/$REPO_NAME
> > >
> > > # Zap initial template files
> > > rm -rf repos/$REPO_NAME/hooks/*.tmpl
> > >
> > > # Copy template hooks from TEMPLATE repo
> > > cp repos/TEMPLATE/hooks/* repos/$REPO_NAME/hooks
> > >
> > > # Zap initial conf files.
> > > rm -rf repos/$REPO_NAME/conf/*
> > >
> > > # Setup svnserve.conf
> > > (cd repos/$REPO_NAME/conf; ln -s ../../../svnserve.conf .)
> > >
> >
> > What's in the conf?
> >
> > Specifically, could there be any authz issues here, where your
> > svnsyncing user can't read all the files?
> >
>
>
> Good question, but no; The user's all have full access to the repository.
>
>
> [general]
> anon-access = none
> auth-access = write
> password-db = ../../../passwd.svn
> authz-db = ../../../authz
> realm = Razorback SVN Repository

And the authz file doesn't restrict any reads? (The authz-db is more
fine-grained than auth-access.)

--dave

> >
> > > # Get UUID from source repository
> > > uuid=`svn info $SOURCE_REPOSITORY | grep -i uuid | sed -e 's/^.*:\s//'`
> > >
> > > echo UUID = \"$uuid\"
> > >
> > > echo $uuid > repos/$REPO_NAME/db/uuid
> > >
> >
> > You can use svnadmin setuuid here now.
> >
>
>
> OK, thanks, I'll try that sometime. I remember seeing that commit in the
> svn repo.
>
>
>
>
> >
> > > # Set up for SYNC operation
> > > svnsync init file:///home/svnroot/repos/$REPO_NAME $SOURCE_REPOSITORY
> > >
> > > svn ps svn:sync-from-url svn://samson/$REPO_NAME
> > > file:///home/svnroot/repos/$REPO_NAME -r0 --revprop --username=svnsync
> > >
> >
> > Why not just use the right URL with svnsync init in the first place?
> >
>
>
> Hmmm, I may try that (again) but for some reason I was thinking that wasn't
> working for me when I originally set things up.
>
>
>
>
> >
> > > chown -R apache:apache repos/$REPO_NAME
> > >
> > > exit 0
> > >
> > >
> > > Here is my script I run on the master server to sync to the slave
> > > (razorback) on post-commit.
> > >
> > > "C:\Program Files\Subversion\bin\svnsync" sync svn://razorback/%1%
> > >
> >
> > Hmm, so the master is Windows, and the slave is Unix? Interesting;
> > this stuff might be undertested on Windows, though I'm not sure why it
> > should make a difference.
> >
>
> Correct. Master is Win2003 and Slave is Linux (RHEL5).
>
>
> > --dave
> >
> >
> >
>
> --
>
> David Wayne Summers "Linux: Because reboots are for hardware
> upgrades!"
> david_at_summersoft.fay.ar.us PGP Key:
> http://summersoft.fay.ar.us/~david/pgp.txt
> PGP Key fingerprint = 0B44 B118 85CC F4EC 7021 1ED4 1516 5B78 E320 2001
>

-- 
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-04-29 23:45: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.