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>