Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 09:41:43AM +0100, Steven Hartland wrote:

 On 07/05/2015 09:07, Slawa Olhovchenkov wrote:
  I have zpool of 12 vdev (zmirrors).
  One disk in one vdev out of service and stop serving reuquest:
 
  dT: 1.036s  w: 1.000s
L(q)  ops/sr/s   kBps   ms/rw/s   kBps   ms/w   %busy Name
   0  0  0  00.0  0  00.00.0| ada0
   0  0  0  00.0  0  00.00.0| ada1
   1  0  0  00.0  0  00.00.0| ada2
   0  0  0  00.0  0  00.00.0| ada3
   0  0  0  00.0  0  00.00.0| da0
   0  0  0  00.0  0  00.00.0| da1
   0  0  0  00.0  0  00.00.0| da2
   0  0  0  00.0  0  00.00.0| da3
   0  0  0  00.0  0  00.00.0| da4
   0  0  0  00.0  0  00.00.0| da5
   0  0  0  00.0  0  00.00.0| da6
   0  0  0  00.0  0  00.00.0| da7
   0  0  0  00.0  0  00.00.0| da8
   0  0  0  00.0  0  00.00.0| da9
   0  0  0  00.0  0  00.00.0| da10
   0  0  0  00.0  0  00.00.0| da11
   0  0  0  00.0  0  00.00.0| da12
   0  0  0  00.0  0  00.00.0| da13
   0  0  0  00.0  0  00.00.0| da14
   0  0  0  00.0  0  00.00.0| da15
   0  0  0  00.0  0  00.00.0| da16
   0  0  0  00.0  0  00.00.0| da17
   0  0  0  00.0  0  00.00.0| da18
  24  0  0  00.0  0  00.00.0| da19
  
   0  0  0  00.0  0  00.00.0| da20
   0  0  0  00.0  0  00.00.0| da21
   0  0  0  00.0  0  00.00.0| da22
   0  0  0  00.0  0  00.00.0| da23
   0  0  0  00.0  0  00.00.0| da24
   0  0  0  00.0  0  00.00.0| da25
   0  0  0  00.0  0  00.00.0| da26
   0  0  0  00.0  0  00.00.0| da27
 
  As result zfs operation on this pool stoped too.
  `zpool list -v` don't worked.
  `zpool detach tank da19` don't worked.
  Application worked with this pool sticking in `zfs` wchan and don't killed.
 
  # camcontrol tags da19 -v
  (pass19:isci0:0:3:0): dev_openings  7
  (pass19:isci0:0:3:0): dev_active25
  (pass19:isci0:0:3:0): allocated 25
  (pass19:isci0:0:3:0): queued0
  (pass19:isci0:0:3:0): held  0
  (pass19:isci0:0:3:0): mintags   2
  (pass19:isci0:0:3:0): maxtags   255
 
  How I can cancel this 24 requst?
  Why this requests don't timeout (3 hours already)?
  How I can forced detach this disk? (I am lready try `camcontrol reset`, 
  `camconrol rescan`).
  Why ZFS (or geom) don't timeout on request and don't rerouted to da18?
 
 If they are in mirrors, in theory you can just pull the disk, isci will 
 report to cam and cam will report to ZFS which should all recover.

Yes, zmirror with da18.
I am surprise that ZFS don't use da18. All zpool fully stuck.

 With regards to not timing out this could be a default issue, but having 

I am understand, no universal acceptable timeout for all cases: good
disk, good saturated disk, tape, tape library, failed disk, etc.
In my case -- failed disk. This model already failed (other specimen)
with same symptoms).

May be exist some tricks for cancel/aborting all request in queue and
removing disk from system?

 a very quick look that's not obvious in the code as 
 isci_io_request_construct etc do indeed set a timeout when 
 CAM_TIME_INFINITY hasn't been requested.
 
 The sysctl hw.isci.debug_level may be able to provide more information, 
 but be aware this can be spammy.

I am already have this situation, what command interesting after
setting hw.isci.debug_level?
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland

On 07/05/2015 09:07, Slawa Olhovchenkov wrote:

I have zpool of 12 vdev (zmirrors).
One disk in one vdev out of service and stop serving reuquest:

dT: 1.036s  w: 1.000s
  L(q)  ops/sr/s   kBps   ms/rw/s   kBps   ms/w   %busy Name
 0  0  0  00.0  0  00.00.0| ada0
 0  0  0  00.0  0  00.00.0| ada1
 1  0  0  00.0  0  00.00.0| ada2
 0  0  0  00.0  0  00.00.0| ada3
 0  0  0  00.0  0  00.00.0| da0
 0  0  0  00.0  0  00.00.0| da1
 0  0  0  00.0  0  00.00.0| da2
 0  0  0  00.0  0  00.00.0| da3
 0  0  0  00.0  0  00.00.0| da4
 0  0  0  00.0  0  00.00.0| da5
 0  0  0  00.0  0  00.00.0| da6
 0  0  0  00.0  0  00.00.0| da7
 0  0  0  00.0  0  00.00.0| da8
 0  0  0  00.0  0  00.00.0| da9
 0  0  0  00.0  0  00.00.0| da10
 0  0  0  00.0  0  00.00.0| da11
 0  0  0  00.0  0  00.00.0| da12
 0  0  0  00.0  0  00.00.0| da13
 0  0  0  00.0  0  00.00.0| da14
 0  0  0  00.0  0  00.00.0| da15
 0  0  0  00.0  0  00.00.0| da16
 0  0  0  00.0  0  00.00.0| da17
 0  0  0  00.0  0  00.00.0| da18
24  0  0  00.0  0  00.00.0| da19

 0  0  0  00.0  0  00.00.0| da20
 0  0  0  00.0  0  00.00.0| da21
 0  0  0  00.0  0  00.00.0| da22
 0  0  0  00.0  0  00.00.0| da23
 0  0  0  00.0  0  00.00.0| da24
 0  0  0  00.0  0  00.00.0| da25
 0  0  0  00.0  0  00.00.0| da26
 0  0  0  00.0  0  00.00.0| da27

As result zfs operation on this pool stoped too.
`zpool list -v` don't worked.
`zpool detach tank da19` don't worked.
Application worked with this pool sticking in `zfs` wchan and don't killed.

# camcontrol tags da19 -v
(pass19:isci0:0:3:0): dev_openings  7
(pass19:isci0:0:3:0): dev_active25
(pass19:isci0:0:3:0): allocated 25
(pass19:isci0:0:3:0): queued0
(pass19:isci0:0:3:0): held  0
(pass19:isci0:0:3:0): mintags   2
(pass19:isci0:0:3:0): maxtags   255

How I can cancel this 24 requst?
Why this requests don't timeout (3 hours already)?
How I can forced detach this disk? (I am lready try `camcontrol reset`, 
`camconrol rescan`).
Why ZFS (or geom) don't timeout on request and don't rerouted to da18?

If they are in mirrors, in theory you can just pull the disk, isci will 
report to cam and cam will report to ZFS which should all recover.


With regards to not timing out this could be a default issue, but having 
a very quick look that's not obvious in the code as 
isci_io_request_construct etc do indeed set a timeout when 
CAM_TIME_INFINITY hasn't been requested.


The sysctl hw.isci.debug_level may be able to provide more information, 
but be aware this can be spammy.


Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 15:28, Matthew Seaman wrote:

On 05/07/15 14:32, Steven Hartland wrote:


I wouldn't have thought so, I would expect that to only have an effect
on removal media such as CDROM drives, but no harm in trying ;-)

zpool offline -t zroot da19


That might work but it also might just wedge waiting for the outstanding 
IO to complete as I thought that was a nice off-line instead of a I 
don't care one.

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
I have zpool of 12 vdev (zmirrors).
One disk in one vdev out of service and stop serving reuquest:

dT: 1.036s  w: 1.000s
 L(q)  ops/sr/s   kBps   ms/rw/s   kBps   ms/w   %busy Name
0  0  0  00.0  0  00.00.0| ada0
0  0  0  00.0  0  00.00.0| ada1
1  0  0  00.0  0  00.00.0| ada2
0  0  0  00.0  0  00.00.0| ada3
0  0  0  00.0  0  00.00.0| da0
0  0  0  00.0  0  00.00.0| da1
0  0  0  00.0  0  00.00.0| da2
0  0  0  00.0  0  00.00.0| da3
0  0  0  00.0  0  00.00.0| da4
0  0  0  00.0  0  00.00.0| da5
0  0  0  00.0  0  00.00.0| da6
0  0  0  00.0  0  00.00.0| da7
0  0  0  00.0  0  00.00.0| da8
0  0  0  00.0  0  00.00.0| da9
0  0  0  00.0  0  00.00.0| da10
0  0  0  00.0  0  00.00.0| da11
0  0  0  00.0  0  00.00.0| da12
0  0  0  00.0  0  00.00.0| da13
0  0  0  00.0  0  00.00.0| da14
0  0  0  00.0  0  00.00.0| da15
0  0  0  00.0  0  00.00.0| da16
0  0  0  00.0  0  00.00.0| da17
0  0  0  00.0  0  00.00.0| da18
   24  0  0  00.0  0  00.00.0| da19

0  0  0  00.0  0  00.00.0| da20
0  0  0  00.0  0  00.00.0| da21
0  0  0  00.0  0  00.00.0| da22
0  0  0  00.0  0  00.00.0| da23
0  0  0  00.0  0  00.00.0| da24
0  0  0  00.0  0  00.00.0| da25
0  0  0  00.0  0  00.00.0| da26
0  0  0  00.0  0  00.00.0| da27

As result zfs operation on this pool stoped too.
`zpool list -v` don't worked.
`zpool detach tank da19` don't worked.
Application worked with this pool sticking in `zfs` wchan and don't killed.

# camcontrol tags da19 -v
(pass19:isci0:0:3:0): dev_openings  7
(pass19:isci0:0:3:0): dev_active25
(pass19:isci0:0:3:0): allocated 25
(pass19:isci0:0:3:0): queued0
(pass19:isci0:0:3:0): held  0
(pass19:isci0:0:3:0): mintags   2
(pass19:isci0:0:3:0): maxtags   255

How I can cancel this 24 requst?
Why this requests don't timeout (3 hours already)?
How I can forced detach this disk? (I am lready try `camcontrol reset`, 
`camconrol rescan`).
Why ZFS (or geom) don't timeout on request and don't rerouted to da18?
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 13:51, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:


Yes in theory new requests should go to the other vdev, but there could
be some dependency issues preventing that such as a syncing TXG.

Currenly this pool must not have write activity (from application).
What about go to the other (mirror) device in the same vdev?
Same dependency?

Yes, if there's an outstanding TXG, then I believe all IO will stall.

Where this TXG released? When all devices in all vdevs report
'completed'? When at the least one device in all vdevs report
'completed'? When at the least one device in at least one vdev report
'completed'?

When all devices have report completed or failed.

Hence if you pull the disk things should continue as normal, with the 
failed device being marked as such.


Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 02:05:11PM +0100, Steven Hartland wrote:

 
 
 On 07/05/2015 13:51, Slawa Olhovchenkov wrote:
  On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:
 
  Yes in theory new requests should go to the other vdev, but there could
  be some dependency issues preventing that such as a syncing TXG.
  Currenly this pool must not have write activity (from application).
  What about go to the other (mirror) device in the same vdev?
  Same dependency?
  Yes, if there's an outstanding TXG, then I believe all IO will stall.
  Where this TXG released? When all devices in all vdevs report
  'completed'? When at the least one device in all vdevs report
  'completed'? When at the least one device in at least one vdev report
  'completed'?
 When all devices have report completed or failed.

Thanks for explained.

 Hence if you pull the disk things should continue as normal, with the 
 failed device being marked as such.

I am have trouble to phisical access.
May be someone can be suggest software method to forced detach device
from system.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 01:35:05PM +0100, Steven Hartland wrote:

 
 
 On 07/05/2015 13:05, Slawa Olhovchenkov wrote:
  On Thu, May 07, 2015 at 01:00:40PM +0100, Steven Hartland wrote:
 
 
  On 07/05/2015 11:46, Slawa Olhovchenkov wrote:
  On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:
 
  How I can cancel this 24 requst?
  Why this requests don't timeout (3 hours already)?
  How I can forced detach this disk? (I am lready try `camcontrol 
  reset`, `camconrol rescan`).
  Why ZFS (or geom) don't timeout on request and don't rerouted to da18?
 
  If they are in mirrors, in theory you can just pull the disk, isci will
  report to cam and cam will report to ZFS which should all recover.
  Yes, zmirror with da18.
  I am surprise that ZFS don't use da18. All zpool fully stuck.
  A single low level request can only be handled by one device, if that
  device returns an error then ZFS will use the other device, but not 
  until.
  Why next requests don't routed to da18?
  Current request stuck on da19 (unlikely, but understund), but why
  stuck all pool?
  Its still waiting for the request from the failed device to complete. As
  far as ZFS currently knows there is nothing wrong with the device as its
  had no failures.
  Can you explain some more?
  One requst waiting, understand.
  I am do next request. Some information need from vdev with failed
  disk. Failed disk more busy (queue long), why don't routed to mirror
  disk? Or, for metadata, to less busy vdev?
 As no error has been reported to ZFS, due to the stalled IO, there is no 
 failed vdev.

I see that device isn't failed (for both OS and ZFS).
I am don't talk 'failed vdev'. I am talk 'busy vdev' or 'busy device'.

 Yes in theory new requests should go to the other vdev, but there could 
 be some dependency issues preventing that such as a syncing TXG.

Currenly this pool must not have write activity (from application).
What about go to the other (mirror) device in the same vdev?
Same dependency?
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:

  Yes in theory new requests should go to the other vdev, but there could
  be some dependency issues preventing that such as a syncing TXG.
  Currenly this pool must not have write activity (from application).
  What about go to the other (mirror) device in the same vdev?
  Same dependency?
 Yes, if there's an outstanding TXG, then I believe all IO will stall.

Where this TXG released? When all devices in all vdevs report
'completed'? When at the least one device in all vdevs report
'completed'? When at the least one device in at least one vdev report
'completed'?
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


panic: pmap active 0xfffff8001b7154b8

2015-05-07 Thread Johan Schuijt-Li
Hi,

We’ve been seeing (seemingly) random reboots on 10.1-RELEASE virtual machines 
(KVM virtualisation) on our production servers. In an attempt to determine what 
was causing this we’ve switched to running a kernel with INVARIANTS enabled. 
This resulted for us in the following panic:

Unread portion of the kernel message buffer:
panic: pmap active 0xf8001b7154b8
cpuid = 3
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfe03dd1493a0
kdb_backtrace() at kdb_backtrace+0x39/frame 0xfe03dd149450
vpanic() at vpanic+0x126/frame 0xfe03dd149490
kassert_panic() at kassert_panic+0x139/frame 0xfe03dd149500
pmap_remove_pages() at pmap_remove_pages+0x8c/frame 0xfe03dd1495f0
exec_new_vmspace() at exec_new_vmspace+0x16a/frame 0xfe03dd149650
exec_elf64_imgact() at exec_elf64_imgact+0x658/frame 0xfe03dd149720
kern_execve() at kern_execve+0x5e4/frame 0xfe03dd149a80
sys_execve() at sys_execve+0x37/frame 0xfe03dd149ae0
amd64_syscall() at amd64_syscall+0x25a/frame 0xfe03dd149bf0
Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfe03dd149bf0
--- syscall (59, FreeBSD ELF64, sys_execve), rip = 0x80158af1a, rsp = 
0x7fffac38, rbp = 0x7fffad40 ---


I’ve only come across one other report here (without result unfortunate):
https://lists.freebsd.org/pipermail/freebsd-current/2014-June/050827.html 
https://lists.freebsd.org/pipermail/freebsd-current/2014-June/050827.html

Are other people aware of this issue or working on this?

I can provide access to a VM with a kernel dump and the kernel build for extra 
information if needed.

- Johan
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org

Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 13:44, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:35:05PM +0100, Steven Hartland wrote:



On 07/05/2015 13:05, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:00:40PM +0100, Steven Hartland wrote:


On 07/05/2015 11:46, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:


How I can cancel this 24 requst?
Why this requests don't timeout (3 hours already)?
How I can forced detach this disk? (I am lready try `camcontrol reset`, 
`camconrol rescan`).
Why ZFS (or geom) don't timeout on request and don't rerouted to da18?


If they are in mirrors, in theory you can just pull the disk, isci will
report to cam and cam will report to ZFS which should all recover.

Yes, zmirror with da18.
I am surprise that ZFS don't use da18. All zpool fully stuck.

A single low level request can only be handled by one device, if that
device returns an error then ZFS will use the other device, but not until.

Why next requests don't routed to da18?
Current request stuck on da19 (unlikely, but understund), but why
stuck all pool?

Its still waiting for the request from the failed device to complete. As
far as ZFS currently knows there is nothing wrong with the device as its
had no failures.

Can you explain some more?
One requst waiting, understand.
I am do next request. Some information need from vdev with failed
disk. Failed disk more busy (queue long), why don't routed to mirror
disk? Or, for metadata, to less busy vdev?

As no error has been reported to ZFS, due to the stalled IO, there is no
failed vdev.

I see that device isn't failed (for both OS and ZFS).
I am don't talk 'failed vdev'. I am talk 'busy vdev' or 'busy device'.


Yes in theory new requests should go to the other vdev, but there could
be some dependency issues preventing that such as a syncing TXG.

Currenly this pool must not have write activity (from application).
What about go to the other (mirror) device in the same vdev?
Same dependency?

Yes, if there's an outstanding TXG, then I believe all IO will stall.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 01:00:40PM +0100, Steven Hartland wrote:

 
 
 On 07/05/2015 11:46, Slawa Olhovchenkov wrote:
  On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:
 
  How I can cancel this 24 requst?
  Why this requests don't timeout (3 hours already)?
  How I can forced detach this disk? (I am lready try `camcontrol reset`, 
  `camconrol rescan`).
  Why ZFS (or geom) don't timeout on request and don't rerouted to da18?
 
  If they are in mirrors, in theory you can just pull the disk, isci will
  report to cam and cam will report to ZFS which should all recover.
  Yes, zmirror with da18.
  I am surprise that ZFS don't use da18. All zpool fully stuck.
  A single low level request can only be handled by one device, if that
  device returns an error then ZFS will use the other device, but not until.
  Why next requests don't routed to da18?
  Current request stuck on da19 (unlikely, but understund), but why
  stuck all pool?
 
 Its still waiting for the request from the failed device to complete. As 
 far as ZFS currently knows there is nothing wrong with the device as its 
 had no failures.

Can you explain some more?
One requst waiting, understand.
I am do next request. Some information need from vdev with failed
disk. Failed disk more busy (queue long), why don't routed to mirror
disk? Or, for metadata, to less busy vdev?

 You didn't say which FreeBSD version you where running?

10-STABLE, r281264.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 13:05, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:00:40PM +0100, Steven Hartland wrote:



On 07/05/2015 11:46, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:


How I can cancel this 24 requst?
Why this requests don't timeout (3 hours already)?
How I can forced detach this disk? (I am lready try `camcontrol reset`, 
`camconrol rescan`).
Why ZFS (or geom) don't timeout on request and don't rerouted to da18?


If they are in mirrors, in theory you can just pull the disk, isci will
report to cam and cam will report to ZFS which should all recover.

Yes, zmirror with da18.
I am surprise that ZFS don't use da18. All zpool fully stuck.

A single low level request can only be handled by one device, if that
device returns an error then ZFS will use the other device, but not until.

Why next requests don't routed to da18?
Current request stuck on da19 (unlikely, but understund), but why
stuck all pool?

Its still waiting for the request from the failed device to complete. As
far as ZFS currently knows there is nothing wrong with the device as its
had no failures.

Can you explain some more?
One requst waiting, understand.
I am do next request. Some information need from vdev with failed
disk. Failed disk more busy (queue long), why don't routed to mirror
disk? Or, for metadata, to less busy vdev?
As no error has been reported to ZFS, due to the stalled IO, there is no 
failed vdev.


Yes in theory new requests should go to the other vdev, but there could 
be some dependency issues preventing that such as a syncing TXG.


Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 03:29:20PM +0200, Ronald Klop wrote:

 On Thu, 07 May 2015 15:23:58 +0200, Steven Hartland  
 kill...@multiplay.co.uk wrote:
 
 
 
  On 07/05/2015 14:10, Slawa Olhovchenkov wrote:
  On Thu, May 07, 2015 at 02:05:11PM +0100, Steven Hartland wrote:
 
 
  On 07/05/2015 13:51, Slawa Olhovchenkov wrote:
  On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:
 
  Yes in theory new requests should go to the other vdev, but there  
  could
  be some dependency issues preventing that such as a syncing TXG.
  Currenly this pool must not have write activity (from application).
  What about go to the other (mirror) device in the same vdev?
  Same dependency?
  Yes, if there's an outstanding TXG, then I believe all IO will stall.
  Where this TXG released? When all devices in all vdevs report
  'completed'? When at the least one device in all vdevs report
  'completed'? When at the least one device in at least one vdev report
  'completed'?
  When all devices have report completed or failed.
  Thanks for explained.
 
  Hence if you pull the disk things should continue as normal, with the
  failed device being marked as such.
  I am have trouble to phisical access.
  May be someone can be suggest software method to forced detach device
  from system.
  In 11 that should be possible with devctl, but under 10 I'm not aware of  
  anything that wouldn't involve some custom kernel level code I'm afraid.
 
 
 
 Maybe I'm talking BS here, but does 'camcontrol eject' do something on a  
 disk?

I am don't try 'camcontrol eject' but 'camcontrol identify' already
stalled. Need control on adapter layer.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Paul Mather
On May 7, 2015, at 8:00 AM, Steven Hartland kill...@multiplay.co.uk wrote:

 On 07/05/2015 11:46, Slawa Olhovchenkov wrote:
 On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:
 
 How I can cancel this 24 requst?
 Why this requests don't timeout (3 hours already)?
 How I can forced detach this disk? (I am lready try `camcontrol reset`, 
 `camconrol rescan`).
 Why ZFS (or geom) don't timeout on request and don't rerouted to da18?
 
 If they are in mirrors, in theory you can just pull the disk, isci will
 report to cam and cam will report to ZFS which should all recover.
 Yes, zmirror with da18.
 I am surprise that ZFS don't use da18. All zpool fully stuck.
 A single low level request can only be handled by one device, if that
 device returns an error then ZFS will use the other device, but not until.
 Why next requests don't routed to da18?
 Current request stuck on da19 (unlikely, but understund), but why
 stuck all pool?
 
 Its still waiting for the request from the failed device to complete. As far 
 as ZFS currently knows there is nothing wrong with the device as its had no 
 failures.


Maybe related to this, but if the drive stalls indefinitely, is it what leads 
to the panic: I/O to pool 'poolname' appears to be hung on vdev guid GUID-ID 
at '/dev/somedevice'.?

I have a 6-disk RAIDZ2 pool that is used for nightly rsync backups from various 
systems.  I believe one of the drives is a bit temperamental.  Very 
occasionally, I discover the backup has failed and the machine actually paniced 
because of this drive, with a panic message like the above.  The panic 
backtrace includes references to vdev_deadman, which sounds like some sort of 
dead man's switch/watchdog.

It's a bit counter-intuitive that a single drive wandering off into la-la land 
can not only cause an entire ZFS pool to wedge, but, worse still, panic the 
whole machine.

If I'm understanding this thread correctly, part of the problem is that an I/O 
never completing is not the same as a failure to ZFS, and hence ZFS can't call 
upon various resources in the pool and mechanisms at its disposal to correct 
for that.  Is that accurate?

I would think that never-ending I/O requests would be a type of failure that 
ZFS could sustain.  It seems from the hung on vdev panic that it does detect 
this situation, though the resolution (panic) is not ideal. :-)

Cheers,

Paul.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 14:10, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 02:05:11PM +0100, Steven Hartland wrote:



On 07/05/2015 13:51, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:


Yes in theory new requests should go to the other vdev, but there could
be some dependency issues preventing that such as a syncing TXG.

Currenly this pool must not have write activity (from application).
What about go to the other (mirror) device in the same vdev?
Same dependency?

Yes, if there's an outstanding TXG, then I believe all IO will stall.

Where this TXG released? When all devices in all vdevs report
'completed'? When at the least one device in all vdevs report
'completed'? When at the least one device in at least one vdev report
'completed'?

When all devices have report completed or failed.

Thanks for explained.


Hence if you pull the disk things should continue as normal, with the
failed device being marked as such.

I am have trouble to phisical access.
May be someone can be suggest software method to forced detach device
from system.
In 11 that should be possible with devctl, but under 10 I'm not aware of 
anything that wouldn't involve some custom kernel level code I'm afraid.


Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 14:29, Ronald Klop wrote:
On Thu, 07 May 2015 15:23:58 +0200, Steven Hartland 
kill...@multiplay.co.uk wrote:





On 07/05/2015 14:10, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 02:05:11PM +0100, Steven Hartland wrote:



On 07/05/2015 13:51, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:

Yes in theory new requests should go to the other vdev, but 
there could

be some dependency issues preventing that such as a syncing TXG.

Currenly this pool must not have write activity (from application).
What about go to the other (mirror) device in the same vdev?
Same dependency?
Yes, if there's an outstanding TXG, then I believe all IO will 
stall.

Where this TXG released? When all devices in all vdevs report
'completed'? When at the least one device in all vdevs report
'completed'? When at the least one device in at least one vdev report
'completed'?

When all devices have report completed or failed.

Thanks for explained.


Hence if you pull the disk things should continue as normal, with the
failed device being marked as such.

I am have trouble to phisical access.
May be someone can be suggest software method to forced detach device
from system.
In 11 that should be possible with devctl, but under 10 I'm not aware 
of anything that wouldn't involve some custom kernel level code I'm 
afraid.





Maybe I'm talking BS here, but does 'camcontrol eject' do something on 
a disk?
I wouldn't have thought so, I would expect that to only have an effect 
on removal media such as CDROM drives, but no harm in trying ;-)


Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Ronald Klop
On Thu, 07 May 2015 15:23:58 +0200, Steven Hartland  
kill...@multiplay.co.uk wrote:





On 07/05/2015 14:10, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 02:05:11PM +0100, Steven Hartland wrote:



On 07/05/2015 13:51, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:

Yes in theory new requests should go to the other vdev, but there  
could

be some dependency issues preventing that such as a syncing TXG.

Currenly this pool must not have write activity (from application).
What about go to the other (mirror) device in the same vdev?
Same dependency?

Yes, if there's an outstanding TXG, then I believe all IO will stall.

Where this TXG released? When all devices in all vdevs report
'completed'? When at the least one device in all vdevs report
'completed'? When at the least one device in at least one vdev report
'completed'?

When all devices have report completed or failed.

Thanks for explained.


Hence if you pull the disk things should continue as normal, with the
failed device being marked as such.

I am have trouble to phisical access.
May be someone can be suggest software method to forced detach device
from system.
In 11 that should be possible with devctl, but under 10 I'm not aware of  
anything that wouldn't involve some custom kernel level code I'm afraid.





Maybe I'm talking BS here, but does 'camcontrol eject' do something on a  
disk?


Ronald.
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: panic: pmap active 0xfffff8001b7154b8

2015-05-07 Thread Bryan Drewery
On 5/7/2015 7:08 AM, Johan Schuijt-Li wrote:
 Hi,
 
 We’ve been seeing (seemingly) random reboots on 10.1-RELEASE virtual machines 
 (KVM virtualisation) on our production servers. In an attempt to determine 
 what was causing this we’ve switched to running a kernel with INVARIANTS 
 enabled. This resulted for us in the following panic:
 
 Unread portion of the kernel message buffer:
 panic: pmap active 0xf8001b7154b8
 cpuid = 3
 KDB: stack backtrace:
 db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfe03dd1493a0
 kdb_backtrace() at kdb_backtrace+0x39/frame 0xfe03dd149450
 vpanic() at vpanic+0x126/frame 0xfe03dd149490
 kassert_panic() at kassert_panic+0x139/frame 0xfe03dd149500
 pmap_remove_pages() at pmap_remove_pages+0x8c/frame 0xfe03dd1495f0
 exec_new_vmspace() at exec_new_vmspace+0x16a/frame 0xfe03dd149650
 exec_elf64_imgact() at exec_elf64_imgact+0x658/frame 0xfe03dd149720
 kern_execve() at kern_execve+0x5e4/frame 0xfe03dd149a80
 sys_execve() at sys_execve+0x37/frame 0xfe03dd149ae0
 amd64_syscall() at amd64_syscall+0x25a/frame 0xfe03dd149bf0
 Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfe03dd149bf0
 --- syscall (59, FreeBSD ELF64, sys_execve), rip = 0x80158af1a, rsp = 
 0x7fffac38, rbp = 0x7fffad40 ---
 
 
 I’ve only come across one other report here (without result unfortunate):
 https://lists.freebsd.org/pipermail/freebsd-current/2014-June/050827.html 
 https://lists.freebsd.org/pipermail/freebsd-current/2014-June/050827.html
 

I looked around for the conclusion of that thread but could not find it.
I was reproducing so often I'm sure this case was fixed. I may have
privately contacted one of the VM maintainers to fix it. However lacking
evidence I think it just stopped happening for me and I never reported
anything useful.

 Are other people aware of this issue or working on this?
 
 I can provide access to a VM with a kernel dump and the kernel build for 
 extra information if needed.
 

What we really need is a full core dump (minidump) and backtrace. This
will let us inspect the pmap state.

https://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug.html
https://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-gdb.html


-- 
Regards,
Bryan Drewery



signature.asc
Description: OpenPGP digital signature


Re: panic: pmap active 0xfffff8001b7154b8

2015-05-07 Thread Bryan Drewery
On 5/7/2015 10:06 AM, Bryan Drewery wrote:
 On 5/7/2015 7:08 AM, Johan Schuijt-Li wrote:
 Hi,

 We’ve been seeing (seemingly) random reboots on 10.1-RELEASE virtual 
 machines (KVM virtualisation) on our production servers. In an attempt to 
 determine what was causing this we’ve switched to running a kernel with 
 INVARIANTS enabled. This resulted for us in the following panic:

 Unread portion of the kernel message buffer:
 panic: pmap active 0xf8001b7154b8
 cpuid = 3
 KDB: stack backtrace:
 db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 
 0xfe03dd1493a0
 kdb_backtrace() at kdb_backtrace+0x39/frame 0xfe03dd149450
 vpanic() at vpanic+0x126/frame 0xfe03dd149490
 kassert_panic() at kassert_panic+0x139/frame 0xfe03dd149500
 pmap_remove_pages() at pmap_remove_pages+0x8c/frame 0xfe03dd1495f0
 exec_new_vmspace() at exec_new_vmspace+0x16a/frame 0xfe03dd149650
 exec_elf64_imgact() at exec_elf64_imgact+0x658/frame 0xfe03dd149720
 kern_execve() at kern_execve+0x5e4/frame 0xfe03dd149a80
 sys_execve() at sys_execve+0x37/frame 0xfe03dd149ae0
 amd64_syscall() at amd64_syscall+0x25a/frame 0xfe03dd149bf0
 Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfe03dd149bf0
 --- syscall (59, FreeBSD ELF64, sys_execve), rip = 0x80158af1a, rsp = 
 0x7fffac38, rbp = 0x7fffad40 ---


 I’ve only come across one other report here (without result unfortunate):
 https://lists.freebsd.org/pipermail/freebsd-current/2014-June/050827.html 
 https://lists.freebsd.org/pipermail/freebsd-current/2014-June/050827.html

 
 I looked around for the conclusion of that thread but could not find it.

Found it. https://svnweb.freebsd.org/base?view=revisionrevision=271000

This fix is in 10.1-RELEASE, so yours must be a little different.

-- 
Regards,
Bryan Drewery



signature.asc
Description: OpenPGP digital signature


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Matthew Seaman
On 05/07/15 14:32, Steven Hartland wrote:
 
 
 On 07/05/2015 14:29, Ronald Klop wrote:
 On Thu, 07 May 2015 15:23:58 +0200, Steven Hartland
 kill...@multiplay.co.uk wrote:



 On 07/05/2015 14:10, Slawa Olhovchenkov wrote:
 On Thu, May 07, 2015 at 02:05:11PM +0100, Steven Hartland wrote:


 On 07/05/2015 13:51, Slawa Olhovchenkov wrote:
 On Thu, May 07, 2015 at 01:46:40PM +0100, Steven Hartland wrote:

 Yes in theory new requests should go to the other vdev, but
 there could
 be some dependency issues preventing that such as a syncing TXG.
 Currenly this pool must not have write activity (from application).
 What about go to the other (mirror) device in the same vdev?
 Same dependency?
 Yes, if there's an outstanding TXG, then I believe all IO will
 stall.
 Where this TXG released? When all devices in all vdevs report
 'completed'? When at the least one device in all vdevs report
 'completed'? When at the least one device in at least one vdev report
 'completed'?
 When all devices have report completed or failed.
 Thanks for explained.

 Hence if you pull the disk things should continue as normal, with the
 failed device being marked as such.
 I am have trouble to phisical access.
 May be someone can be suggest software method to forced detach device
 from system.
 In 11 that should be possible with devctl, but under 10 I'm not aware
 of anything that wouldn't involve some custom kernel level code I'm
 afraid.



 Maybe I'm talking BS here, but does 'camcontrol eject' do something on
 a disk?
 I wouldn't have thought so, I would expect that to only have an effect
 on removal media such as CDROM drives, but no harm in trying ;-)

zpool offline -t zroot da19

Cheers,

Matthew





signature.asc
Description: OpenPGP digital signature


Re: panic: pmap active 0xfffff8001b7154b8

2015-05-07 Thread Johan Schuijt-Li
 
 What we really need is a full core dump (minidump) and backtrace. This
 will let us inspect the pmap state.
 
 https://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug.html 
 https://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug.html
 https://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-gdb.html 
 https://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-gdb.html

Sorry if my words were a bit unclear, but this is what I have. If you could 
e-mail me a preferred username with public key I can give you access to this.

- Johan
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Slawa Olhovchenkov
On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:

  How I can cancel this 24 requst?
  Why this requests don't timeout (3 hours already)?
  How I can forced detach this disk? (I am lready try `camcontrol reset`, 
  `camconrol rescan`).
  Why ZFS (or geom) don't timeout on request and don't rerouted to da18?
 
  If they are in mirrors, in theory you can just pull the disk, isci will
  report to cam and cam will report to ZFS which should all recover.
  Yes, zmirror with da18.
  I am surprise that ZFS don't use da18. All zpool fully stuck.
 A single low level request can only be handled by one device, if that 
 device returns an error then ZFS will use the other device, but not until.

Why next requests don't routed to da18?
Current request stuck on da19 (unlikely, but understund), but why
stuck all pool?



___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 11:46, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 11:38:46AM +0100, Steven Hartland wrote:


How I can cancel this 24 requst?
Why this requests don't timeout (3 hours already)?
How I can forced detach this disk? (I am lready try `camcontrol reset`, 
`camconrol rescan`).
Why ZFS (or geom) don't timeout on request and don't rerouted to da18?


If they are in mirrors, in theory you can just pull the disk, isci will
report to cam and cam will report to ZFS which should all recover.

Yes, zmirror with da18.
I am surprise that ZFS don't use da18. All zpool fully stuck.

A single low level request can only be handled by one device, if that
device returns an error then ZFS will use the other device, but not until.

Why next requests don't routed to da18?
Current request stuck on da19 (unlikely, but understund), but why
stuck all pool?


Its still waiting for the request from the failed device to complete. As 
far as ZFS currently knows there is nothing wrong with the device as its 
had no failures.


You didn't say which FreeBSD version you where running?

Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org


Re: zfs, cam sticking on failed disk

2015-05-07 Thread Steven Hartland



On 07/05/2015 10:50, Slawa Olhovchenkov wrote:

On Thu, May 07, 2015 at 09:41:43AM +0100, Steven Hartland wrote:


On 07/05/2015 09:07, Slawa Olhovchenkov wrote:

I have zpool of 12 vdev (zmirrors).
One disk in one vdev out of service and stop serving reuquest:

dT: 1.036s  w: 1.000s
   L(q)  ops/sr/s   kBps   ms/rw/s   kBps   ms/w   %busy Name
  0  0  0  00.0  0  00.00.0| ada0
  0  0  0  00.0  0  00.00.0| ada1
  1  0  0  00.0  0  00.00.0| ada2
  0  0  0  00.0  0  00.00.0| ada3
  0  0  0  00.0  0  00.00.0| da0
  0  0  0  00.0  0  00.00.0| da1
  0  0  0  00.0  0  00.00.0| da2
  0  0  0  00.0  0  00.00.0| da3
  0  0  0  00.0  0  00.00.0| da4
  0  0  0  00.0  0  00.00.0| da5
  0  0  0  00.0  0  00.00.0| da6
  0  0  0  00.0  0  00.00.0| da7
  0  0  0  00.0  0  00.00.0| da8
  0  0  0  00.0  0  00.00.0| da9
  0  0  0  00.0  0  00.00.0| da10
  0  0  0  00.0  0  00.00.0| da11
  0  0  0  00.0  0  00.00.0| da12
  0  0  0  00.0  0  00.00.0| da13
  0  0  0  00.0  0  00.00.0| da14
  0  0  0  00.0  0  00.00.0| da15
  0  0  0  00.0  0  00.00.0| da16
  0  0  0  00.0  0  00.00.0| da17
  0  0  0  00.0  0  00.00.0| da18
 24  0  0  00.0  0  00.00.0| da19

  0  0  0  00.0  0  00.00.0| da20
  0  0  0  00.0  0  00.00.0| da21
  0  0  0  00.0  0  00.00.0| da22
  0  0  0  00.0  0  00.00.0| da23
  0  0  0  00.0  0  00.00.0| da24
  0  0  0  00.0  0  00.00.0| da25
  0  0  0  00.0  0  00.00.0| da26
  0  0  0  00.0  0  00.00.0| da27

As result zfs operation on this pool stoped too.
`zpool list -v` don't worked.
`zpool detach tank da19` don't worked.
Application worked with this pool sticking in `zfs` wchan and don't killed.

# camcontrol tags da19 -v
(pass19:isci0:0:3:0): dev_openings  7
(pass19:isci0:0:3:0): dev_active25
(pass19:isci0:0:3:0): allocated 25
(pass19:isci0:0:3:0): queued0
(pass19:isci0:0:3:0): held  0
(pass19:isci0:0:3:0): mintags   2
(pass19:isci0:0:3:0): maxtags   255

How I can cancel this 24 requst?
Why this requests don't timeout (3 hours already)?
How I can forced detach this disk? (I am lready try `camcontrol reset`, 
`camconrol rescan`).
Why ZFS (or geom) don't timeout on request and don't rerouted to da18?


If they are in mirrors, in theory you can just pull the disk, isci will
report to cam and cam will report to ZFS which should all recover.

Yes, zmirror with da18.
I am surprise that ZFS don't use da18. All zpool fully stuck.
A single low level request can only be handled by one device, if that 
device returns an error then ZFS will use the other device, but not until.



With regards to not timing out this could be a default issue, but having

I am understand, no universal acceptable timeout for all cases: good
disk, good saturated disk, tape, tape library, failed disk, etc.
In my case -- failed disk. This model already failed (other specimen)
with same symptoms).

May be exist some tricks for cancel/aborting all request in queue and
removing disk from system?

Unlikely tbh, pulling the disk however should.



a very quick look that's not obvious in the code as
isci_io_request_construct etc do indeed set a timeout when
CAM_TIME_INFINITY hasn't been requested.

The sysctl hw.isci.debug_level may be able to provide more information,
but be aware this can be spammy.

I am already have this situation, what command interesting after
setting hw.isci.debug_level?
I'm afraid I'm not familiar isci I'm afraid possibly someone else who is 
can chime in.


Regards
Steve
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org