mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-20 00:20:47 +00:00
Introduce `sstables::parse_assert()`, to replace `SCYLLA_ASSERT()` on the read/parse path. SSTables can get corrupt for various reasons, some outside of the database's control. A bad SSTable should not bring down the database, the parsing should simply be aborted, with as much information printed as possible for the investigation of the nature of the corruption. The newly introduced `parse_assert()` uses `on_internal_error()` under the hood, which prints a backtrace and optionally allows for aborting when on the error, to generate a coredump. Fixes https://github.com/scylladb/scylladb/issues/20845 We just hit another case of `SCYLLA_ASSERT()` triggering due to corrupt sstables bringing down nodes in the field, should be backported to all releases, so we don't hit this in the future - (cherry picked from commit27e26ed93f) - (cherry picked from commitbce89c0f5e) Parent PR: #24534 Closes scylladb/scylladb#24686 * github.com:scylladb/scylladb: sstables: replace SCYLLA_ASSERT() with parse_assert() on the read path sstables/exceptions: introduce parse_assert()