The ScyllaDB team is pleased to announce the release of ScyllaDB 2025.3.2, a production-ready path release for ScyllaDB 2025.3 Feature Release.
Related Links
The following issues are fixed in this release:
Stability
- Alternator: expression parsing memory leak in specific situations. 25878
- 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_responseduring startup #25831 - load_balancer: std::out_of_bounds when decommissioning with empty nodes #26203
Enhancements & Correctness
- Compaction: reorder operations in compaction_manager::stop to ensure that all compaction executors are stopped and prevent assertion failures. #25806
- The batchlog mechanism will now drop batches for a table that was itself dropped #24806
- Hints are now sent to pending replicas such as tablet migration targets or new nodes #19835
- Repair: always set node ops progress to 100% on completion to prevent lingering incomplete status after errors. #26193
- PRUNE MATERIALIZED VIEW statement can miss some ghost rows #25655
- raft topology: consider only group 0 members in voter handler #26321
- Fixed scrub failures caused by concurrent compactions deleting SSTables before checksum verification. #23363
- service/qos: use long timeout for auth queries during service-level cache reload. #25290
- Replica: fixed race between table drop and merge completion that could cause false compaction checks. The fix makes truncate ignore stopped groups during compaction verification, preventing failures when merge and drop overlap. #25551
- s3: Fix chunked download source metrics calculations. #25875
- s3_client: fix condition to prevent infinite wait during close. #26025
- Changed ignore_nodes from IPs to host IDs to streamline removenode operations. #26249
Optimization
- Gossiper operations are now enforced to run in the gossip scheduling group, even if invoked from other components #25907
- The table used for the Raft log now has caching disabled #26027
Tablets
- When tablets are split, a compaction process is initiated to break apart SSTables that span the new tablet boundary. This compaction is now prepared for a tablet merge to happen before the split compaction is complete. #24153
Alternator
- Alternator: fixed handling of UpdateItem with a combination of legacy AttributeUpdates and ReturnValues=ALL_OLD. #25894
Performance
- Improve performance of worst case scenario in auth::passwords::detail::hash_with_salt #24524, #13136
- The tablet load balancer now runs in the maintenance/streaming scheduling group, rather than the gossip group. This reduces impact on node failure detection and Raft which also run in the gossip group #26037
Tools & API
- Fixed CDC permission checks so users with Select rights on the base table can now query CDC tables #19798
Monitoring
- There are now metrics for S3 prefetches #25876
- S3 Client, used by native backup: Memory Usage Metric – providing visibility into backup and restore memory consumption #25865, #25862
Log and trace
- 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
- Fixed SSTable streaming logs during tablet migration to correctly show the list of files sent, preventing confusion from previously empty file lists. #25830
- Streaming: Enclose potential throws in try block and ensure sink close before logging #25497