Re: Mdadm monitor sometimes doesn't send events.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 29 Apr 2013 10:52:57 +0200 Arkadiusz Bubała
<arkadiusz.bubala@xxxxxxxxxx> wrote:

> Hello,
> We've got a problem that sometimes mdadm monitor doesn't send events. 
> Actions are as follows:
> 
> start:
> create new RAID 5 array
> wait until it's rebuilding
> stop created array
> go to start
> 
> Only first time we get "NewArray" event then when new array is created 
> only "RebuildStarted" event appears. After our analysis we found out 
> that when we stop an array we get "DeviceDisapeared" event and when we 
> create a new array we get "RebuildFinished" and then "RebuildStarted" 
> event. Sometimes those two events don't show up.

The missing NewArray messages was fixed in June last year by
commit 0f760384ebc92d81a988c1501e4a493ef064ad66

You are using a very old mdadm.  Maybe you should try 3.2.6

I'm less sure about the RebuildStarted/RebuildFinished oddities but there is
a good chance they are fixed is the latest release too.

NeilBrown


> The problem is in mdstat_read function:
> 
> else if (ent->percent == -1 && w[0] >= '0' && w[0] <= '9' && w[l-1] == 
> '%') {
>      ent->percent = atoi(w);
> }
> 
> atoi(w) sometimes returns 0 instead -1. It causes that mse->percent = 0 in:
> 
>              if (mse &&
>                  mse->percent == -1 &&
>                  st->percent >= 0)
>                  alert("RebuildFinished", dev, NULL, mailaddr, mailfrom, 
> alert_cmd, dosyslog);
> 
> and above conditions aren't met. Then in:
> 
>              if (mse)
>                  st->percent = mse->percent;
> 
> st->percent becomes 0 and next conditions where "RebuildStarted" event 
> should be sent also aren't met:
>              if (mse &&
>                  st->percent == -1 &&
>                  mse->percent >= 0)
>                  alert("RebuildStarted", dev, NULL, mailaddr, mailfrom, 
> alert_cmd, dosyslog);
> 
> Probably it is fine because rebuild already started and this is what 
> monitor reads from /proc/mdstat. Shouldn't it return "NewArray" event 
> instead those two "RebuildFinished" and "RebuildStarted" in this situation?
> 
> We use mdadm version 2.5.6 and monitor runs as a daemon with 10s 
> interval and scan option.
> 
> Do we need to restart mdadm monitor when new disk is added to the system 
> (hotplug)? Do we need to generate config file in such situation or 
> running mdadm with option --scan is sufficient?
> 

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux