Whamcloud - gitweb
LU-12328 flr: avoid reading unhealthy mirror 52/34952/14
authorBobi Jam <bobijam@whamcloud.com>
Fri, 24 May 2019 17:40:25 +0000 (01:40 +0800)
committerOleg Drokin <green@whamcloud.com>
Fri, 18 Oct 2019 01:06:47 +0000 (01:06 +0000)
commit39da3c06275e04e2a6e7f055cb27ee9dff1ea576
tree844f5c34ebfdc71f98486d77dcf0eff9712b19d9
parent594c79f2f855737fa415562a9bbb3fb13aee9ec9
LU-12328 flr: avoid reading unhealthy mirror

* Fix an error in lov_io_mirror_init() which would wait unnecessarily
  if we're retrying the last mirror of the file.

* In osc_io_iter_init() we'd check its OSC import status so that the
  read path can quickly switch another mirror.
  sanity-flr test_33b is added to test this case.

* And with all mirrors have been tried, we'd turn off the quick switch
  so that when all mirrors contain bad OSTs, the read will still try
  its best to get partial data from a component before trying another
  mirror.
  sanity-flr test_33c is added to test this case.

Test-Parameters: envdefinitions=ONLY="33" testlist=sanity-flr,sanity-flr,sanity-flr,sanity-flr,sanity-flr,sanity-flr,sanity-flr,sanity-flr,sanity-flr,sanity-flr
Fixes: 5a6ceb664f07 ("LU-7236 ptlrpc: idle connections can disconnect")
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I5621a834e58ee1bfccf6c407d2c68357b5c3eb3b
Reviewed-on: https://review.whamcloud.com/34952
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Wang Shilong <wshilong@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/cl_object.h
lustre/lov/lov_io.c
lustre/osc/osc_io.c
lustre/tests/sanity-flr.sh