]>
git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
ec: validate memallocs in ErasureCodeIsaDefault::prepare()
When testing FastEC in crimson, segfault have been seen during
initialization of the EC plugin based on ISA-L:
```
Got SIGSEGV on shard 0
Backtrace:
0# 0x00007F8A34E3FC30 in /lib64/libc.so.6
1# ErasureCodeIsaDefault::prepare() in /usr/lib64/ceph/erasure-code/libec_isa.so
2# ErasureCodeIsa::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<s
td::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11:
:basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::ostream*) in /usr/lib64/ceph/erasure-code/libec_isa.so
3# ErasureCodePluginIsa::factory(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char
> \>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std
::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::shared_ptr<ceph::ErasureCodeIn
terface>*, std::ostream*) in /usr/lib64/ceph/erasure-code/libec_isa.so
```
This commit asserts on the invariant that cache tables, after
initialization, must be available.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>