[RELEASE] ScyllaDB 2026.2.2

The ScyllaDB team is pleased to announce the release of ScyllaDB 2026.2.2, a production-ready patch release for ScyllaDB 2026.2 ScyllaDB Short Term Support (STS) Minor Feature Release.

More information on ScyllaDB Version Support Policy is available here.

Related Links

Bug Fixes

The following issues are fixed in this release:

Alternator

  • Alternator’s ListTables operation now correctly excludes internal Paxos tables (_$paxos suffixed tables) from its output in tablet-backed clusters. These tables were previously visible to clients, returning unexpected table names that could confuse applications relying on the table listing.
    scylladb#30473

Materialized Views (MV)

  • The view building worker now reads the list of flushed SSTables before issuing the flush, rather than after. Previously, an SSTable flushed during the staging process could be missed if the list was read after the flush completed, leading to view building inconsistencies.
    scylladb#30738

Performance

  • The evictable reader’s buffer-fill stop condition now correctly detects partition boundaries when checking whether the new buffer has made progress relative to the previous one. Previously, clustering positions from different partitions could be compared, causing the buffer fill to read multiple entire partitions into memory until finding one with a sufficiently advanced position. This could result in excessive memory consumption and degraded read performance on multishard workloads.
    scylladb#30672

Raft

  • Raft server shutdown fiber errors are no longer reported as background failures. During node shutdown, the Raft IO fiber can encounter expected errors (such as gate_closed_exception) as the node’s internal services stop. These are now properly recognized as shutdown-related and suppressed from the background error log, reducing spurious error noise during planned shutdowns.
    scylladb#30499

Reliability

  • ScyllaDB now rejects attempts to remove the last node of a datacenter or rack in a cluster with tablet-replicated keyspaces. Proceeding with such an operation would leave tablets with no valid replica placement, potentially resulting in data unavailability. The topology coordinator returns a clear error instead of allowing the operation to proceed.
    scylladb#30387

Repair

  • Repair operations in clusters with a high number of tablets (512+) no longer stall indefinitely when the accumulated tablet migration state exceeds the Raft command size limit. The topology coordinator now batches tablet mutations per table when building repair tablet requests, keeping each Raft command within the configured size limit. Previously, a command_is_too_big_error would cause the coordinator to retry the same oversized command in a tight loop, permanently stalling all topology operations until manual intervention.
    scylladb#30661

  • Repair and compaction now correctly serialize tablet split bypass with concurrent incremental repair. A race between a tablet split compaction completion and a concurrent incremental repair could cause the split compaction to attempt adding an SSTable that had already been unlinked by the repair, leading to a node abort. The fix ensures the tablet split compaction waits for concurrent repair to complete before proceeding.
    scylladb#30607

Security

  • The node_exporter bundled in the ScyllaDB 2026.2 container is updated to version 1.12.0, built from source with an updated Go toolchain.
    scylladb#30541

Stability

  • A memory corruption issue in the bytes_ostream move constructor is now corrected. The move constructor failed to update the first chunk’s backref pointer to reflect the new owner’s location. After a move, the stale backref could be written through if the source was reused, causing heap corruption. This fix aligns bytes_ostream with the existing correct behavior in managed_bytes.
    scylladb#30448

  • A node restart that could occur during streaming on certain platforms under specific conditions is now prevented. A null pointer dereference in the streaming scheduling group during node shutdown, triggered when a streaming session callback was invoked after its associated object had been destroyed, is now properly handled.
    scylladb#30491

Storage

  • Native restore from GCS (Google Cloud Storage) no longer fails with malformed_sstable_exception (checksummed reader hit premature end-of-file). The ranged_source IO wrapper now correctly handles the case where an underlying skip() call returns an empty buffer, properly detecting end-of-file rather than misreporting a truncated read. A related issue where ranged_source could return more bytes than permitted after a skip is also resolved.
    scylladb#30575

  • The SSTable index writer no longer produces excessively large index pages for very large SSTables. When an SSTable index entry grew beyond logalloc’s contiguous allocation limit, the writer would fail with an allocation error during repair and compaction. Index pages are now bounded to a safe size, preventing this condition.
    scylladb#30632

  • The compression dictionary stored in sstables::compression::options is now discarded after deduplication when an SSTable is sealed for reading. Previously, the pre-deduplication dictionary copy was retained in memory for the lifetime of the SSTable object, increasing per-SSTable memory consumption and contributing to memory pressure in clusters with a large number of SSTables using dictionary compression.
    scylladb#30713

Vector Search

  • A node restart during ANN (Approximate Nearest Neighbor) queries in the Vector Search feature is now prevented. A null pointer dereference in vector_indexed_table_select_statement::query_base_table, caused by post-filtering being incorrectly applied during certain query execution paths, is now resolved by disabling post-filtering in ANN queries where it is not applicable.
    scylladb#30491