conf/116177: rc.d/mdconfig2 script fail at -CURRENT
Denis Barov
dindin at dindin.ru
Fri Sep 7 06:20:02 PDT 2007
>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 at 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:
More information about the freebsd-bugs
mailing list