mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-08 16:03:20 +00:00
shared_promise::get_shared_future() is marked noexcept, but can allocate memory. It is invoked by sstable partition index cache inside an allocating section, which means that allocations can throw bad_alloc even though there is memory to reclaim, so under normal conditions. Fix by allocating the shared_promise in a stable memory, in the standard allocator via lw_shared_ptr<>, so that it can be accessed outside allocating section. Fixes #9666 Tests: - build/dev/test/boost/sstable_partition_index_cache_test Message-Id: <20211122165100.1606854-1-tgrabiec@scylladb.com>