From owner-cvs-all Sat Dec 21 12:38:20 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3530137B401; Sat, 21 Dec 2002 12:38:16 -0800 (PST) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id C2E7F43ED8; Sat, 21 Dec 2002 12:38:15 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (localhost [127.0.0.1]) by apollo.backplane.com (8.12.5/8.12.5) with ESMTP id gBLKcFOM075251; Sat, 21 Dec 2002 12:38:15 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.12.5/8.12.5/Submit) id gBLKcFUY075250; Sat, 21 Dec 2002 12:38:15 -0800 (PST) (envelope-from dillon) Date: Sat, 21 Dec 2002 12:38:15 -0800 (PST) From: Matthew Dillon Message-Id: <200212212038.gBLKcFUY075250@apollo.backplane.com> To: Jake Burkholder Cc: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/etc rc.diskless1 References: <200212210030.gBL0U8mj092252@repoman.freebsd.org> <20021221051202.A19933@locore.ca> Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG :> do other cleanups. :> :> (documentation and man page updates to follow). : :Do you intend to make these changes in the rcng scripts in etc/rc.d as well? :rcng is the default in -current so I can't see this getting much testing. : :Jake : :> :> MFC after: 3 days :> :> Revision Changes Path :> 1.18 +152 -72 src/etc/rc.diskless1 Ok, I hit a problem with the RCNG stuff. The problem is that reloading the rc.conf files is not enough... RCNG unconditionally loads the original (incorrect) rc.conf file before it runs any scripts. This creates massive leakage from the server's own rc.conf's into the diskless client's rc.conf's. In order to fix the problem we cannot unconditionally load_rc_config in /etc/rc. Instead, load_rc_config must itself be a dependancy in rc.d. I have included the adjustments below for review. Basically I add rc.d/rcconf which depends on initdiskless, then any other rc files with no REQUIRE lines depend on rcconf. I have not included changes to the 'initdiskless' and 'diskless' scripts, they are basically just the rc.diskless* work I've been doing placed in an rc.d environment, with fixes (things like kenv being used before /usr is mounted and other problems). -Matt Matthew Dillon Index: rc =================================================================== RCS file: /home/ncvs/src/etc/rc,v retrieving revision 1.324 diff -u -r1.324 rc --- rc 18 Dec 2002 07:21:30 -0000 1.324 +++ rc 21 Dec 2002 20:30:26 -0000 @@ -69,10 +69,10 @@ [Yy][Ee][Ss]) . /etc/rc.subr - # Load system configuration files. The 'XXX' is there because - # the function requires an argument that we don't need to use. + # Note: the system configuration files are loaded as part of + # the RCNG system. Do not load them here as it may interfere + # with some functions (like diskless booting). # - load_rc_config 'XXX' if [ "$1" = autoboot ]; then autoboot=yes Index: rc.d/ccd =================================================================== RCS file: /home/ncvs/src/etc/rc.d/ccd,v retrieving revision 1.2 diff -u -r1.2 ccd --- rc.d/ccd 13 Jun 2002 22:14:36 -0000 1.2 +++ rc.d/ccd 21 Dec 2002 20:23:39 -0000 @@ -4,6 +4,7 @@ # $FreeBSD: src/etc/rc.d/ccd,v 1.2 2002/06/13 22:14:36 gordon Exp $ # +# REQUIRE: rcconf # PROVIDE: disks # KEYWORD: FreeBSD NetBSD Index: rc.d/devd =================================================================== RCS file: /home/ncvs/src/etc/rc.d/devd,v retrieving revision 1.2 diff -u -r1.2 devd --- rc.d/devd 30 Nov 2002 00:40:53 -0000 1.2 +++ rc.d/devd 21 Dec 2002 20:24:10 -0000 @@ -3,6 +3,7 @@ # $FreeBSD: src/etc/rc.d/devd,v 1.2 2002/11/30 00:40:53 imp Exp $ # +# REQUIRE: rcconf # PROVIDE: devd # BEFORE: disks # KEYWORD: FreeBSD Index: rc.d/initrandom =================================================================== RCS file: /home/ncvs/src/etc/rc.d/initrandom,v retrieving revision 1.1 diff -u -r1.1 initrandom --- rc.d/initrandom 13 Jun 2002 22:14:36 -0000 1.1 +++ rc.d/initrandom 21 Dec 2002 20:25:50 -0000 @@ -4,7 +4,7 @@ # # PROVIDE: initrandom -# REQUIRE: initdiskless +# REQUIRE: rcconf # BEFORE: disks # KEYWORD: FreeBSD Index: rc.d/raidframe =================================================================== RCS file: /home/ncvs/src/etc/rc.d/raidframe,v retrieving revision 1.2 diff -u -r1.2 raidframe --- rc.d/raidframe 13 Jun 2002 22:14:36 -0000 1.2 +++ rc.d/raidframe 21 Dec 2002 20:27:10 -0000 @@ -4,6 +4,7 @@ # $FreeBSD: src/etc/rc.d/raidframe,v 1.2 2002/06/13 22:14:36 gordon Exp $ # +# REQUIRE: rcconf # PROVIDE: disks . /etc/rc.subr Index: rc.d/rcconf =================================================================== RCS file: rc.d/rcconf diff -N rc.d/rcconf --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ rc.d/rcconf 21 Dec 2002 20:30:50 -0000 @@ -0,0 +1,10 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: rcconf +# REQUIRE: initdiskless +# KEYWORD: FreeBSD NetBSD + +load_rc_config 'XXX' Index: rc.d/vinum =================================================================== RCS file: /home/ncvs/src/etc/rc.d/vinum,v retrieving revision 1.1 diff -u -r1.1 vinum --- rc.d/vinum 13 Jun 2002 22:14:36 -0000 1.1 +++ rc.d/vinum 21 Dec 2002 20:28:43 -0000 @@ -3,6 +3,7 @@ # $FreeBSD: src/etc/rc.d/vinum,v 1.1 2002/06/13 22:14:36 gordon Exp $ # +# REQUIRE: rcconf # PROVIDE: disks # KEYWORD: FreeBSD To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message