[RELEASE] ScyllaDB 2026.1.2

The ScyllaDB team is pleased to announce the release of ScyllaDB 2026.1.2, a production-ready patch release for ScyllaDB 2026.1 Long Term Support (LTS) Release.

More information on ScyllaDB Version Support Policy is available here.

Related Links

Bug Fixes

The following issues are fixed in this release.

Alternator

  • Observability of Alternator batch operations has been improved by adding per-table batch read/write histograms. The update introduces per-table batch latency metrics along with supporting test coverage, giving more granular visibility into batch behavior and making it easier to monitor performance and diagnose issues.
    scylladb#28721, scylladb#29067

Azure KMS

  • Nodes could fail to obtain Azure KMS keys due to DNS timeouts following a soft reboot (e.g., during nemesis testing). This was addressed by removing the Before=swap.target dependency from the scylla_swap_setup unit. This improves system reliability on Azure, particularly during node restarts or reboots.
    scylladb#26519, scylladb#29339

Compaction

  • When the main compaction group for a table was disabled, new split compaction groups would still be created, overriding configuration intent. A fix prevents the creation of new split compaction groups if the main compaction group is disabled. This ensures that compaction configuration settings are fully respected.
    scylladb#29478

CQL

  • Null values were not handled correctly in CQL data value formatting. This has been addressed by refining the null handling logic during formatting. This improves CQL behavior and avoids errors when querying or displaying data that contains nulls.
    scylladb#29384

  • The cqlsh command-line tool has been updated to v6.0.34-scylla. This brings in the latest features and bug fixes from the upstream cqlsh project.
    scylladb#29450

Diagnostics & Logging

  • Aborting a tablet split when a node stops resulted in excessive log messages at an unnecessarily high log level. This log noise has been reduced by demoting the log level for split failure events during node shutdown. This allows administrators to focus on genuinely critical log entries, improving diagnostics.
    scylladb#24850, scylladb#29115

  • When a tablet merge exception occurred, the exception message lacked a proper formatter for the group_id argument. A formatter for the group_id argument has been added to the tablet merge exception message. This improves debugging by providing necessary context in error messages.
    scylladb#29412

Maintenance

  • Maintenance tasks could return a failure status even if a table was successfully dropped during the operation. The tasks service now correctly returns a successful status if the underlying table was dropped. This provides accurate feedback to maintenance tools about the task outcome.
    scylladb#28965

Materialized Views

  • A race condition in view_building_worker could occur when creating staging SStable tasks, likely leading to data inconsistency in Materialized Views. The fix implements locking of the staging SStables mutex across all necessary shards when creating tasks. This prevents data inconsistency and ensures reliable Materialized View updates.
    scylladb#29394

Networking & Performance

  • Handling big responses or operating over a slow network connection could lead to inaccurate memory accounting in the transport layer. The transport layer memory accounting has been improved for large responses and slow networks. This helps prevent memory spikes and ensures more stable resource usage, particularly under stress.
    scylladb#29410

Raft & Topology

  • An issue in merge_topology_snapshot incorrectly caused split mutations to freeze during topology changes and Raft operations. This has been fixed within the Raft module to correctly handle and prevent the freezing of split mutations. This ensures that topology operations are not stalled and complete reliably.
    scylladb#29051, scylladb#29214

  • Stale snapshot transfers were not being aborted when the Raft term changed. The Raft logic now correctly aborts these stale snapshot transfers whenever a term change is detected. This prevents unnecessary resource usage and improves the overall consistency and robustness of the Raft group state.
    scylladb#29264

Reliability

  • An issue existed in partition_snapshot_row_cursor where a reversed maybe_refresh() call could result in losing the latest version entry during snapshot processing. This is fixed by correcting the order of operations in maybe_refresh() to ensure the latest version entry is always captured. The benefit is guaranteed data consistency and accuracy when performing snapshot-based reads.
    scylladb#29480

Security

  • A potential authorization issue related to BATCH prepared cache behavior could allow incorrect access control decisions in certain cases. This has been addressed by fixing the underlying cache handling logic. Authorization checks are now consistently enforced for all prepared statements, including those used in BATCH operations.
    scylladb#29479

  • A double-free memory error in LDAP message polling within poll_results() could lead to node instability or crashes during LDAP authentication attempts. This issue has been resolved by correcting the memory management logic to prevent the double-free of the LDAPMessage object. This improves the reliability and stability of LDAP integration. scylladb#29393

  • The {USER} substitution in the LDAP URL template was not properly sanitized, which could lead to unexpected behavior or security concerns in certain configurations. This has been addressed by sanitizing the substituted user value in LDAP URL handling. This improves the security and robustness of configurations that rely on dynamic user information in LDAP URLs.
    scylladb#29495

  • A deadlock could occur in encrypted_data_source::get() when retrieving encrypted data. The deadlock has been resolved by fixing the underlying issue in the encrypted data retrieval logic. This improves the stability of encryption at rest features.
    scylladb#29198

Service Levels

  • When the legacy service level table was empty, the v2 migration process did not correctly mark itself as complete. This has been addressed by updating the service levels logic to correctly mark the v2 migration as complete in this case. This simplifies the migration path for service levels and ensures consistent behavior.
    scylladb#29333

Storage

  • The S3 credential refresh timer could be incorrectly rearmed, or the expiration timestamp mis-set, when credential refresh attempts failed. This has been addressed by ensuring the timer is not rearmed if credentials cannot be refreshed. This prevents incorrect expiration handling and reduces the risk of service disruption due to credential issues. scylladb#29056, scylladb#29158

  • The object storage lister’s internal loop over entries could produce incorrect listing behavior. This has been addressed by correcting the logic used to iterate over entries in the lister. This ensures reliable iteration and consistent management of objects in external storage.
    scylladb#29058, scylladb#29145

  • A use-after-move error in object_storage::upload_files could leave dangling objects in object storage. The fix prevents this by ensuring that dangling objects are not left behind when iterating over moved-from object names. This is crucial for maintaining data hygiene and preventing unexpected data loss or buildup in object storage.
    scylladb#29060, scylladb#29159

Streaming

  • During blob streaming operations, the reference count for the table might not be correctly maintained, potentially leading to errors. The streaming logic now ensures that the table object is held for the duration of the blob streaming. This prevents potential crashes or errors that could occur if the table metadata was prematurely released during a stream. scylladb#29524

Tablets

  • If a tablet rebuild operation was rolled back, any missing replicas were not properly added back into the topology. The service now adds missing replicas if a tablet rebuild was rolled back. This maintains the correct replication factor and prevents data unavailability following a rollback scenario.
    scylladb#29494

Vector Search

  • The Vector Store client did not return the underlying HTTP error description, which made diagnosing connection issues more difficult. This has been addressed by enabling the client to return the full HTTP error details to the caller. This improves diagnostics and simplifies troubleshooting of Vector Search service communication issues.
    scylladb#29312

  • A race condition could be triggered in Vector Search when a connection timeout occurred. This race condition has been fixed in the Vector Search implementation. This improves the stability of Vector Search queries, especially under heavy load or variable network conditions.
    scylladb#29157

  • Vector search queries did not correctly apply non-primary key restrictions when forwarding requests to the Vector Store service. This has been addressed by ensuring these restrictions are properly forwarded. This enables the full range of filtering functionality for vector search queries.
    scylladb#29437

  • Vector index queries could return incorrect results when filtering by a target column. This has been addressed by fixing the index logic to correctly handle such filters. This ensures accurate search results when using filters on vector indexes.
    scylladb#29540

  • SELECT queries on local vector indexes did not function as expected. This has been addressed by fixing the implementation of SELECT for local vector indexes. This enables correct retrieval and inspection of data within local vector indexes.
    scylladb#29383

1 Like