[RELEASE] ScyllaDB 2025.2.3

The ScyllaDB team announces ScyllaDB 2025.2.3, a bug-fix production-ready patch release for ScyllaDB 2025.2 Feature Release.

Note there is a new Short Term Support (STS) Feature release 2025.3. You are welcome to upgrade to it for the latest and greatest features.

Related Links

The following issues are fixed in this release:

Stability

  • service/qos: Modularize service level controller to avoid invalid access to a stopped auth::service #24792
  • Alternator: character 0x255 in base64 causes out-of-bounds read #25701
  • Commitlog: segment_manager::discard_unused_segments - separate the modification of the vector (_segments) from actual releasing of objects #25709
  • gossiper - race condition in gossip::apply_state_locally when receiving messages containing removed endpoints that no longer have a valid host id #25702, #25621
  • gossiper can reply with an empty self host id in `gossip_get_endpoint_states_response` during startup #25831
  • Tablets Repair: A node may crash If a node has many shards and many tablets on each shard #23632
  • Drop table during tablet cleanup initiated by a tablet migration may crash #25706

Optimization

  • Improved handling of in-progress requests during node shutdown, ensuring requests are allowed to complete successfully. #24481
  • Removed a large allocation when loading SSTables #3335
  • seastar_memory - Removed an oversized allocation changing token_range_vector to use chunked_vector #24156, #24115
  • storage_service::maybe_reconnect_to_preferred_ip() calls the gossiper::get_host_id() unnecessarily and can be passed directly as a parameter #25715

Tracing and logging

  • Reduced log severity in dirty_memory_manager::flush_one – The severity level of logs has been lowered for seastar::named_gate_closed_exception, as this flush failure is expected when the corresponding compaction group has already been stopped #25037
  • db/hints: Improve logs #25466
  • Drop table during tablet cleanup initiated by a tablet migration may crash #25706
  • Debug logs: deletion_time formatter prints wrong results #25556
  • db/commitlog: Extend error messages for corrupted data #25460
  • streaming: Enclose potential throws in try block and ensure sink close before logging #25902, #25497
  • Fixed SSTable streaming logs during tablet migration to correctly show the list of files sent, preventing confusion from previously empty file lists. #25830

Performance

  • Alternator is now more careful to avoid large contiguous allocations during query/scan operations, as these can cause stalls. #23535
  • Improve performance of worst case scenario in auth::passwords::detail::hash_with_salt #24524
  • storage_service: on_change: frequent system.peers reloads with many peers may cause high CPU usage #25660
  • system_keyspace::drop_truncation_rp_records can cause unbound parallelism #25682

API and tooling

  • Using scylla sstable, the tool may crash in case of disengaged row #25325
  • Warn users about using RF!=Racks with Tablets Keyspaces #23330
  • storage_service/get_natural_endpoints has no way to pass a key containing a colon character #24829

Monitoring

  • S3 Client: Memory Usage Metric – providing visibility into backup and restore memory consumption #25864