[Audit] added audit log to the database configuration changes
[Backup] fixed issue with backup not waking up immediately the database when 'UpdateResponsibleNodeForTasksCommand' command is executed
[Backup] properly restoring Refresh, Integrations and RevisionsForConflicts configuration during the restore process
[Backup] fixed issue with backup restore cancellation not working
[Backup] import properly checks for license restrictions
[Backup] fixed backup timer calculations
[Cluster] fixed issue with not all databases waking up when server starts to calculate heal and backup status due to concurrent database load timeout
[Cluster] redirecting to leader PutDatabaseCommand
[Cluster] added more grace time before moving node into rehab for nodes that are lagging behind to avoid constant topology changes
[Cluster] fixed potential issue of Heartbeat spam when CPU credits are low on CPU bounded instances like T3 family in AWS
[Cluster] stabilized the behavior of cluster
[Cluster Transaction] fixed possible race with creation of document with atomic guard and not getting concurrency exception
[Debug] added the ability to log internal .NET events to the log
[Indexes] more strict parsing of TimeSpan to avoid false positives when strings containing timespans are passed to the index
[JSON] fixed possible JSON corruption due to reading native memory and HttpClient handling serialization tasks in some cases in the background without waiting for them to complete when HTTP/2 is used
[Http] fixed possible ArgumentException when HTTP/2 is used and we are establishing a connection
[Monitoring] fixed number of threads returned via SNMP for Windows instances
[Notifications] introduced max queue size for the notifications that are sent to the Studio
[Querying] fixed issue with parameters not being added to high latency query alerts
[Replication] fixed leak of SINK tags in Hub/Sink Replication when Sink Task is defined
[Replication] fixed issue with SINK tags not being restored as TRXN when getting the document back from the replication
[Replication] fixed issue with Pull Replication not connecting properly when 2+ Sinks have the same database name
[Revisions] fixed issue with making revisions orphaned after executing revert revision without configuration
[Subscriptions] fixed issue with not taking into account if subscription is disabled or not when updating the subscription
[Subscriptions] fixed memory leak in Subscription when revisions are being processed and we do a lot of skip operations
[Threads] implemented cleanup mechanism for built-in PoolOfThreads to avoid having a lot of threads in the pool that hold the memory
[.NET] updated to .NET 8.0.8
Client API
[Indexes] fixed issue with IndexCreation.CreateIndexes ignoring SearchEngineType property
[JSON] fixed possible JSON corruption due to reading native memory and HttpClient handling serialization tasks in some cases in the background without waiting for them to complete when HTTP/2 is used
[Subscriptions] properly registering missing Ids in subscription session
[NuGet] added ContinuousIntegrationBuild=true to the CI when package is being built
TestDriver
[Licensing] added configuration options in TestServerOptions to pass license and license related properties in a more easy manner with the ability to throw if no license is provided or license is invalid
5.4.201 (54136) - 2024/07/23
Server
[Backup] Fixed an issue with the backup running on UTC instead of server's local time
[Backup/Import/Export] Handling the export and import of time series deleted ranges
[Backup/Import/Export] Fixed an potential race condition issue with applying commands during import / export
[Compression] Fixed a potential issue with stats of a collection when compression was turned on/off during large import
[Containers] Set HTTPs scheme in Docker automatically if cert options were passed
[Containers] Publishing Docker multi-arch images
[ETL] Replaced deprecated System.Data.SqlClient dependency with Microsoft.Data.SqlClient (existing connection strings will default to Encrypt=Optional option which is mandatory since version 5.0 of Microsoft.Data.SqlClient to ensure backward compatibility)
[Indexing] Improved memory usage of loaded documents that are compressed
[Indexing] Fixed the hash of query results after resetting an index
[JS Admin] Added ability to use internal operation contexts to execute some emergency operations
[Logging] Audit log improvements
[Monitoring] Added ability to monitor number of ongoing tasks via SNMP
[Monitoring] Exposed Monitor.LockContentionCount via SNMP
[Setup] Fixed regression issue with RavenDB deb package dependencies
[Setup] Added Ubuntu Deb Packages distribution for Ubuntu 24.04 and dropped distribution for Ubuntu 18.04
[Patching] Fixed and issue with patching a document metadata
[Replication] Fixed issue that WaitForReplicationAfterSaveChanges() didn't account itself to calculate majority
[Server] Added -i | --info switch to Raven.Server
[Subscriptions] Throwing less SubscriptionDoesNotBelongToNodeException on unstable cluster
[.NET] Updated to .NET 8.0.7
Studio
Added navigation buttons to Revisions Compare view
[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