NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
misc/37802: Report daily dirty RAIDframe parity, order /etc/rc.d/raidframeparity before /etc/rc.d/securelevel
>Number: 37802
>Category: misc
>Synopsis: Report daily dirty RAIDframe parity, order
>/etc/rc.d/raidframeparity before /etc/rc.d/securelevel
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: misc-bug-people
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Fri Jan 18 20:10:00 +0000 2008
>Originator: rudolf
>Release: netbsd-4
>Organization:
>Environment:
>Description:
Please see the following email and corresponding discussion:
http://mail-index.netbsd.org/tech-userlevel/2007/05/15/0000.html
The /etc/rc.d/raidframeparity script should be ordered before
/etc/rc.d/securelevel - otherwise it is possible to get EPERM if the
securelevel is raised in /etc/rc.conf and the parity might then be left
dirty.
I also suggest to test if the parity is clean from /etc/daily along
with failed raidframe components.
>How-To-Repeat:
Set securelevel to 2 on a computer with raidframe mirrored disks and go through
the power outage. You'll find out you'll have to go to single user to repair it
(problem with wrong order of rc.d scripts) and if you just check the daily
scripts, you'll think the raid is ok (problem with the daily script).
>Fix:
--- etc/daily.orig 2007-05-15 22:43:07.000000000 +0200
+++ etc/daily 2007-05-15 22:55:09.000000000 +0200
@@ -77,6 +77,7 @@
TMP=daily.$$
TMP2=daily2.$$
+TMP3=daily3.$$
if checkyesno find_core; then
# Turn "foo !bar bax" into "-fstype foo -o ! -fstype bar -o -fstype bax"
@@ -176,13 +177,18 @@
echo "$dev:" >> $TMP2
cat $TMP >> $TMP2
fi
+ `raidctl -p $dev > /dev/null` || echo $dev >> $TMP3
rm -f $TMP
done
if [ -s $TMP2 ]; then
echo "failed RAIDframe component(s):"
cat $TMP2
fi
- rm -f $TMP2
+ if [ -s $TMP3 ]; then
+ echo "RAIDframe device(s) with dirty parity:"
+ cat $TMP3
+ fi
+ rm -f $TMP2 $TMP3
fi
if checkyesno check_mailq; then
--------------040306030403040506070401
Content-Type: text/plain;
name="raidframeparity.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="raidframeparity.diff"
--- etc/rc.d/raidframeparity.orig 2007-05-15 20:11:31.000000000 +0200
+++ etc/rc.d/raidframeparity 2007-05-15 20:13:01.000000000 +0200
@@ -4,6 +4,7 @@
#
# REQUIRE: quota
+# BEFORE: securelevel
$_rc_subr_loaded . /etc/rc.subr
Home |
Main Index |
Thread Index |
Old Index