]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: handle spurious read errors 24647/head
authorPaul Emmerich <paul.emmerich@croit.io>
Thu, 26 Jul 2018 19:24:38 +0000 (21:24 +0200)
committerSage Weil <sage@redhat.com>
Wed, 17 Oct 2018 22:26:12 +0000 (17:26 -0500)
commit34a910413c291e3d83af92f563285213e4e347d2
tree97601866f60a2963ed6bef7f1334d66a36ecf4bd
parent4c77b8ee009388401a33046c1eb2987d02d0a85b
os/bluestore: handle spurious read errors

Some kernels (4.9+) sometime fail to return data when reading
from a block device under memory pressure. This patch retries
the read if the checksum verification fails, tests show that
the first retried read succeeds in ~99.5% of the cases, so
3 attempts are made by default before giving up on the data.

Works-around: http://tracker.ceph.com/issues/22464
Signed-off-by: Paul Emmerich <paul.emmerich@croit.io>
(cherry picked from commit cffcbc73aaaa874829d5fc9091af3042b887f9a7)

- conflict due to adjacent tests in store_test
- g_conf, not g_conf()
src/common/legacy_config_opts.h
src/common/options.cc
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h
src/test/objectstore/store_test.cc