Re: Re[2]: RAID1 submirror failure causes reboot?

2006-11-13 Thread Jens Axboe
On Mon, Nov 13 2006, Neil Brown wrote:
 On Friday November 10, [EMAIL PROTECTED] wrote:
  Hello Neil,
  
   [87398.531579] blk: request botched
  NB  
  
  NB That looks bad.  Possible some bug in the IDE controller or elsewhere
  NB in the block layer.  Jens: What might cause that?
  
  NB --snip--
  
  NB That doesn't look like raid was involved.  If it was you would expect
  NB to see raid1_end_write_request or raid1_end_read_request in that
  NB trace.
  So that might be the hard or soft part of IDE layer failing the
  system, or a PCI problem for example?
 
 What I think is happening here (and Jens: if you could tell me how
 impossible this is, that would be good) is this:
 
 Some error handling somewhere in the low-level ide driver is getting
 confused and somehow one the sector counts in the 'struct request' is
 getting set wrongly.  blk_recalc_rq_sectors notices this and says
 blk: request botched.  It tries to auto-correct by increasing
 rq-nr_sectors to be consistent with other counts.
 I'm *guessing* this is the wrong thing to do, and that it has a
 side-effect but bi_end_io is getting called on the Bi twice.
 The second time the bio has been freed and reused and the wrong
 b_end_io is called and it does the wrong thing.

It doesn't sound at all unreasonable. It's most likely either a bug in
the ide driver, or a bad bio being passed to the block layer (and
later on to the request and driver). By bad I mean one that isn't
entirely consistent, which could be a bug in eg md. The request
botched error is usually a sign of something being severly screwed up.
As you mention further down, get slab and page debugging enabled to
potentially catch this earlier. It could be a sign of a freed bio or
request with corrupt contents.

 This sounds a bit far-fetched, but it is the only explanation I can
 come up with for the observed back trace which is:
 
 [87403.706012]  [c0103871] error_code+0x39/0x40
 [87403.710794]  [c0180e0a] mpage_end_io_read+0x5e/0x72
 [87403.716154]  [c0164af9] bio_endio+0x56/0x7b
 [87403.720798]  [c0256778] __end_that_request_first+0x1e0/0x301
 [87403.726985]  [c02568a4] end_that_request_first+0xb/0xd
 [87403.732699]  [c02bd73c] __ide_end_request+0x54/0xe1
 [87403.738214]  [c02bd807] ide_end_request+0x3e/0x5c
 [87403.743382]  [c02c35df] task_error+0x5b/0x97
 [87403.748113]  [c02c36fa] task_in_intr+0x6e/0xa2
 [87403.753120]  [c02bf19e] ide_intr+0xaf/0x12c
 [87403.757815]  [c013e5a7] handle_IRQ_event+0x23/0x57
 [87403.763135]  [c013e66f] __do_IRQ+0x94/0xfd
 [87403.767802]  [c0105192] do_IRQ+0x32/0x68
 [87403.772278]  [c010372e] common_interrupt+0x1a/0x20
 
 i.e. bio_endio goes straight to mpage_end_io despite the face that the
 filesystem is mounted over md/raid1.

What is the workload? Is io to the real device mixed with io that came
through md as well?

 Is the kernel compiled with CONFIG_DEBUG_SLAB=y and
 CONFIG_DEBUG_PAGEALLOC=y ??
 They might help trigger the error earlier and so make the problem more
 obvious.

Agree, that would be a good plan to enable. Other questions: are you
seeing timeouts at any point? The ide timeout code has some request/bio
resetting code which might be worrisome.
 
 NeilBrown

-- 
Jens Axboe

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Re[2]: RAID1 submirror failure causes reboot?

2006-11-13 Thread Neil Brown
On Monday November 13, [EMAIL PROTECTED] wrote:
 
 It doesn't sound at all unreasonable. It's most likely either a bug in
 the ide driver, or a bad bio being passed to the block layer (and
 later on to the request and driver). By bad I mean one that isn't
 entirely consistent, which could be a bug in eg md. 

I just noticed (while tracking raid6 problems...) that bio_clone calls
bio_phys_segments and bio_hw_segments (why does it do both?).
This calls blk_recount_segments which does calculations based on
 -bi_bdev.
Only immediately after calling bio_clone, raid1 changes bi_bdev, thus
creating potential inconsistency in the bio.  Would this sort of
inconsistency cause this problem?

 
 Agree, that would be a good plan to enable. Other questions: are you
 seeing timeouts at any point? The ide timeout code has some request/bio
 resetting code which might be worrisome.

Jim could probably answer this with more authority, but there aren't
obvious timeouts from the logs he posted.  A representative sample is:
[87338.675891] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
DataRequest Error }
[87338.685143] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
LBAsect=176315718, sector=176315711
[87338.694791] ide: failed opcode was: unknown
[87343.557424] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
DataRequest Error }
[87343.566388] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
LBAsect=176315718, sector=176315711
[87343.576105] ide: failed opcode was: unknown
[87348.472226] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
DataRequest Error }
[87348.481170] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
LBAsect=176315718, sector=176315711
[87348.490843] ide: failed opcode was: unknown
[87353.387028] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
DataRequest Error }
[87353.395735] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
LBAsect=176315718, sector=176315711
[87353.405500] ide: failed opcode was: unknown
[87353.461342] ide1: reset: success

Thanks,
NeilBrown
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Re[2]: RAID1 submirror failure causes reboot?

2006-11-13 Thread Jens Axboe
On Tue, Nov 14 2006, Neil Brown wrote:
 On Monday November 13, [EMAIL PROTECTED] wrote:
  
  It doesn't sound at all unreasonable. It's most likely either a bug in
  the ide driver, or a bad bio being passed to the block layer (and
  later on to the request and driver). By bad I mean one that isn't
  entirely consistent, which could be a bug in eg md. 
 
 I just noticed (while tracking raid6 problems...) that bio_clone calls
 bio_phys_segments and bio_hw_segments (why does it do both?).
 This calls blk_recount_segments which does calculations based on
  -bi_bdev.
 Only immediately after calling bio_clone, raid1 changes bi_bdev, thus
 creating potential inconsistency in the bio.  Would this sort of
 inconsistency cause this problem?

raid1 should change it first, you are right. But it should not matter,
as the real device should have restrictions that are at least equal to
the md device. So it may be a bit more conservative, but I don't think
there's a problem bug there.

  Agree, that would be a good plan to enable. Other questions: are you
  seeing timeouts at any point? The ide timeout code has some request/bio
  resetting code which might be worrisome.
 
 Jim could probably answer this with more authority, but there aren't
 obvious timeouts from the logs he posted.  A representative sample is:
 [87338.675891] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
 DataRequest Error }
 [87338.685143] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
 LBAsect=176315718, sector=176315711
 [87338.694791] ide: failed opcode was: unknown
 [87343.557424] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
 DataRequest Error }
 [87343.566388] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
 LBAsect=176315718, sector=176315711
 [87343.576105] ide: failed opcode was: unknown
 [87348.472226] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
 DataRequest Error }
 [87348.481170] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
 LBAsect=176315718, sector=176315711
 [87348.490843] ide: failed opcode was: unknown
 [87353.387028] hdc: task_in_intr: status=0x59 { DriveReady SeekComplete 
 DataRequest Error }
 [87353.395735] hdc: task_in_intr: error=0x01 { AddrMarkNotFound }, 
 LBAsect=176315718, sector=176315711
 [87353.405500] ide: failed opcode was: unknown
 [87353.461342] ide1: reset: success

Then lets wait for Jim to repeat his testing with all the debugging
options enabled, that should make us a little wiser.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Re[2]: RAID1 submirror failure causes reboot?

2006-11-12 Thread Neil Brown
On Friday November 10, [EMAIL PROTECTED] wrote:
 Hello Neil,
 
  [87398.531579] blk: request botched
 NB  
 
 NB That looks bad.  Possible some bug in the IDE controller or elsewhere
 NB in the block layer.  Jens: What might cause that?
 
 NB --snip--
 
 NB That doesn't look like raid was involved.  If it was you would expect
 NB to see raid1_end_write_request or raid1_end_read_request in that
 NB trace.
 So that might be the hard or soft part of IDE layer failing the
 system, or a PCI problem for example?

What I think is happening here (and Jens: if you could tell me how
impossible this is, that would be good) is this:

Some error handling somewhere in the low-level ide driver is getting
confused and somehow one the sector counts in the 'struct request' is
getting set wrongly.  blk_recalc_rq_sectors notices this and says
blk: request botched.  It tries to auto-correct by increasing
rq-nr_sectors to be consistent with other counts.
I'm *guessing* this is the wrong thing to do, and that it has a
side-effect but bi_end_io is getting called on the Bi twice.
The second time the bio has been freed and reused and the wrong
b_end_io is called and it does the wrong thing.

This sounds a bit far-fetched, but it is the only explanation I can
come up with for the observed back trace which is:

[87403.706012]  [c0103871] error_code+0x39/0x40
[87403.710794]  [c0180e0a] mpage_end_io_read+0x5e/0x72
[87403.716154]  [c0164af9] bio_endio+0x56/0x7b
[87403.720798]  [c0256778] __end_that_request_first+0x1e0/0x301
[87403.726985]  [c02568a4] end_that_request_first+0xb/0xd
[87403.732699]  [c02bd73c] __ide_end_request+0x54/0xe1
[87403.738214]  [c02bd807] ide_end_request+0x3e/0x5c
[87403.743382]  [c02c35df] task_error+0x5b/0x97
[87403.748113]  [c02c36fa] task_in_intr+0x6e/0xa2
[87403.753120]  [c02bf19e] ide_intr+0xaf/0x12c
[87403.757815]  [c013e5a7] handle_IRQ_event+0x23/0x57
[87403.763135]  [c013e66f] __do_IRQ+0x94/0xfd
[87403.767802]  [c0105192] do_IRQ+0x32/0x68
[87403.772278]  [c010372e] common_interrupt+0x1a/0x20

i.e. bio_endio goes straight to mpage_end_io despite the face that the
filesystem is mounted over md/raid1.

Is the kernel compiled with CONFIG_DEBUG_SLAB=y and
CONFIG_DEBUG_PAGEALLOC=y ??
They might help trigger the error earlier and so make the problem more
obvious.

NeilBrown
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re[2]: RAID1 submirror failure causes reboot?

2006-11-10 Thread Jim Klimov
Hello Neil,

 [87398.531579] blk: request botched
NB  

NB That looks bad.  Possible some bug in the IDE controller or elsewhere
NB in the block layer.  Jens: What might cause that?

NB --snip--

NB That doesn't look like raid was involved.  If it was you would expect
NB to see raid1_end_write_request or raid1_end_read_request in that
NB trace.
So that might be the hard or soft part of IDE layer failing the
system, or a PCI problem for example?

Just in case, motherboard is Supermicro X5DPE-G2: e7501 chipset,
Dual Xeon-533. Rather old now, way cool back when it was bought ;)
But, as anything new, it could be manufactured bad. Maybe now there
are some well-known problems with the tech?

NB Do you have any other partitions of hdc in use but not on raid?
NB Which partition is sector 176315718 in ??
All partitions are mirrored, and this sector is in hdc11:

# fdisk /dev/hdc
...
Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /dev/hdc: 102.9 GB, 102935347200 bytes
16 heads, 63 sectors/track, 199450 cylinders, total 201045600 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot  Start End  Blocks   Id  System
/dev/hdc1   *  63 1000943  500440+  fd  Linux raid autodetect
/dev/hdc2 1000944 5001695 2000376   fd  Linux raid autodetect
/dev/hdc3 500169616721711 5860008   83  Linux
/dev/hdc416721712   201045599921619445  Extended
/dev/hdc51672177524534719 3906472+  83  Linux
/dev/hdc62453478328441727 1953472+  83  Linux
/dev/hdc72844179132348735 1953472+  83  Linux
/dev/hdc83234879944068751 5859976+  83  Linux
/dev/hdc94406881551881759 3906472+  83  Linux
/dev/hdc10   5188182359694767 3906472+  83  Linux
/dev/hdc11   59694831   19055534365430256+  83  Linux
/dev/hdc12  190555407   201045599 5245096+  83  Linux


-- 
Best regards,
 Jim Klimovmailto:[EMAIL PROTECTED]

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html