Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Sep 2007 13:10:58 GMT
From:      Denis Barov <dindin@dindin.ru>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   conf/116177: rc.d/mdconfig2 script fail at -CURRENT
Message-ID:  <200709071310.l87DAwcO041198@www.freebsd.org>
Resent-Message-ID: <200709071320.l87DK1BK052283@freefall.freebsd.org>

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

>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:



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