]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
ec: validate memallocs in ErasureCodeIsaDefault::prepare() 68131/head
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 31 Mar 2026 13:04:33 +0000 (13:04 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 7 Apr 2026 09:43:58 +0000 (09:43 +0000)
commitabfacf696b19aaab7458a0fdb4ca3d7f6285888b
treeb4768d638ab46c65b3fe5b9534cc90fa54908d32
parentd9a6755599d72cbc2f576e3b9c14579d3ab132f1
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>
src/erasure-code/isa/ErasureCodeIsa.cc