From owner-freebsd-bugs@FreeBSD.ORG Fri Sep 7 13:20:02 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00AC916A41B for ; Fri, 7 Sep 2007 13:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id DE28C13C45A for ; Fri, 7 Sep 2007 13:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l87DK1kd052284 for ; Fri, 7 Sep 2007 13:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l87DK1BK052283; Fri, 7 Sep 2007 13:20:01 GMT (envelope-from gnats) Resent-Date: Fri, 7 Sep 2007 13:20:01 GMT Resent-Message-Id: <200709071320.l87DK1BK052283@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Denis Barov Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8125E16A41A for ; Fri, 7 Sep 2007 13:10:59 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id 6119C13C45A for ; Fri, 7 Sep 2007 13:10:59 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.1/8.14.1) with ESMTP id l87DAwV3041199 for ; Fri, 7 Sep 2007 13:10:58 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.1/8.14.1/Submit) id l87DAwcO041198; Fri, 7 Sep 2007 13:10:58 GMT (envelope-from nobody) Message-Id: <200709071310.l87DAwcO041198@www.freebsd.org> Date: Fri, 7 Sep 2007 13:10:58 GMT From: Denis Barov To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: conf/116177: rc.d/mdconfig2 script fail at -CURRENT X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Sep 2007 13:20:02 -0000 >Number: 116177 >Category: conf >Synopsis: rc.d/mdconfig2 script fail at -CURRENT >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Sep 07 13:20:01 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Denis Barov >Release: FreeBSD 5.x, 6.x, 7.x >Organization: OAO TPK TBT >Environment: FreeBSD patient.tbt.ru 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Mon Jul 23 14:40:33 UTC 2007 root@patient.tbt.ru:/usr/obj/usr/sync/RELENG_7/src/sys/GENERIC i386 >Description: Due some changes in mdconfig(8) mdconfig no longer returns different errorstates when we do mdconfig -l. This causes errors when starting mdconfig2 script. In rc.conf we have: mdconfig_md0="-t vnode -f /home/dindin/test.ufs2" Runnung /etc/rc.d/mdconfig2 start/stop: eternalpatient# /etc/rc.d/mdconfig2 stop /etc/rc.d/mdconfig2: DEBUG: run_rc_command: doit: mdconfig2_stop /etc/rc.d/mdconfig2: DEBUG: md0 config: -t vnode -f /home/dindin/test.ufs2 /etc/rc.d/mdconfig2: DEBUG: md0 type: vnode /etc/rc.d/mdconfig2: DEBUG: md0 dev: /dev/md0 /etc/rc.d/mdconfig2: DEBUG: md0 file: /home/dindin/test.ufs2 /etc/rc.d/mdconfig2: DEBUG: md0 fs: /usr /etc/rc.d/mdconfig2: DEBUG: md0 owner: /etc/rc.d/mdconfig2: DEBUG: md0 perms: /etc/rc.d/mdconfig2: DEBUG: md0 files: /etc/rc.d/mdconfig2: DEBUG: md0 populate cmd: Device /dev/md0 isn't mounted. Destroying md0. mdconfig: ioctl(/dev/mdctl): No such file or directory eternalpatient# /etc/rc.d/mdconfig2 start /etc/rc.d/mdconfig2: DEBUG: run_rc_command: start_precmd: [ -n "${_mdconfig2_list}" ] /etc/rc.d/mdconfig2: DEBUG: load_kld: geom_md kernel module already loaded. /etc/rc.d/mdconfig2: DEBUG: run_rc_command: doit: mdconfig2_start /etc/rc.d/mdconfig2: DEBUG: md0 config: -t vnode -f /home/dindin/test.ufs2 /etc/rc.d/mdconfig2: DEBUG: md0 type: vnode /etc/rc.d/mdconfig2: DEBUG: md0 dev: /dev/md0 /etc/rc.d/mdconfig2: DEBUG: md0 file: /home/dindin/test.ufs2 /etc/rc.d/mdconfig2: DEBUG: md0 fs: /usr /etc/rc.d/mdconfig2: DEBUG: md0 owner: /etc/rc.d/mdconfig2: DEBUG: md0 perms: /etc/rc.d/mdconfig2: DEBUG: md0 files: /etc/rc.d/mdconfig2: DEBUG: md0 populate cmd: /etc/rc.d/mdconfig2: ERROR: md0 already exists >How-To-Repeat: On -CURRENT run: # dd if=/dev/zero of=/tmpfile count=100000 # mdconfig -a -t vnode -f /tmpfile # newfs /dev/md0 add into rc.conf this: mdconfig_md0="-t vnode -f /tmpfile" then run: # /etc/rc.d/mdconfig2 start # /etc/rc.d/mdconfig2 stop >Fix: Patch attached with submission follows: --- /etc/rc.d/mdconfig2.orig 2006-12-31 10:37:18.000000000 +0000 +++ /etc/rc.d/mdconfig2 2007-07-25 12:07:00.000000000 +0000 @@ -128,7 +128,7 @@ warn "${_fs} is mounted read-only, skipping ${_md}." continue fi - if mdconfig -l -u ${_md} >/dev/null 2>&1; then + if [ -n "`mdconfig -l -u ${_md}`" ]; then err 3 "${_md} already exists" fi echo "Creating ${_md} device (${_type})." >Release-Note: >Audit-Trail: >Unformatted: