Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Sep 2001 12:06:56 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        hubs@FreeBSD.org
Cc:        jdp@FreeBSD.org
Subject:   Randomizing access to CVSup mirrors shows inconsistency
Message-ID:  <20010914120655.A1150@dhcp01.pn.xcllnt.net>

next in thread | raw e-mail | index | archive | help

--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

I recently changed my setup to not hardcode a single CVSup mirror,
but instead define a group of mirrors and randomize the access.
The egocentic intend here is to be resistent to mirror failures,
but I can't deny that it helps distribute the load on the mirrors
as a nice side effect :-)

Unfortunately, it doesn't work without glitches. The biggest and
most annoying glitch is that I see my complete repository touched
by SetAttrs. Not always, but depending on the random order in
which I use the mirrors. I noticed it when I used cvsup7.FreeBSD.org
after using cvsup3.FreeBSD.org.
Using cvsup13.FreeBSD.org after cvsup7.FreeBSD.org exhibits another
problem. I see under CVSROOT that commits have been made, but the
collections aren't updated. After aborting cvsup13, I restarted
the script and got cvsup14. This touched my complete repository
again.

Ok, now the questions:
1. Is it actually valid to randomize access to mirrors?
2. Can it be something in my configuration (attached)?
3. If it has something to do with the version of cvsupd,
   is it possible to automaticly regulate access to
   mirrors based on version information? (a simple
   abort or proceed will do just fine)

Below the randomization script for your amusement and my
CVSup config.

Thanks,

PS: Please keep me CC'd, I'm not subscribed.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net

--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=lcvsup

#!/bin/csh
#
# environment variables:
#       CVSUP_DOMAIN    The domain to select the servers from.
#       CVSUP_MIRRORS   The number of servers in the domain.
#

set logfile=/var/tmp/lcvsup.log
set cvsup=/usr/local/bin/cvsup

if (! $?CVSUP_DOMAIN) then
        echo error: CVSUP_DOMAIN undefined.
        exit 1
endif

if (! $?CVSUP_MIRRORS) then
        echo error: CVSUP_MIRRORS undefined.
        exit 1
endif

set mirrors=${CVSUP_MIRRORS}
set mirror_list=`jot ${mirrors}`

rm $logfile; touch $logfile

while ($mirrors)
        set mirror=`jot -r 1 1 $mirrors`

        set host=cvsup$mirror_list[$mirror].$CVSUP_DOMAIN
        if ({ $cvsup -1 -g -h $host /etc/cvsup.freebsd >>& $logfile }) then
                exit 0
        endif

        set mirror_list[$mirror]=$mirror_list[$mirrors]
        @ mirrors--
end

cat $logfile | mail -s "`hostname`: lcvsup failed" marcel
exit 0


--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="cvsup.freebsd"

*default	host=cvsup11.freebsd.org
*default	base=/usr/local
*default	prefix=/home/ncvs
*default	release=cvs
*default	compress delete umask=2 use-rel-suffix

src-all
doc-all
ports-all

--zhXaljGHf11kAtnf--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hubs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010914120655.A1150>