Hello community,

here is the log from the commit of package mdadm for openSUSE:Factory checked 
in at 2012-06-01 07:21:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mdadm (Old)
 and      /work/SRC/openSUSE:Factory/.mdadm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mdadm", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:Factory/mdadm/mdadm.changes      2012-05-21 
08:07:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mdadm.new/mdadm.changes 2012-06-01 
07:21:28.000000000 +0200
@@ -1,0 +2,18 @@
+Thu May 24 01:52:37 UTC 2012 - [email protected]
+
+- udev-rules.fix: make sure systemd doesn't try
+  to mount array before it is fully assembled.
+  (bnc#752869)
+
+-------------------------------------------------------------------
+Tue May 22 05:15:52 UTC 2012 - [email protected]
+
+- boot.md/mkinitrd-boot.sh: complete any incremental
+  assembly before attempting to assemble arrays.
+  If incremental assembly has partialy assembled
+  degraded arrays, now is the time to start them going.
+  (bnc#752869)
+- mdamd.cron: send daily reports if any arrays are
+  degraded.
+
+-------------------------------------------------------------------

New:
----
  mdadm.cron
  udev-rules.fix

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mdadm.spec ++++++
--- /var/tmp/diff_new_pack.wCowA1/_old  2012-06-01 07:21:31.000000000 +0200
+++ /var/tmp/diff_new_pack.wCowA1/_new  2012-06-01 07:21:31.000000000 +0200
@@ -35,6 +35,8 @@
 Source4:        boot.md
 Source5:        mkinitrd-setup.sh
 Source6:        mkinitrd-boot.sh
+Source7:        mdadm.cron
+Patch1:         udev-rules.fix
 
 %description
 Mdadm is a program that can be used to control Linux md devices. It is
@@ -43,6 +45,7 @@
 
 %prep
 %setup -q -a1
+%patch1 -p1
 
 %build
 make %{?_smp_mflags} CC="%__cc" CXFLAGS="$RPM_OPT_FLAGS -Wno-error"
@@ -59,6 +62,8 @@
 install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
 install -m 755 %{S:5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-md.sh
 install -m 755 %{S:6} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-md.sh
+install -d $RPM_BUILD_ROOT/etc/cron.daily
+install -m 755 %{S:7} $RPM_BUILD_ROOT/etc/cron.daily/mdadm
 install -m 644 %{S:2} $RPM_BUILD_ROOT%{_var}/adm/fillup-templates/
 ln -sf ../../etc/init.d/mdadmd $RPM_BUILD_ROOT/%{_sbindir}/rcmdadmd
 rm -rf $RPM_BUILD_ROOT/run/mdadm
@@ -114,8 +119,10 @@
 %dir /lib/mkinitrd/scripts
 /lib/mkinitrd/scripts/setup-md.sh
 /lib/mkinitrd/scripts/boot-md.sh
-%dir /lib/udev
 %dir /lib/udev/rules.d
 /lib/udev/rules.d/64-md-raid.rules
+%dir /etc
+%dir /etc/cron.daily
+/etc/cron.daily/mdadm
 
 %changelog

++++++ boot.md ++++++
--- /var/tmp/diff_new_pack.wCowA1/_old  2012-06-01 07:21:31.000000000 +0200
+++ /var/tmp/diff_new_pack.wCowA1/_new  2012-06-01 07:21:31.000000000 +0200
@@ -125,6 +125,8 @@
                # empty or missing /etc/mdadm.conf, "unused"
                rc_status -u
        else
+               # firstly finish any incremental assembly that has started.
+               $mdadm_BIN -IRs
                $mdadm_BIN -A -s -c $mdadm_CONFIG
                # a status of 2 is not an error
                test $? -eq 0 -o $? -eq 2

++++++ mdadm.cron ++++++
#!/bin/sh

# Run "mdadm --monitor --oneshot" once a day to ensure
# degraded arrays don't go unnoticed.

mdadm_BIN=/sbin/mdadm
mdadm_CONFIG=/etc/sysconfig/mdadm

[ -x $mdadm_BIN ] || exit 0

[ -r $mdadm_CONFIG ] && . $mdadm_CONFIG

if [ x$MDADM_MAIL != x"" ]; then
  MDADM_MAIL="-m \"$MDADM_MAIL\""
fi
 
if [ x$MDADM_PROGRAM != x"" ]; then
  MDADM_PROGRAM="-p \"$MDADM_PROGRAM\""
fi

if [ x$MDADM_SCAN = x"yes" ]; then
  MDADM_SCAN="-s"
else
  MDADM_SCAN=""
fi

if [ x$MDADM_CONFIG != x"" ]; then
  MDADM_CONFIG="-c \"$MDADM_CONFIG\""
fi

# using --syslog avoids annoying warnings if no MAIL or PROGRAM are given
# in sysconfig or mdadm.conf
eval $mdadm_BIN -F $MDADM_RAIDDEVICES --oneshot --syslog $MDADM_MAIL 
$MDADM_PROGRAM $MDADM_SCAN $MDADM_SEND_MAIL $MDADM_CONFIG 

exit 0
++++++ mkinitrd-boot.sh ++++++
--- /var/tmp/diff_new_pack.wCowA1/_old  2012-06-01 07:21:31.000000000 +0200
+++ /var/tmp/diff_new_pack.wCowA1/_new  2012-06-01 07:21:31.000000000 +0200
@@ -127,6 +127,9 @@
        fi
 }
 
+# run any degraded arrays assembled incrementally
+wait_for_events
+$mdadm --incremental --run --scan
 md_assemble "$resumedev"
 md_assemble "$rootdev"
 if [ -n "$md_dev" ] ; then

++++++ udev-rules.fix ++++++
>From 339b77467a7ad5e5354b5ab0542f8148b18c898c Mon Sep 17 00:00:00 2001
From: NeilBrown <[email protected]>
Date: Thu, 24 May 2012 11:49:49 +1000
Subject: [PATCH] udev-rules: prevent systemd from mount devices before they
 are ready.

When an array is assembled incrementally, systemd might see it
before it is ready, try to mount it, fail, and give up.
Result is that array doesn't get mounted.

If we ask udev to tell systemd that it isn't ready yet in this
case, systemd waits until it is ready, and all are happy.

Signed-off-by: NeilBrown <[email protected]>

diff --git a/udev-md-raid.rules b/udev-md-raid.rules
index f564f70..814c897 100644
--- a/udev-md-raid.rules
+++ b/udev-md-raid.rules
@@ -28,7 +28,7 @@ ENV{DEVTYPE}=="partition", GOTO="md_ignore_state"
 # never leave state 'inactive'
 ATTR{md/metadata_version}=="external:[A-Za-z]*", 
ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
 TEST!="md/array_state", GOTO="md_end"
-ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
+ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0", GOTO="md_end"
 LABEL="md_ignore_state"
 
 IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to