What's new

5.1.8 (51027) - 2021/05/26

Server

  • [Backups] fixed issue with executing Backup Retention policies on Azure
  • [Backups] allow to restore a document when collection was changed in the same incremental backup
  • [Backups] fixed possible memory leak during import when a lot of compare exchange values are being imported
  • [Backups] fixed issue with editing server-wide backup tasks that could cause those tasks to hang
  • [Databases] before deleting a database a database path intersection is checked with other databases
  • [Debug] fixed issue with capturing stacktraces for entire cluster
  • [Debug] fixed start date of a cloned transaction in /admin/debug/txinfo endpoint
  • [Databases] fixed NRE that could happen if database was created with Client Configuration set
  • [Indexes] release temporary files on low memory to reduce the memory pressure further
  • [Indexes] fixed a race between creating a new auto index and deleting the superseded one
  • [Indexes] fixed usage of concurrent indexes semaphore to avoid NRE
  • [Indexes] fixed issue with using ThenBy and ThenByDescending in indexes
  • [Indexes] fixed issue with using Enumerable.Range in indexes
  • [Indexes] added support for FindIndex and FindLastIndex methods in indexes
  • [Indexes] when updating NuGet package in index to a newer version no longer restart of server is required
  • [Indexes] support for native DLLs from NuGet
  • [Indexes] fixed null string concatenation behavior in indexing - now it matched C# one
  • [Querying] fixed possibility of sending an invalid JSON when returning facet results
  • [Querying] fixed possibility of NRE when projecting same document multiple times during streaming
  • [Querying] decreased memory usage when executing Distinct queries
  • [Replication] fixed memory allocation when handling tombstones as a conflicts resolutions
  • [Replication] fixed NRE on refresh of document that was added in cluster transaction
  • [Voron] making sure that we will not remove currently used scratch buffer file from the list of active scratches during transaction rollback
  • [Voron] making the acquirement and usage of a pager state more robust to avoid accessing already disposed pager which could result in AVE
  • [Voron] preventing a racy access and dispose of a scratch file between the storage cleanup and creation of a new transaction
  • [Voron] fixing the case that after the import of a database we didn't flush all journals if there was no activity on a database what resulted in large number of scratch files
  • [Voron] using a correct pager state when prefetching segments
  • [.NET] updated to .NET 5.0.6

Client API

  • [Events] added OnSessionDisposing event
  • [Events] fixed issue with OnBeforeQuery event not being invoked when streaming
  • [JSON] internal enumerable converters need to take into account that a custom converter could have been supplied by the user
  • [Session] fixed caching when Lazy is used
  • [Session] properly incrementing number of requests when attachments and revisions are used
  • [Session] added load revisions lazily implementation
  • [Session] added AddOrPatch and AddOrIncrement methods
  • [Subscriptions] fixed possibility of context leak when processing subscriptions and error has occurred
  • [Smuggler] fixed possibility to context leaking during Import
  • [Querying] added support for aggregation queries when raw query is used

Studio

  • [Indexes] expose index wait time on performance graph when max number of concurrent indexes is set
  • [Indexes] fixed issue with indexes getting unselected when progress is being updated
  • [Indexes] fixed issue with displaying tooltips on performance graph
  • [IO Stats] fixed issue with importing I/O stats from the debug package
  • [Refresh] fixed issue with updating the refresh frequency
  • [Traffic Watch] display also seconds in request time
  • [Traffic Watch] added TCP connections

5.1.7 (51024) - 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

5.1.6 (51023) - 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
  • [Configuration] Added Http.AllowSynchronousIO configuration option (default: false)
  • [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
  • [Indexing] Added cluster-wide disable index
  • [Indexing] Reduced logging lever of errors related to using Nuget DLLs in indexes
  • [Indexing] Normalize new line characters when comparing additional sources
  • [Fixed] Fixed the issue that we skip documents without checking if we need to check for CanContinueBatch which resulted in OutOfMemory error
  • [Querying] Better exception on invalid JS Date
  • [Querying] Ensured that query execution is stopped if a HTTP request is aborted
  • [Querying] Streaming on index that does not exist should throw proper exception instead of NRE
  • [Querying] Fixed NRE when using a search query with Boost on term containing only quotes
  • [SNMP] Exposed number of disabled, encrypted and current node databases
  • [SNMP] Exposed GC memory info
  • [Server] Disabling Kestrel's AllowSynchronousIO and making the handling of requests fully async. Added Http.AllowSynchronousIO to allow user to control it explicitly.
  • [SQL ETL] Added handling for conversion of GUID to UUID when loading records to PostgreSQL
  • [Time Series] Fixed append of an entry with DateTime.MinValue
  • [Time Series] Avoid throwing an exception when timeseries name isn't a string
  • [Time Series] Added support for quering time series with quoted name
  • [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 5.0.5

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)
  • [Performance] Optimized TryGetServerVersion
  • Fixed NRE in CachingJsonConverter
  • Added Lazy version of ConditionalLoad
  • IAsyncDocumentSession.StreamAsync method forcedly cast IAsyncDocumentQuery<T> to concreate AsyncDocumentQuery<T> class implementation

Embedded

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

Studio

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

5.1.5 (51018) - 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
  • [Certificates] set DisableCertificateDownloads to true when building a certificate chain
  • [Cluster] fixed issue with excessive topology updates from the Client API
  • [Cluster] do not move loading idle database to rehab
  • [Compression] fixed issue with compressed flag not being added when number of overflow pages is exactly the same after compression
  • [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
  • [Indexes] fixed issue with disposing cached field items immediately - some of the readers could be already in use
  • [Indexes] when document collection does not match the specified collection in LoadDocument then null should be returned
  • [Indexes] index definition comparison should be newline-insensitive
  • [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
  • [Patching] fixed issue with delete script not deleting all of the documents in some cases
  • [Patching] fixed memory leak when patching a large collection on a compressed database
  • [Querying] fixed possible NRE when projecting with streaming full documents
  • [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
  • [Replication] properly clone replication items to avoid using memory not owned by the replication process which could result in AccessViolationException
  • [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
  • [Subscriptions] fixed NRE in subscriptions when including counters that do not exist in the document
  • [.NET] updated to 5.0.3

Client API

  • [Operations] added 'GetRevisionsOperation'
  • [Querying] wrap next binary expression after negation in sub clauses
  • [Session] fixed issue with lazily load documents not using aggressive cache properly
  • [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

Studio

  • [Backup] added 'Content-Type' header so browsers like Firefox can then recognize file name properly of exported database
  • [Databases] do not show document and index counts on databases that do not belong to the current node (remote)
  • [Indexes] fixed issue with Indexing performance view not loading correctly when cmpxchg are used in index

5.1.4 (51016) - 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
  • [Encryption] Fixing potential segmentation fault error on Linux on attempt to encrypt empty page that effectively was not in use
  • [Indexing] Fixing internals in Lucene to prevent from killing the server by an unhandled exception