[Cluster] Fixed possible race that upon cluster tx failover it could have waited for the task after it was already completed
[Cluster] Fixed an issue that WaitForIndexNotification wasn't waiting until the command was done
[Databases] Fixed an issue with a database getting occasionally stuck in due to The database 'xxx' has been unloaded and locked by IdleOperations
[Debug] Increased timeout for getting Debug Package
[ETL] Fixed an issue of respecting cancellation during the load phase of Elasticsearch, Kafka and RabbitMQ ETLs
[ETL] Upgraded Npgsql driver from v5 to v8
[Expiration/Refresh] Fixed an issue with unreleased buffers on compressed databases
[Expiration/Refresh] Added a transaction size limit in the Expiration and Refresh commands
[Import/Export] Decrypting and Encrypting streams should not use synchronous IO in async methods
[Indexing] Include the index names that are stale after getting a timeout on WaitForIndexesAfterSaveChanges() in the error message
[Licensing] Fixed an issue with license signature verification on some Linux distributions
[Logging] Fixed a bug when downloading logs from the Studio returns empty zip
[Logging] Fixed a potential deadlock in the logging
[Logging] Unified audit log lines
[Replication] Fixed NRE in /databases/*/debug/replication/all-items endpoint
[Subscriptions] On update subscription populate PinToMentorNode from existing state if needed
[Time Series] Optimized Time Series retention
[Voron] Fixed a bug in clustering code which could result in runnnig and committing two write transactions concurrently. This could result in InvalidJournalException after the restart.
[.NET] Updated to .NET 8.0.5
Client
[Certificates] Throwing meaningful exception when HttpClientHandler does not support certificates
[Querying] Fixed an issue with missing parentheses when combining Where and Search clauses
[Changes API] Don't allow automatic fail over in Changes API when tracking node-specific operations
[Changes API] Fixed an issue with cache wasn't invalidated after Changes API reconnection
[HTTP] Flushing request stream to send the headers in all customized HttpContent implementations
Studio
[Cluster Dashboard] Added the Lucene Unmanaged Allocations to the memory widget
[Indexes] Showing referenced collections
[Traffic Watch] Fixed an issue that it couldn't view a MultiGet request
5.4.119 (54129) - 2024/05/16
Server
[Certificates] Adjusted client certificate trust logic to ensure compatibility with shorter intermediate certificates
5.4.118 (54125) - 2024/04/29
Server
[Backup] Fixed an issue that restoring from incremental backup with atomic guard, a tombstone could be handled before creating the document
[Cluster Transactions] Improved performance of cluster-wide transactions
[Cluster Transactions] Fixed the restore of a database with cluster transactions
[Cluster] Improved performance of updating database values by using separate semaphores for database record changes and value changes
[Debug] Added method to delete document by Etag
[Expiration & Refresh] Added an option to specify max number of items to process in a single run
[Indexing] Fixed unhandled cases in Index Merger. Added better error handling.
[Monitoring] Exposed alerts and notifications via /databases/*/notifications endpoint
[Querying] Fixed translation of DateTime.MaxValue to JS date when building RQL with JS projection
[Querying] Fixed count, distinct, and paging for very specific cases of collection queries
[Querying] Fixed the detection of index staleness which could result in returning stale results in specific scenarios
[Replication] Added authorization check for the legacy replication for indexes
[.NET] Updated to .NET 7.0.18
Client
[Bulk Insert] Fixed a possible NRE in the heartbeat timer
[Cluster Transactions] Removed a legacy check if Cluster Transactions are supported
[Indexing] Exposed referenced collection in index statistics
Fixed inconsistent exceptions between sync and async API
Studio
Added ignore MaxStepsForScript option on the Patching view
[Cluster] Fixed the failover mechanism for cluster transactions
[Cluster] Using SemaphoreSlim instead of a blocking Monitor.TryEnter as the cluster lock to prevent potential ThreadPool starvation
[Cluster] Fixed an edge case of NRE in ClusterStateMachine when adding a database
[ETL] Stopping an ETL tasks in an async fashion to avoid holding the cluster lock
[Indexing] Fixed incorrect staleness status due to unprocessed document tombstones after the replication
[Indexing] Fixed handling of field names extraction for boosted fields in JavaScript index definition
[Licensing] Making sure the license verification check will be executed when running as Windows Service
[Revisions] Fixing an issue that Enforce revisions configuration was skipping on docs when passing multiple collections
[Subscriptions] Fixed an issue with missing metadata on subscriptions with revisions enabled
[Subscriptions] Foxed a task connection status when getting subscription ongoing task by name
[ThreadPool] Doubling the minimum workers of ThreadPool in the default configuration
[Voron] Fixed occasional failures in loading the storage report
[.NET] Updated to .NET 7.0.17
Studio
Fixed wrong count of dedicated threads on Threads Runtime Info tab
Filtering out expired certificates by default
5.4.116 (54109) - 2024/02/12
Server
[Backup] Cluster observer will decide which node should perform the backup
[Certificates] Avoid triggering the replacement of the server certificate when the new one that comes from the CertificateRenewExec is the same as the one that is currently used
[Cluster] Improved performance of cluster operations
[Cluster] Avoided materialization of the database record in HandleClusterDatabaseChanged()
[Configuration] System store will take into account Storage.Temp configuration option for temporary directory
[Debug] Fixed an issue with downloading a memory dump file generated by /admin/debug/dump endpoint
[ETL] Replaced deprecated MySql.Data.MySqlClient package by MySqlConnector
[ETL] Fixed an issue with not preserving the casing of Time Series names
[Import] Fixed an issue that after the import we could end up with two attachments with identical names on one document
[Logging] Added ability to persist configuration of the server logs and the traffic watch logging
[Querying] Support for nullable numeric parameters of in clause
[Revisions] Fixed concurrent usage of the context in the revisions storage
[Setup] Fixes in rvn tool for the initial setup operations
Fixed issue that a database ID couldn't be added to unused database IDs
[.NET] updated to .NET 7.0.15
Client
Fixed an issue that WhatChanged() did not return old value for RemovedField on Dictionary
Fixed finalization of RequestExecutor instances
Throw meaningful exception when trying to use default HiLoIdGenerator while a custom AsyncDocumentIdGenerator convention was set
Studio
[Security] Introduced TOTP support for browser generated requests