What's new

4.2.113 (42073) - 2021/04/23

Server

  • [Indexes] fixed issue where index replacement, therefore index update, could cause index to become paused
  • [Indexes] fixed possible deadlock in indexing that could occur when 'Indexing.MaxNumberOfConcurrentlyRunningIndexes' is used
  • [TCP] gently closing TCP TestConnection and TCP Ping to avoid moving into CLOSE_WAIT state
  • [.NET Core] updated to 3.1.14

4.2.112 (42069) - 2021/04/13

Server

  • [Backup] Fixed the restore of tombstones from a backup
  • [Cluster] Added endpoint to remove entry from Raft log
  • [Configuration] Added Indexing.MaxNumberOfConcurrentlyRunningIndexes configuration option (default: null - no limit)
  • [Configuration] Increased dafault value for Indexing.Encrypted.TransactionSizeLimitInMb configuration option depending on the amount of available memory:
    • <= 1GB of RAM or running in 32bits - 96MB
    • <= 4GB of RAM - 128MB
    • <= 16GB of RAM - 256MB
    • <= 64GB of RAM - 512MB
    • > 64GB of RAM - 1024MB
  • [Indexing] Fixed the behavior of recreating indexing writer upon every commit
  • [Indexing] Fixed handling for ERROR_COMMITMENT_LIMIT to treat is as OutOfMemory
  • [Indexing] Reduce amount of IO needed to deal with temporary files
  • [Indexing] Added ability to limit number of concurrently running indexes to reduce the memory and IO usage (Indexing.MaxNumberOfConcurrentlyRunningIndexes)
  • [Indexing] Fixed invalid memory allocation in Lucene
  • [Querying] Better exception on invalid JS Date
  • [Querying] Ensured that query execution is stopped if a HTTP request is aborted
  • [SNMP] Exposed number of disabled, encrypted and current node databases
  • [SQL ETL] Added handling for conversion of GUID to UUID when loading records to PostgreSQL
  • [Tombstones] Added endpoints allowing to force cleanup of tombstones and check the cleanup state
  • [Voron] Fixed unhandled case in page splitting of compressed pages. This applies to map-reduce indexes and could result in "Encountered empty page which isn't a root" error.
  • [Voron] Ensured that we report an alert if an error happened during the flush of data and we recreate the backgroud task.
  • [Voron] Fixed unreleased allocations in scratch buffers which made that scratch files were never cleaned up.
  • [.NET Core] Updated to 3.1.13

Client

  • [Changes API] Fixed detection for database creation/deletion while already suscribed
  • [Session] Consider the index referenced collections on WaitForIndexesAfterSaveChanges
  • [Conventions] Added WaitForIndexesAfterSaveChangesTimeout, WaitForReplicationAfterSaveChangesTimeout and WaitForNonStaleResultsTimeout conventions (default: 15 seconds)

Embedded

  • Added support for wildcards (x) in the ServerOptions.FrameworkVersion

Studio

  • [Querying] Added id() field to the list of index terms

4.2.111 (42067) - 2021/03/01

Server

  • [Backups] fixed issue with deleting multiple blobs on Azure when retention policy is executed
  • [Backups] fixed issue with executing retention policy on Azure when remote folder name is empty
  • [Backups] fixed the ability to test credentials on server-wide backups
  • [Cluster] fixed issue with excessive topology updates from the Client API
  • [Cluster] do not move loading idle database to rehab
  • [Debug] fixed issue with retrieving thread names in Threads View for some of the threads
  • [Encryption] fixed 'unable to decrypt page' error
  • [Encryption] fixed recovery process on encrypted storage which could cause data corruption
  • [Graph API] do not return duplicate edges for Graph Visualizer
  • [Indexes] memory optimizations in Lucene
  • [Indexes] fixed race condition between removing or replacing an index and starting or stopping all of the indexes
  • [Indexes] changing additional sources should affect index etag which is used to calculate query results caching etag
  • [Indexes] expected exceptions should not generate an index error
  • [Indexes] decreased the cost of retrieving the data from index stats endpoint
  • [Monitoring] exposed SWAP usage on Windows in SNMP
  • [Monitoring] added managed memory, unmanaged memory, encryption buffers memory in use and encryption buffers memory in pool to SNMP
  • [Replication] fixed NRE that could happen if there are 2 tombstones with identical ID but different collection
  • [Replication] fixed NRE that could happen if we are deleting the database
  • [Revisions] fixed issue with creating a revision when only Resolved flag was present in deleted document
  • [Revisions] properly set flags during putting deleted revision from a cluster transaction
  • [.NET Core] updated to 3.1.12

Client API

  • [Querying] wrap next binary expression after negation in sub clauses
  • [Subscriptions] fixed ObjectDisposedException that could occur when disposing subscription worker multiple times
  • [Subscriptions] fixed JavaScript translation for Id property and Load, allow to use member init
  • [Subscriptions] do not redirect to node with failures

4.2.110 (42066) - 2021/02/01

Server

  • [Encryption] Fixing the recovery process on storage startup which could cause overwrite of valid data and result in "Unable to decrypt page" error
  • [Indexing] Fixing internals in Lucene to prevent from killing the server by an unhandled exception

4.2.109 (42065) - 2021/01/25

Server

  • [Alerts] Using standard deviation for Low swap size warning
  • [Backups] Fixing ocasionally happening problem that backups were not triggered
  • [Backups] Fixing error handling for backups to S3
  • [Backups] Added Backup.TempPath configuration option
  • [Cluster] Prevent concurrent bootstrap
  • [Cluster] Cluster observer will move node to rehab upon large gap from the other nodes
  • [Cluster] Fixing missing revisions from cluster transactions
  • [Cluster] Limiting cluster log truncation by time
  • [Cluster] Promote from rehab with indexes that were explicitly disabled
  • [Cluster] Stay in rehab with index error
  • [Debug] Adding /admin/stats end point to Debug Package
  • [Docker] Updating docker base image
  • [ETL] Fixing IndexOutOfRangeException while iterating the ETL processes what could result in process crash
  • [Indexing] Fixing partitioning in Bloom Filters
  • [Indexing] Fixing JS map-reduce indexes when grouping by nested object
  • [Indexing] Adding support for complex reduce keys in JS map-reduce indexes
  • [Indexing] Fixing the index replacement behavior if any error happened meanwhile
  • [Indexing] Improving memory management in Lucene to reduce GC cost
  • [Indexing] Fixing CreateField returning a single result when passing the same field name
  • [Indexing] Increasing default value of Indexing.Encrypted.TransactionSizeLimitInMb configuration option to 96 MB
  • [Linux] Fixing SWAP detection on HDD over SSD in Posix systems when NVMe SSD drives are available
  • [Querying] Fixing metadata projection returning LastModified in incorrect format
  • [Replication] Avoiding the update of sibling etag on new connections
  • [Replication] Fixing the issue with change vector is not updated after replication
  • [Replication] Fixing issue that resolving document conflict in Studio removed the attachment
  • [Replication] Fixing issue with missing attachment breaking the replication
  • [Replication] Fixing duplicate attachments problem in conflicted documents
  • [Replication] Checking conflict status for attachment and deleted attachment which caused infinite loop
  • [Replication/Smuggler]Adding unused database Ids to import/export for preventing "conflict" in import destination cluster replication
  • [Revisions] Fixing issue that deleting a document with Resolved flag created a revision
  • [Revisions] Fixing unhandled cases of conflicts in revisions
  • [Subscriptions] Fixing the subscription behavior on SubscriptionDoesNotBelongToNodeException
  • [Subscriptions] Fixing calculation of redirect node in case of failover
  • [Voron] Fixing the validation of overflow pages during the storage recovery process on startup
  • [Voron] Fixing possible AccessViolationException in when deleting entries from fixed size trees
  • [Voron] Fixing NRE on attempt to get temp page from DecompressionBuffersPool
  • [Voron] Deleting large journals instead of adding them to recycle pool to speed up the startup time
  • [Voron] Adding cleanup of Temp directory on storage startup
  • [Voron] Fixing seeking to a record when using startAfter parameter
  • [.NET Core] Updated to .NET Core 3.1.11
  • Improved error handling in timer threads

Client API

  • [Changes API] Fixing changes API interal operation so it should use the same node as the operation
  • [Changes API] Marking Changes API connection state as faulted if failed to initialize
  • [Operations] Fixing WaitForCompletion throwing InvalidOperationException for RevertRevisionsOperation
  • [Querying] Adding option to project the last modified date from queries
  • [Querying] Fixing calculation the hash of complex objects when querying that caused query hangs
  • [Querying] Support TimeSpan in projections
  • Fixing backward compatibility of the health check endpoint
  • Fixing issue when using lazy query + aggressive caching returned Index does not exists exception
  • Better exception for actions that require database but none was specified via parameter or there is no default one
  • Properly detecting changes in HasChanged when we have deletes

Studio

  • Server-wide backup view fix text alignment
  • Adding navigation when clicking the backup alert
  • Fixing hight CPU usage on the dashboard
  • Auto-reconnect to web socket in Admin Logs & Traffic Watch
  • When node is passive and license is not activated, stating so explicitly on the License View