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>