From owner-freebsd-current Tue Sep 3 11:12:44 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id LAA16005 for current-outgoing; Tue, 3 Sep 1996 11:12:44 -0700 (PDT) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id LAA15994 for ; Tue, 3 Sep 1996 11:12:38 -0700 (PDT) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id LAA04620; Tue, 3 Sep 1996 11:08:58 -0700 From: Terry Lambert Message-Id: <199609031808.LAA04620@phaeton.artisoft.com> Subject: Re: Latest Current build failure To: jkh@time.cdrom.com (Jordan K. Hubbard) Date: Tue, 3 Sep 1996 11:08:57 -0700 (MST) Cc: michaelh@cet.co.jp, terry@lambert.org, kimc@w8hd.org, current@FreeBSD.org In-Reply-To: <6665.841718171@time.cdrom.com> from "Jordan K. Hubbard" at Sep 2, 96 07:36:11 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > 3. The "slow update" of the -current tree on freefall, from which the > sup and CTM services are provided, is driven by a "cookie collector" > process - some PERL script hanging off an email alias which collects > success-or-fail messages from a set of designated build boxes. > Each designated build box, some of which we could provide here at WC, > commits to updating to and building the CVS HEAD branch once every > 24 hours, emitting an email at the end to know the central cookie > collector know the exit status of the build. If a majority of the > build boxes report success during a given 24 hour period, and I'd > recommend making it a majority vote since a given percentage will > *always* be hosed due to local stupidity of some sort, then the > for-public-consumption tree will be updated. Why do you need more than one build box? Is it because the snapshot from the tree is made on each download request instead of on a timed copy of the tree? I think a more reasonable, one machine, version would be: 1) wait some interval 2) copy active cvs tree to static cvs tree 3) test-build static cvs tree 4) if test-build fails, go to 1 5) copy successfully test-built static cvs tree to distribution cvs tree 6) people download distribution cvs tree Posits: a) the interval in step 1 should be as short as step 3 allows b) access to the distribution cvs tree should be blocked during step 5; this could be implemented with a simple access lock protocol obeyed by the copy process and the download process(es) c) we would prefer to block modification by programmers to the active cvs tree during step 2 to ensure an increased likelihood of buildability; a reader/writer lock would provide a guarantee here -- note, again: the guarantee is not necessary, only desirable d) assuming locing protocols, it's possible to split the process once per additional build machine, as a divisor into the interval in step 1: this could reduce the overall turnaround time between an active tree modification becoming available Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.