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 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?
--
Best regards
Arkadiusz Bubała
Open-E Poland Sp. z o.o.
www.open-e.com
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html