linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Larkin Lowrey <llowrey@nuclearwinter.com>
To: Jonathan Tripathy <jonnyt@abpni.co.uk>
Cc: linux-raid@vger.kernel.org
Subject: Re: Resync Every Sunday
Date: Mon, 02 Jul 2012 12:06:26 -0500	[thread overview]
Message-ID: <4FF1D512.8030406@nuclearwinter.com> (raw)
In-Reply-To: <4FF0C8AF.9020703@abpni.co.uk>


On 7/1/2012 5:01 PM, Jonathan Tripathy wrote:
>
> On 01/07/2012 22:57, Jonathan Tripathy wrote:
>>
>> On 01/07/2012 22:24, Larkin Lowrey wrote:
>>> There was a fedora bug in the raid-check script would only queue an
>>> array for check if the array_state was 'clean'. Unfortunately, when the
>>> array is busy performing normal I/O its array_state is 'active'. So,
>>> any
>>> arrays which were servicing I/O at the time raid-check was run would
>>> not
>>> be checked.
>>>
>>> It is quite possible that your CentOS version does not include the fix.
>>>
>>> https://bugzilla.redhat.com/show_bug.cgi?id=679843
>>>
>>> If it's fixed you should see something like:
>>>
>>> # Only perform the checks on idle, healthy arrays, but delay
>>> # actually writing the check field until the next loop so we
>>> # don't switch currently idle arrays to active, which happens
>>> # when two or more arrays are on the same physical disk
>>> array_state=`cat /sys/block/$dev/md/array_state`
>>> if [ "$array_state" != "clean" -a "$array_state" != "active" ]; then
>>>      continue
>>> fi
>>>
>>> The fix, iirc, was simply the inclusion of '-a "$array_state" !=
>>> "active"' in the 'if' statement above.
>>>
>>> --Larkin
>> Hi Larkin,
>>
>> This sounds like exactly what I'm experiencing.
>>
>> Is this 'if' statement supposed to be in the raid-check script? I
>> don't have any if statement in my raid-check script
>>
>> Thanks
>>
> Here is a small part of my 99-raid-check script:
>
> for dev in $active_list; do
>     echo $SKIP_DEVS | grep -w $dev >/dev/null 2>&1 && continue
>     if [ -f /sys/block/$dev/md/sync_action ]; then
>         # Only perform the checks on idle, healthy arrays, but delay
>         # actually writing the check field until the next loop so we
>         # don't switch currently idle arrays to active, which happens
>         # when two or more arrays are on the same physical disk
>         array_state=`cat /sys/block/$dev/md/array_state`
>         sync_action=`cat /sys/block/$dev/md/sync_action`
>         if [ "$array_state" = clean -a "$sync_action" = idle ]; then
>             ck=""
>             echo $REPAIR_DEVS | grep -w $dev >/dev/null 2>&1 &&
> ck="repair"
>             echo $CHECK_DEVS | grep -w $dev >/dev/null 2>&1 && ck="check"
>             [ -z "$ck" ] && ck=$CHECK
>             dev_list="$dev_list $dev"
>             check[$devnum]=$ck
>             let devnum++
>             [ "$ck" = "check" ] && check_list="$check_list $dev"
>         fi
>     fi
> done
>
> So the bug hasn't been fixed in my version then?
>
> Thanks
That is not the correct logic so your script is out of date. I would
recommend updating your mdadm package via yum. My CentOS 6.2 install has
the correct logic in /usr/sbin/raid-check, which is the new location for
the script. The RPM I have installed is mdadm-3.2.2-9.el6.x86_64.

--Larkin

  reply	other threads:[~2012-07-02 17:06 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-01 11:20 Resync Every Sunday Jonathan Tripathy
2012-07-01 12:04 ` Jonathan Tripathy
2012-07-01 12:44   ` Mikael Abrahamsson
2012-07-01 12:53     ` Jonathan Tripathy
2012-07-01 20:41 ` Keith Keller
2012-07-01 20:44   ` Jonathan Tripathy
2012-07-01 21:24     ` Larkin Lowrey
2012-07-01 21:57       ` Jonathan Tripathy
2012-07-01 22:01         ` Jonathan Tripathy
2012-07-02 17:06           ` Larkin Lowrey [this message]
2012-07-02 21:30             ` Keith Keller
2012-07-02 22:55               ` Jonathan Tripathy
2012-07-03  3:33                 ` Keith Keller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FF1D512.8030406@nuclearwinter.com \
    --to=llowrey@nuclearwinter.com \
    --cc=jonnyt@abpni.co.uk \
    --cc=linux-raid@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).