Re: RAID5: failing an active component during spare rebuild - arrays hangs

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

 



On Sun, 27 Nov 2011 11:56:17 +0200 Alexander Lyakas <alex.bolshoy@xxxxxxxxx>
wrote:

> Hello Neil,
> we have compiled the natty kernel with dynamic debugging enabled for
> raid456, and reproduced the problem.
> The kernel log is available at
> https://docs.google.com/open?id=0B9rmyUifdvMLMzk1YjYwZDUtYzhhYi00MDRlLTkzYjItMDM0Y2ZhZmU3ZDRk
> 
> Some more information:
> - array was created at Nov 27 11:28:03
> - manual drive failure was issued at 11:28:09
> 
> Please let me know if you need any additional information.
> 

Hi,
 sorry for the long delay, I've had a lot of distractions this past week.

I looks like you are hitting the bug fixed by upstream commit
    355840e7a7e56bb2834fd3b0da64da5465f8aeaa

The symptoms are slightly different to those described in that commit but I'm
sure the root problem is the same.

That patch doesn't apply to 2.6.38 though.
Use this one.

NeilBrown

diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 78536fd..8144126 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -3086,7 +3086,7 @@ static void handle_stripe5(struct stripe_head *sh)
 			/* Not in-sync */;
 		else if (test_bit(In_sync, &rdev->flags))
 			set_bit(R5_Insync, &dev->flags);
-		else {
+		else if (!test_bit(Faulty, &rdev->flags)) {
 			/* could be in-sync depending on recovery/reshape status */
 			if (sh->sector + STRIPE_SECTORS <= rdev->recovery_offset)
 				set_bit(R5_Insync, &dev->flags);
@@ -3377,7 +3377,7 @@ static void handle_stripe6(struct stripe_head *sh)
 			/* Not in-sync */;
 		else if (test_bit(In_sync, &rdev->flags))
 			set_bit(R5_Insync, &dev->flags);
-		else {
+		else if (!test_bit(Faulty, &rdev->flags)) {
 			/* in sync if before recovery_offset */
 			if (sh->sector + STRIPE_SECTORS <= rdev->recovery_offset)
 				set_bit(R5_Insync, &dev->flags);

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