Skip to contentSkip to conversation

MD removal and condition code bug

DISCUSSION Harald Hoyer 2 participants 5 messages Feb 5, 2009

lore
Share & tools
lore
#0 lore raw

Radek Vykydal <[email protected]> encountered a problem with md devices. If the raid is about to be removed a "change" and "remove" event is sent. The "change" event has to be skipped if ATTR{md/array_state} is empty, but somehow the condition does not match, which might point to a bug in the condition code.
The following patch is needed:

< ATTR{md/array_state}="|clear|inactive", GOTO="md_end"
---

Quoted 2 lines

ATTR{md/array_state}="clear|inactive", GOTO="md_end" ATTR(md/array_state}!="?*", GOTO="md_end"

#1 lore raw
Quoted 11 lines · Harald Hoyer

Radek Vykydal <[email protected]> encountered a problem with md devices. If the raid is about to be removed a "change" and "remove" event is sent. The "change" event has to be skipped if ATTR{md/array_state} is empty, but somehow the condition does not match, which might point to a bug in the condition code.
The following patch is needed:

< ATTR{md/array_state}="|clear|inactive", GOTO="md_end"
---

Quoted 2 lines

ATTR{md/array_state}="clear|inactive", GOTO="md_end" ATTR(md/array_state}!="?*", GOTO="md_end"

A non-existent attribute makes the rule always fail. Are you sure, the second rule will fix the issue? It should also never match, when the attribute is no longer available. I guess, we need to add a TEST!= key here.

Thanks,
Kay

#2 lore raw
In reply to Harald Hoyer
Quoted 13 lines · Kay Sievers
Quoted 11 lines · Harald Hoyer

Radek Vykydal <[email protected]> encountered a problem with md devices. If the raid is about to be removed a "change" and "remove" event is sent. The "change" event has to be skipped if ATTR{md/array_state} is empty, but somehow the condition does not match, which might point to a bug in the condition code.
The following patch is needed:

< ATTR{md/array_state}="|clear|inactive", GOTO="md_end"
---

Quoted 2 lines

ATTR{md/array_state}="clear|inactive", GOTO="md_end" ATTR(md/array_state}!="?*", GOTO="md_end"

Quoted 7 lines

A non-existent attribute makes the rule always fail. Are you sure, the second rule will fix the issue? It should also never match, when the attribute is no longer available. I guess, we need to add a TEST!= key here.

Thanks,
Kay

The attribute exists, but is empty.

#3 lore raw
In reply to Harald Hoyer
Quoted 22 lines · Harald Hoyer
Quoted 21 lines · Kay Sievers
Quoted 10 lines · Harald Hoyer

Radek Vykydal <[email protected]> encountered a problem with md devices.
If the raid is about to be removed a "change" and "remove" event is sent.
The "change" event has to be skipped if ATTR{md/array_state} is empty, but
somehow the condition does not match, which might point to a bug in the condition code.
The following patch is needed:

Quoted 4 lines

< ATTR{md/array_state}="|clear|inactive", GOTO="md_end"
---

Quoted 2 lines

ATTR{md/array_state}="clear|inactive", GOTO="md_end" ATTR(md/array_state}!="?*", GOTO="md_end"

A non-existent attribute makes the rule always fail. Are you sure, the second rule will fix the issue? It should also never match, when the attribute is no longer available. I guess, we need to add a TEST!= key here.

Quoted 4 lines
Quoted 2 lines

Thanks,
Kay

The attribute exists, but is empty.

ok.. wrong :) actually it is missing..

#4 lore raw
In reply to Harald Hoyer
Quoted 20 lines · Harald Hoyer
Quoted 19 lines · Harald Hoyer
Quoted 18 lines · Kay Sievers
Quoted 16 lines · Harald Hoyer

Radek Vykydal <[email protected]> encountered a problem with md devices.
If the raid is about to be removed a "change" and "remove" event is sent.
The "change" event has to be skipped if ATTR{md/array_state} is empty, but
somehow the condition does not match, which might point to a bug in the condition code.
The following patch is needed:

< ATTR{md/array_state}="|clear|inactive", GOTO="md_end"
---

Quoted 3 lines

ATTR{md/array_state}="clear|inactive", GOTO="md_end" ATTR(md/array_state}!="?*", GOTO="md_end"

Quoted 8 lines
Quoted 6 lines
Quoted 4 lines

A non-existent attribute makes the rule always fail. Are you sure, the second rule will fix the issue? It should also never match, when the attribute is no longer available. I guess, we need to add a TEST!= key here.

The attribute exists, but is empty.

ok.. wrong :) actually it is missing..

Added the fix to the rules in the udev tree, and sent Neil a mail to update the rules file in the mdadm package.

Thanks,
Kay