Files
scylladb/sstables
Ernest Zaslavsky 54571ffacb sstables: fix load_metadata to check S3 for scylla metadata component
sstable_stream_sink_impl::load_metadata() used file_exists() on a
local filesystem path to check whether the Scylla metadata component
exists. For S3-backed storage this always returns false because the
file lives on object storage, not locally.

This means that when streaming encrypted SSTables, each component
gets a fresh encryption key (because the previous key from scylla
metadata is never loaded). Only the last key survives in the metadata
on S3, so all other components become unreadable — decryption with the
wrong key produces garbage, leading to parse failures or OOM crashes
on sst->load().

Replace file_exists() with _sst->_storage->exists() which correctly
checks for the component on whatever backend the SSTable uses (local
filesystem or object storage).

Fixes https://scylladb.atlassian.net/browse/SCYLLADB-1704
2026-06-02 12:26:44 +03:00
..
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00
2026-04-12 19:46:33 +03:00