Couchbase .NET SDK Release Notes and Archives
Release notes, installation instructions, and download archive for the Couchbase .NET Client.
The Couchbase .NET SDK is compatible with .NET Standard 2.0 and .NET Standard 2.1, which means that it is compatible with .NET Framework 4.6.2+, .NET 5.0, .NET 6.0, and .NET Core 3.1. The .NET Standard documentation and .NET Standard version chart may be useful to help understand other available options.
We strongly recommend using the latest version of .NET that is officially supported by Microsoft. Other .NET implementations might work but are not tested and are outside of the scope for technical support.
These pages cover the 3.x versions of the Couchbase .NET SDK. For release notes, download links, and installation methods for 2.7 and earlier releases of the Couchbase .NET Client, please see the 2.x .NET Release Notes & Download Archive.
Installation
Quick Installation Using NuGet
For every release, we currently package the binaries and store the latest version in NuGet. If you are not familiar with NuGet, it’s the official and most widely supported package manager for Microsoft Visual Studio and .NET in general.
NuGet from Visual Studio
Using Visual Studio 2013 or later, follow these steps to get started with the Couchbase .NET SDK:
-
From the IDE, right-click the project you want to add the dependency to.
-
In the context menu, click Manage NuGet Packages. The NuGet package manager modal dialog opens.
-
From the Tree View menu on the left, select Online > nuget.org.
-
In the search box at the top right-hand side of the dialog, type CouchbaseNetClient and then press enter on your keyboard.
-
In the search results, select the CouchbaseNetClient package and then click Install.
NuGet from the Package Manager Console
From the Package Manager Console within your project:
-
From the Visual Studio menu bar, click Tools.
-
Select NuGet Package Manager > Package Manager Console.
-
In the console, enter the package installation command:
-
To install the latest version:
-
Install-Package CouchbaseNetClient
-
To install a specific version, include the version parameter. For example:
Install-Package CouchbaseNetClient -Version 3.1.3
Downloading and referencing the binaries
If you do not want to use NuGet to include the Couchbase .NET SDK in your project, you can download and reference the binaries directly. If you chose this route, you’ll also be responsible for including and resolving dependencies used internally by the SDK.
To download and reference the binaries directly:
-
Download the version of the SDK you want to install.
-
In Visual Studio, right-click the project you want to include the SDK in and then click Add.
-
Click Reference to open the Reference Manager.
-
On the left side, click Browse and select the binaries you downloaded.
-
Click OK.
After you have referenced the Couchbase .NET SDK binaries, you need to locate and reference the dependencies it uses in a similar fashion. At the time of this writing, the dependencies are:
-
Apache Common Infrastructure Libraries for .NET v3.3.1: https://www.nuget.org/packages/Common.Logging/3.3.1
-
Json.NET v9.0.1: https://www.nuget.org/packages/Newtonsoft.Json/9.0.1
Other versions might not be compatible with the current SDK version.
Building from source
If none of the other installation options suffice or if you want to debug the source or perhaps contribute, building directly from the source is the best option for you. All source is located on GitHub.
The software provided via NuGet and S3 are the official releases that have been through a rigorous testing process. Code on GitHub that is not tagged as an official release is still in development. |
To build the .NET SDK from source:
-
(Optional) Fork the GitHub repository: https://github.com/couchbase/couchbase-net-client/fork
-
Using a Git console, enter the command to clone the repository:
git clone https://github.com/couchbase/couchbase-net-client.git
-
Enter the command to retrieve the latest code from GitHub:
git pull origin master
-
Navigate to the directory that the source was cloned to and open the solution.
-
Build the solution.
After you have successfully built the source, it’s then just a matter of referencing the binaries (.DLL files) from your consuming project. Note that you can checkout a specific tag for each release as well.
Version 3.2.9 (4 April 2022)
Version 3.2.9 is the ninth release of the 3.2 series.
Special Note
-
During a rebalance upgrade from 6.x (or any earlier version) to 7x, in mixed mode (where you are communicating with Couchbase Server whilst some but not all nodes are upgraded), there is a known issue where data may be written to the wrong location. The solution is to either upgrade to 3.2.9, or to quiesce application processing so there are no writes until you have upgraded all nodes. If you encounter a similar situation during migration and need help with mitigation, please contact our support team.
-
Between bug fixes and performance improvements, the
ChannelConnectionPool
will be made the default in a future release. Give it a try now withClusterOptions.Experiments.ChannelConnectionPools = true;
Fixed Issues
-
NCBC-3174: Out of Retries misclassified as Operation Timed Out
-
NCBC-3176: ExponentialBackoff only ever increases globally
-
NCBC-2994: Trace listener leaks spans when an exception is thrown
-
NCBC-3076: NullReferenceException when tracing span has no parent
-
NCBC-3111: PingReport output should not include last_activity_us
-
NCBC-3122: Duplicate view exception types for DesignDocumentNotFound
-
NCBC-3127: Search query ConsistentWith uses bucket name instead of index name for scan vector key
-
NCBC-3149: Synchronize bucket creation to avoid Object Disposed Exceptions
-
NCBC-3160: Wrong host was used for lookup
-
NCBC-3163: Bucket name escaping in QueryIndexManager.GetAllIndexesAsync
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-3172: .NET SDK fails to connect to correct node in custom port (cluster_run) multi-node setup
New Features and Behavioral Changes
-
NCBC-3099: Clean up uses of ToString() on primitives to be sure we use InvariantCulture.
-
NCBC-3125: Use System.Text.Json for bucket management
-
NCBC-3133: Use System.Text.Json to serialize OperationResult and OperationResult<T>.ToString()
-
NCBC-3150: Improve error messages in views and FTS
-
NCBC-3168: Add exception to debug log in CircuitBreaker
Version 3.2.8 (2 March 2022)
Version 3.2.8 is the eighth release of the 3.2 series.
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021. |
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
New Features and Behavioral Changes
-
NCBC-3103: Integrate Transactions into couchbase-net-client repo
-
NCBC-3105: Build and package Couchbase.Transactions with CouchbaseNetClient
-
NCBC-2176: 3.0 API Migration guide
-
NCBC-2711: Build DocFx site in Jenkins during release pipeline.
-
NCBC-3112: Update integration tests to work with System.Text.Json
-
NCBC-3012: Review GitHub protocol security and replace git://
-
NCBC-3017: Expose key/value metrics for instrumentation and observability
-
NCBC-3060: Reduce heap allocations for ClusterNode.SendAsync
-
NCBC-3081: Reuse CancellationTokenSources which have not timed out
-
NCBC-3113: Update DataStructures to be compatible with System.Text.Json
-
NCBC-3120: Use System.Text.Json to serialize QueryOptions
Version 3.2.7 (1 February 2022)
Version 3.2.7 is the seventh release of the 3.2 series.
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021. |
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-3085: Fixed potential issue with
Random.Next
returning only zero, by usingRandomNumberGenerator.GetInt32
if available. -
NCBC-3086: Improved error handling in QueryIndexManager.
-
NCBC-3090: Fixed TaskCancellationException in EventingFunctionManager.
-
NCBC-3092: Resolve DNS for each connection rather than node bootstrap.
-
NCBC-3095: Modified to shutdown the Bootstrapper loop on Dispose, avoiding an indefinite loop.
-
NCBC-3096: Cleaned up
CancellationTokenSource
handling in ConfigHandler. -
NCBC-3100: Included
LastDispatchedFrom
andLastDispatchedTo
inIErrorContext
implementations. -
NCBC-3102: Fixed a bug where the
RemoteHost
tag was assigned the value of LocalHost when an Orphaned report is generated. -
NCBC-3107: Escape keyspace values with backticks only if missing, fixing an error where
IQueryIndexManager
didn’t accept some bucket names. -
NCBC-3109: Fixed issue with Quota Limited Exceptions not being thrown for some Management apis.
New Features and Behavioral Changes
-
NCBC-2964: Added
QueryOptions.PreserveExpiry
-
NCBC-2973: Enhanced Index Management API with ability to manage indexes for a collection or scope.
-
NCBC-3035: Improved performance of EnumExtensions method calls.
-
NCBC-3036: Added tracing spans for improved Observability of compression/decompression performance.
-
NCBC-3059: Reduced heap allocations surrounding OperationCancellationRegistration.
-
NCBC-3063: Replaced Stopwatch in AsyncState with a lightweight approach.
-
NCBC-3089: Added clone method to QueryOptions to avoid reuse and potential threading issues.
-
NCBC-3097: Reduced risk of odd behaviors during connection pool scale down with use of
TaskCreationOptions.RunContinuationsAsynchronously
.
Version 3.2.6 (12 January 2022)
Version 3.2.6 is the sixth release of the 3.2 series.
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021. |
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2647:
CreatePrimaryIndexAsync
throws exceptions / ignoresIgnoreIfExists
. -
NCBC-2829: NoOp operations can fail with an
ObjectDisposedException
on MultiplexingConnection. -
NCBC-2977: When you cannot connect to a bucket you may recieve a Memcached bucket error.
-
NCBC-2980: Threshold Logging report is missing server duration(s).
-
NCBC-2981: Threshold Logging report is missing timeout.
-
NCBC-2999: Subdocument Operation
LookupInAsync
must throwPathNotFoundException
. -
NCBC-3008:
RequestTooBigException
should beValueTooLargeException
. -
NCBC-3047: Tracing is not stopped when the cluster is disposed.
-
NCBC-3050: Exception iterating over a DataStructures dictionary.
-
NCBC-3057: Incorrect and inefficient db.couchbase.service span tags.
-
NCBC-3061: PersistentDictionary should use a replace operation when setting
Item: key
. -
NCBC-3062: Don’t set
MaxIdleTime
onServicePoint
in .NET Core 3.1. -
NCBC-3072:
CollectionManager.GetAllScopesAsync
throws on success. -
NCBC-3073: PersistentDictionary. TryGetValue does not properly map path not found error.
New Features and Behavioral Changes
-
NCBC-3029: Create basic implementation of
SystemTextJsonSerializer
. -
NCBC-3066: Develop Key/Value API tests.
-
NCBC-3069: Add project with basic tests.
-
NCBC-3001: log message formatting opCode and endpoint parameters are swapped.
-
NCBC-3037: Add additional unit testing to Rate Limiting code.
-
NCBC-3056: Ignore null reference exception in global config resolution is server version is earlier than 6.5.
-
NCBC-2692: Management APIs should provide detailed responses to errors (ban
EnsureStatusCode
). -
NCBC-2937: Support for .NET 6.0.
-
NCBC-2946: Bucket Management API — Add Custom Conflict Resolution to the enumeration for Conflict Resolution Type.
-
NCBC-2947: ARM — Support for Apple Silicon.
-
NCBC-2950: Extend FTS options to set IncludeLocations and Operator.
-
NCBC-2956: Support for AWS AWS Graviton2.
-
NCBC-2971: Bucket Management API — Add Storage Option.
-
NCBC-3003: InternalServerFailureException.
-
NCBC-3033: Remove finalizer from OperationBase.
-
NCBC-3046: Reduce tracing related heap allocations.
-
NCBC-3049: Sporadic logging failures in unit tests.
-
NCBC-3053: Add lambda to options in
Cluster.ConnectAsync
overload. -
NCBC-3064: Construct Activity objects using parent
ActivityContext
. -
NCBC-3070: Add API documentation to source files in Sub-Doc API.
-
NCBC-3080: Use C# LangVersion 10.
Version 3.2.5 (10 December 2021)
Version 3.2.5 is the fifth release of the 3.2 series.
.NET Core 2.1 support has been dropped from the SDK, as of 3.2.5. This corresponds to Microsoft’s decision to EOL .NET Core 2.1 on August 21, 2021. |
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2851: Fixed TimeoutExceptions after rebound in Failover/Eject tests.
-
NCBC-2983: Allowed query timeouts to exceed 100ms.
-
NCBC-2991: Fixed compatibility with DI NET 6.0 - added support for named bucket/collection DI.
-
NCBC-2993: Rewrote CancellationTokenPair to dispose the linked CancellationTokenSource during GC, avoiding memory leaks.
-
NCBC-2995: Fixed slow memory leak in OrphanReporter.
-
NCBC-3005: Fixed GetCidByName failure with "Not connected to any bucket", by ensuring the operation is routed to KV node.
-
NCBC-3007: Improved logging around connection pool scale down, for deeper inspection of DataFlowConnectionPool behavior.
-
NCBC-3009: Addressed sync-over-async deadlocks.
-
NCBC-3013: Keep connections alive after send is canceled. This fixes issue where canceling K/V operations while waiting on network send killed the connection.
-
NCBC-3018: Fix background worker edge case where error "Comparing the same configs is not allowed" was hit.
-
NCBC-3021: Fixed regression with legacy Memcached buckets.
-
NCBC-3045: Fixed Fix WaitUntilReadyAsync for FTS.
New Features and Behavioral Changes.
-
NCBC-3041; NCBC-2996; NCBC-3031: Work on updating .NET targets. Removed unneeded .netstandard2.0 target from DI project. Made code changes to prepare for .NET 6. Added .NET 5 Target.
-
NCBC-2948: Added special error handling for rate and quota limits.
-
NCBC-2600: Set default query HTTP Idle timeout to 4.5s, to avoid premature IOException when connecting with default values.
-
NCBC-3004: Added log warning when socket disconnects from cluster
-
NCBC-3019: Enabled SSL cipher configuration.
-
NCBC-3020: Added support for custom deserializers for GET projections.
-
NCBC-3022: Improved lock contention getting collection CIDs.
-
NCBC-3023: Enabled nullable annotations to serializer/transcoder.
-
NCBC-3025: Cleaned up project files and NuGet dependencies.
-
NCBC-3034: Reduced blocking in async methods in data structures, resulting in more efficient thread utilization.
-
NCBC-3044: Fixes to problematic OpenTelemetry tracing registration. A consumer may now register with an OpenTelemetry provider which is being managed outside the SDK.
Version 3.2.4 (2 November 2021)
Version 3.2.4 is the fourth release of the 3.2 series.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.
Fixed Issues
-
NCBC-2974: When
GetCid
failed, an infinite loop could be triggered, causing theCidLock
to time out. The regression that caused this in the previous release has now been fixed. -
NCBC-2989: Fixed side effects related to singleton
CouchbaseHttpClient
. Now each consuming service can safely manipulate the `HttpClient’s timeout and connection ID headers and such without affecting other services.
New Features and Behavioral Changes.
-
NCBC-2979: Added support for Error Map v2.
-
NCBC-2987: Updated NuGet package info.
-
NCBC-2477: Replaced
HttpClientHandler
withSocketsHttpHandler
. -
NCBC-2859: Completed Field Level Encryption implementation, adding RSA support for legacy upgrade scenarios.
-
NCBC-2865: Added new
revEpoch
field, allowing server to provide higher level guidance for current, correct bucket configuration. -
NCBC-2992: Renamed
BucketBase.BucketConfig
toBucketBase.CurrentConfig
for clarity. RenamedBucketConfigExtensions.IsNewer()
toBucketConfigExtensions.IsNewerThan()
.
Version 3.2.3 (6 October 2021)
Version 3.2.3 is the third release of the 3.2 series.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.
Fixed Issues
-
NCBC-2965: Don’t capture ExecutionContext for long-running tasks/timers, as this could cause memory leaks.
-
NCBC-2966: Allow ILoggerFactory from the DI container to be overridden.
-
NCBC-2967: Rewrite OrphanReporter to avoid blocking calls.
-
NCBC-2968: Use correct service type name in query context.
-
NCBC-2969: Fix auto-repair of the ChannelConnectionPool after a node outage.
New Features and Behavioral Changes.
-
NCBC-2949: Improve client side error message when TLS is enforced on the server side
-
NCBC-2961: Optimize performance of the internal EscapeIfRequired routine.
-
NCBC-2963: Support Dependency Injection of Named Scopes/Collections.
-
NCBC-2970: Optimize performance of queuing operation completion by more than 50% by using
UnsafeQueueUserWorkItem
. -
NCBC-2962: Add Lambda overloads for Query and Analytics at the Scope level.
Version 3.2.2 (15 September 2021)
This is a re-release of 3.2.1 with exactly the same commits due to a packaging bug in 3.2.1. The only difference is the version and package fix.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Version 3.2.1 (9 September 2021) DO NOT USE - USE 3.2.2 INSTEAD
Version 3.2.1 is the second release of the 3.2 series.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.
New Features and Behavioral Changes.
-
NCBC-2697: The Eventing Service can now be managed from the SDK. Users can create, delete, publish, pause, and select Eventing Functions.
-
NCBC-2959: By default SDK3 sends the IP as the target host during TLS/SSL authentication — unlike SDK2 which sends either the hostname or IP address, depending on the returned server configuration. A new flag,
ForceIpAsTargetHost
, has been introduced to allow SDK3 to mimic SDK2 behavior.
Version 3.2.0 (26 July 2021)
Version 3.2.0 is the first release of the 3.2 series, featuring collections and scopes
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.
Fixed Issues
-
NCBC-2660: After a failure that causes the circuit breaker to open, such as full send queue, new operation will immediately fail with CircuitBreakerException. The retry orchestrator now retries in this situation, preventing silent failure.
-
NCBC-2730: Expose Partition Information in Query Management API.
-
NCBC-2841: Construct
query_context
in Analytics queries correctly, fixing a bug with datasets that required escaping with backticks. -
NCBC-2853: After a
not_my_vbucket
exception during a rebalance, use a Fast-forward map, if available, to locate the correct vbucket. -
NCBC-2880: Analytics fix and refactor to improve testability.
-
NCBC-2890: Enable and collect server duration for tracing.
-
NCBC-2891: Fixes a bug where the CID for the default Scope/Collection was not passed to some 7.0beta server versions.
-
NCBC-2894: Remove unsupported CAS setting from Increment/DecrementOptions
-
NCBC-2929, NCBC-2899: Correct Logging Meter emit_interval to output every 600 seconds.
-
NCBC-2903: Remove reference to AggregatingMeter, which has been superseded by LoggingMeter.
-
NCBC-2900, NCBC-2902, NCBC-2904: Align LoggingMeter Output Format with RFC, adding percentile values and setting JSON output to terse by default, instead of pretty.
-
NCBC-2905, NCBC-2906, NCBC-2907, NCBC-2908: Align ThresholdLoggingTracer Output with RFC, and enable by default. Now correctly omits null fields in JSON output, includes timeout.
-
NCBC-2916: Add "operation" property to allow LoggingMeterReport output to be split by opcode.
-
NCBC-2928: Align Threshold Logger output with KV Tracer Output spec.
-
NCBC-2921: Fix a bug where the quota.rawRAM size may over/under flow the Int32 size of the BucketSettings.RamQuotaMB field when the JSON is parsed.
-
NCBC-2924: Fix a bug where Date Time Offsets were always coverted to local time zone, by passing DateParseHandling from SerializerSettings to the DefaultStreamingJsonReader.
-
NCBC-2927: Requests and responses will be handled in an Out-of-Order manner by default.
-
NCBC-2930: Update Collection and Scope error parsing
-
NCBC-2931: Fixes a bug where when the Collection id changes, those changes were not picked up causing an operation timeout.
-
NCBC-2933, NCBC-2934: Unit Test improvements and fixes to Jenkins Pipeline.
New Features and Behavioral Changes.
-
NCBC-2869: Provide OpenTelemetry tracing module, allowing export via any of the OpenTelemetry exporters such as ZipKin, Jaeger, etc.
-
NCBC-2893: Allow a parent span to added to the options for each service or operation for tracing.
-
NCBC-2911: Travel Sample App added, with examples of Collections and Scopes across Query, KV, and Search.
-
NCBC-2926: Add license to footer of all files in Couchbase project
-
NCBC-2574, NCBC-2575: Analytics management: manage Remote Links, support compound dataverse names.
-
NCBC-2581, NCBC-2800: Provide tracing for the .NET SDK based upon RFC 67 Extended SDK Observability. Implements Threshold Logger, LoggingMeter for latency metrics.
-
NCBC-2585, NCBC-2717: Add build Support for .NET 5.0 and Ubuntu 20.04 LTS
-
NCBC-2892, NCBC-2886, NCBC-2889: Update and correct links for 3.2.0 release.
-
NCBC-2699, NCBC-2777: Provide a framework for client-side encryption of sensitive fields in JSON documents using Field Level Encryption.
-
NCBC-2790: Replace, Upsert and MutateIn support
PersistTtl
in servers >= 7.0 which keeps subsequent calls from modifying the original TTL value on update. -
NCBC-2807: Deprecate Collection Manager
GetScope()
in favour ofGetAllScopes()
-
NCBC-2846: Distinguish between CAS mismatch and DML failure on query error.
-
NCBC-2912, NCBC-2917: Ensure that a server response 13014 is also recognized as an authentication failure by the query parser.
-
NCBC-2932: Add Cause field on Query.Error for Transactions Query support.
Version 3.1.7 (02 June 2021)
Version 3.1.7 is the eighth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.
-
NCBC-2891: Send 0x0 for default scope/collections for certain Server 7.0 beta versions.
Fixed Issues
-
NCBC-2879: Combi test failure fixed by only running tests with
CollectionTests.CollectionIdChanged_RetriesAuto
on servers which support collections and the newer management URI structure. -
NCBC-2888: Converting null literal or possible null value to non-nullable type — a rare compile time error for certain environments fixed by using
var
instead ofTValue
.
New Features and Behavioral Changes.
-
NCBC-2698: Added FTS Support for Collections.
-
NCBC-2881: Use Hello to determine if collections are available now no longer leaves exception in DEBUG level log.
-
NCBC-2887: Previously the CID value of 0 could be appended to the key if the default scope/collection was being used. Now, this is checked for, and we don’t send the CID with the key in this case, as it is not required by the server.
Version 3.1.6 (24 May 2021)
Version 3.1.6 is the seveneth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests.
Version 3.1.5 (13 May 2021)
Version 3.1.5 is the sixth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests
Fixed Issues
-
NCBC-2551: GetAllBucketsAsync always throws ArgumentNullException
-
NCBC-2860: Configuration revisions should be parsed and compared with 64-bit precision.
-
NCBC-2864: Unknown default collection regression
-
NCBC-2867: ConfigHandler dead locks in K8 when delete pod is used
-
NCBC-2871: NRE in BucketManager and UserManager part 2
-
NCBC-2876: Upserting to <7.0 clusters does not upsert the content
New Features and Behavioral Changes.
-
NCBC-2862: Log message on timeout appears to lack instance
-
NCBC-2866: Exception: Non-default Scopes and Collections not supported on this server version.
-
NCBC-2839: SDK API changes due to protocol level changes to get_collection_id
-
NCBC-2858: Move collection id fetch into the operation call on the collection
Version 3.1.4 (8 April 2021)
Version 3.1.4 is the fifth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2851: TimeoutExceptions continue after rebound in Failover/Eject tests
New Features and Behavioral Changes.
-
NCBC-2828: Cleanup sub-doc operation public API surface
-
NCBC-2842: Add Couchbase.Core.Exceptions.TimeoutException
-
NCBC-2843: K/V CancellationToken expiration does not include IErrorContext
-
NCBC-2844: Make Query.ReadOnly obsolete and replace w/QueryOptions.Readonly
-
NCBC-2845: Allow default IRetryStrategy to be overridden
Version 3.1.3 (3 March 2021)
Version 3.1.3 is the fourth release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2801:
NodeAdapter
incorrectly shows N1QL service is not available. -
NCBC-2817:
LookupInAsync
andMutateInAsync
builder extensions should accept null options. -
NCBC-2823: Make
ClusterOptions.NetworkResolution
read/write. -
NCBC-2826: Collection Id outdated exception on K-V ops.
-
NCBC-2827:
GET_CID
andGET_SID
do not correctly retry if Scope/Collection not found. -
NCBC-2811: Cache default scope/collection allocation.
-
NCBC-2812: Throw
UnsupportedException
if non-default scopes/cols are used in pre-7.0 clusters.
Version 3.1.2 (4 February 2021)
Version 3.1.2 is the third release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2763: MutationToken throwing ArgumentNullException on static initialization.
-
NCBC-2766: CreateScopeAsync not creating collections in ScopeSpec.
-
NCBC-2767: ScopeNotFoundException when trying to get Scope after creating it.
-
NCBC-2784: Getting a collection right after creating it throws CollectionNotFoundException.
-
NCBC-2794: PackageIconUrl is still being used and blocks package creation.
-
NCBC-2797: Hot upgrade failure from 6.6.0 to 6.6.1 using SDK v3.1.2.
-
NCBC-2798: ThrowIfBootstrapFailed called twice in GetAsync.
-
NCBC-2804: Non-JSON transcoders cannot be mixed with requests for document expiry.
-
NCBC-2810: On pre-7.0 clusters default scopes/collections may not load.
New Features and Behavioral Changes
-
NCBC-2791: GetResult uses AddMilliseconds instead of AddSeconds for expiry.
-
NCBC-2796: SUBDOC_MULTI_PATH_FAILURE_DELETED throwing PathInvalid.
-
NCBC-2770: Add experimental connection pool based on System.Threading.Channels.
-
NCBC-2772: Cleanup key/value cancellation token and timeout handling.
-
NCBC-2776: Change SlicedMemoryOwner to a structure.
-
NCBC-2789: Unable to override the remote name mismatch error with custom validation.
-
NCBC-2793: Address misc compiler warnings.
-
NCBC-2802: Port sub-doc lambda extensions from SDK 2.x.
-
NCBC-2805: Optimize in-flight operation cleanup method.
-
NCBC-2808: Use ValueTask and IValueTaskSource for OperationBase.Completed.
-
NCBC-2809: Use ValueTask for new ScopeAsync/CollectionAsync methods.
Version 3.1.1 (13 January 2021)
Version 3.1.1 is the second release of the 3.1 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2565: WaitUntilReady failure for 6.5.
-
NCBC-2660, NCBC-2935: Operations are now retried if they hit an open circuit breaker.
-
NCBC-2693: MutationToken.GetHashCode() implementation looks suspect.
-
NCBC-2694: Removed unnecessary linked CancellationToken.
-
NCBC-2726: Cannot read empty response bodies.
-
NCBC-2741: If the send queue is full when requeuing after connection cleanup, the operation is dropped.
-
NCBC-2746: using mutate in to update an existing value to null causes an IllegalArgumentException.
-
NCBC-2751: Use ConfigureAwait(false) on awaited task in DnsClientDnsResolver.
-
NCBC-2756: Do not allow empty hosts in ConnectionString.
-
NCBC-2760: MultiMutation duplicates specs on Retry, causing SUBDOC_INVALID_COMBO.
-
NCBC-2761: MutateIn is not setting Cas, ignoring MutateInOptions.CasValue, resulting in a default of 0 which always overwrites.
-
NCBC-2762: Threshold trace logging leaks memory.
-
NCBC-2764: Expiration of TimeSpan.Zero is being sent to server as 1 second expiration.
-
NCBC-2778: Throw CasMismatchException when CAS mismatch occurs.
-
NCBC-2780: Fix unit tests relying on obsolete Expiry method.
-
NCBC-2781: Make replica commands use CancellationToken.
-
NCBC-2782: Replica methods randomly completed with NotMyVBucket.
New Features and Behavioral Changes.
-
NCBC-2716: Collections Analytics Test Changes.
-
NCBC-2747: Add KvSendQueueCapacity to ClusterOptions for tuning.
-
NCBC-2748: netcore3.0 target id deprecated and cannot be used with
dotnet pack
. -
NCBC-2785: ArgumentOutOfRangeException if GetResult.Expiry called on GET operation.
-
NCBC-2788:
UserManagerTests.Test_UserInheritsCollectionAwareRoles
fails in combi tests. -
NCBC-2653: Unnecessary allocation in classes implementing IOperation.
-
NCBC-2661: CouchbaseBucket is doing ad hoc retrying if CollectionOutdatedException.
-
NCBC-2677: Docs: Threshold Logging and Orphan Response Logging.
-
NCBC-2722: Improve performance of
WriteKey
usingstackalloc
. -
NCBC-2723: Reduce async/await around circuit breakers on K/V ops.
-
NCBC-2724: Reduce task continuations related to K/V timeouts.
-
NCBC-2725: Improve logic around ITypeTranscoder instantiations.
-
NCBC-2727: Improve log redaction performance.
-
NCBC-2728: Improve LEB128 encoding performance.
-
NCBC-2729: Reduce task continuations on k/v GET operations.
-
NCBC-2731: Reduce JSON serialization heap allocations.
-
NCBC-2732: ConfigHandler processing is blocking a thread from the thread pool.
-
NCBC-2733: Improve efficiency of ErrorCode lookup in ErrorMap.
-
NCBC-2734: Improve CancellationTokenSource handling in RetryOrchestrator.
-
NCBC-2735: Optimize OperationBuilder performance.
-
NCBC-2736: Optimize key/value operation flag handling.
-
NCBC-2737: Use a static client description for spans.
-
NCBC-2738: Improve performance building connection tags for K/V operation spans.
-
NCBC-2740: Optimize performance when request tracing is disabled.
-
NCBC-2742: Reduce debug logging heap allocations on critical K/V path.
-
NCBC-2743: Reduce Task ContingentProperties heap allocations.
-
NCBC-2744: Enable reporting of test results in Jenkins.
-
NCBC-2745: Reduce lambda-related heap allocations for K/V operation completions.
-
NCBC-2749: Use Stopwatch to track connection idle time.
-
NCBC-2750: Use spans in MultiplexingConnection.ParseReceivedData.
-
NCBC-2752: Improve ToTtl performance.
-
NCBC-2753: Allow BucketBase.RetryAsync to be inlined.
-
NCBC-2754: Use Span<byte> for VBucketKeyMapper.GetIndex
-
NCBC-2755: Use ThrowHelper to improve inlining.
-
NCBC-2757: SkipLocalsInit when writing document keys to operations.
-
NCBC-2758: Use .NET provided encoding of strings to spans when available.
-
NCBC-2765: Improve buffer handling in MultiplexingConnection receive.
-
NCBC-2768: Improve precision of UnixMillisecondsConverter.
-
NCBC-2769: Avoid heap allocations for default K/V operations.
-
NCBC-2773: Simplify AsyncState handling of Opaque.
-
NCBC-2774: Make OperationBuilderPool tunable.
-
NCBC-2775: Improve array handling performance throughout the SDK.
Version 3.1.0 (2 December 2020)
This is the first GA release of the 3.1 series, bringing enhancements and bugfixes over the 3.0 releases, and adding features to support Couchbase Server 6.6.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2643:
DataFlowConnectionPool
was creating unbounded connections in certain situations, such as pinging for a buckets which had not yet been created. This fix resolves the issue, although the number of connections will go up still but then trend back down, as they are in aTIME_WAIT
state and it takes a little time for them to be reclaimed. -
NCBC-2660: Operations were not retried if they hit an open circuit breaker (
CircuitBreakerException
); the retry orchestrator will now retry these failures. -
NCBC-2686: Facet result missing fields added to Search.
-
NCBC-2705:
RawBinaryTranscoder
was using invalid DataFormat. It will now simply pass the body of the packet back to the consumer as it should. -
NCBC-2706: A JSON string stored in Couchbase was generating an error when read as a string via
result.ContentAs<string>()
. The packet is now converted into a UTF8 string if the type of T is a string inJsonTranscoder
, so if you write a POCO to Couchbase reading it as a string now works as expected. -
NCBC-2708: Sub-Document API Transcoder
InvalidOperationExceptions
are no longer thrown when a DataFormat mismatch occurs.
New Features and Behavioral Changes.
-
NCBC-2386: Non-JSON & transcoders code samples added to developer documentation.
-
NCBC-2418:
maxTTL
can now be set via theCollectionSpec.MaxExpiry
property. -
NCBC-2572: Durability can now be set on the bucket, for Couchbase Server 6.6 and up.
-
NCBC-2589: Document Expiry Duration works as expected with offsets and with absolute time stamps.
-
NCBC-2622: GetResult.expiry() is deprecated. Please use
GetResult.ExpiryTime
overExpiry
as it accurately depicts theTTL
of the document. -
NCBC-2627, NCBC-2631: FTS Score parameter added to allow avoidance of scoring from Server 6.6.
-
NCBC-2679: A better opcode is used for basic Get scenarios, which will allow the server to return compressed documents once compression support is added to the .NET SDK.
-
NCBC-2709: A minor optimization in all key-value operations following improved performance of bootstrap test.
-
NCBC-2715: Added
InterfaceStabilityAttribute
for API interface stability.
Version 3.0.7 (3 November 2020)
Version 3.0.7 is the eighth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2641: ConfigHandler has already been started.
-
NCBC-2651: IncrementOptions and DecrementOptions are missing Expiry.
-
NCBC-2655: Bucket WaitUntilReadyAsync running into NullReferenceException.
-
NCBC-2656: Serialization/Transcoding Errors Are Unhandled.
-
NCBC-2660: Operations are not retried if they hit an open circuit breaker.
-
NCBC-2669: Upsert/Insert null with MutateIn fails with Invalid arguments (0x0004).
-
NCBC-2685: AccessDeleted not supported properly on MutateIn.
New Features and Behavioral Changes.
-
NCBC-2670: Collections - RBAC Collections - .net tests
-
NCBC-2569: .NET Logging page
-
NCBC-2580: Add Ephemeral Bucket Management Support
-
NCBC-2664: Operations are silently ignored if the send queue is full
-
NCBC-2668: Add RawBinaryTranscoder
-
NCBC-2675: Optimize VBucketKeyMapper.GetIndex
-
NCBC-2680: Share ServerFeatures on IConnection
-
NCBC-2688: Make synchronous Analytics query methods obsolete
Version 3.0.6 (13 October 2020)
Version 3.0.6 is the seventh release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2187: CollectionManager - 400: Not allowed on this version of cluster (verify).
-
NCBC-2604: exception.IsRetryable() in docs.
-
NCBC-2619: Update KV samples.
-
NCBC-2638: Intermittent InvalidOperationException in Dependency Injection.
-
NCBC-2639: Upsert-and-remove doesn’t work.
-
NCBC-2652: Operations gets stuck in retry loop until timeout.
-
NCBC-2657: Exceptions Aren’t Thrown For N1QL Errors After Results.
-
NCBC-2659: Fix strong naming for Couchbase.Extensions.DependencyInjection.
-
NCBC-2662: Correct DI security for named buckets on .NET Core.
-
NCBC-2671: KV Throughput drop after failover-rebalance
New Features and Behavioral Changes.
-
NCBC-2033: 3.0 API Query snippets in concept doc.
-
NCBC-2321: Update documents to SDK 3.0 Beta interface.
-
NCBC-2472: Ensure connection string supports options table defined in RFC.
-
NCBC-2298: CancellationToken and CancellationTokenSource management needed.
-
NCBC-2557: Improve cancellation and timeouts.
-
NCBC-2573: Add support for CreateAsDeleted.
-
NCBC-2576: Geopolygon search support.
-
NCBC-2577: Add Options To Use FTS Hints (Flex Index).
Version 3.0.5 (1 September 2020)
Version 3.0.5 is the sixth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
Fixed Issues
-
NCBC-2504: Intermittent ViewQuery failures after rebound Rb2OutEpt-HYBRID
-
NCBC-2559: Test_BootStrap_Error_Propagates_To_View_Operations fails w/BucketNotFoundException
-
NCBC-2561: CreateAndDropIndex and Test_QueryManager conflict
-
NCBC-2625: Ensure new NodeAdapter is assigned to ClusterNode on change
-
NCBC-2634: Expiry returned with entire document when ContentAs invoked
-
NCBC-2405: SDK3 DOC on User Auth options
-
NCBC-2541: WaitUntilReady() doc code sample
-
NCBC-2603: Missing snippets & sections in Managing Connections doc
-
NCBC-2623: Implement Threshold Logging features of RTO
-
NCBC-2636: Test max limitations of collections and scopes
-
NCBC-2637: Split Couchbase.IntegrationTests into seperate projects for Management and main API
-
NCBC-2427: Verify that out-of-order K/V request/responses are supported
-
NCBC-2584: Add N1QL Support for Collections
-
NCBC-2630: Enhance User Management for Collections/RBAC
Version 3.0.4 (5 August 2020)
Version 3.0.4 is the fifth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.
Fixed Issues
-
NCBC-2605: Expiration less than 1000ms creates a doc with an infinite lifespan
-
NCBC-2608: Connection fails if first node in connection string array is unavailable.
-
NCBC-2620: Expiry not being set by MutateIn
-
NCBC-2621: Ensure the CName field is set per operation
-
NCBC-2601: SUBDOC_XATTR_INVALID_FLAG_COMBO when mixing MutationMacro and XAttr
New Features and Behavioral Changes.
-
NCBC-2441: Implement tracing using OpenTelemetry for FTS
-
NCBC-2442: Implement tracing using OpenTelemetry for KV
-
NCBC-2443: Implement tracing using OpenTelemetry for Analytics
-
NCBC-2444: Implement tracing using OpenTelemetry for Views
-
NCBC-2579: Implement tracing of spans for all services towards Response Time Observability for SDK 3.0
-
NCBC-2583: Add support for looking up certificates via Cert Store
-
NCBC-2602: Add Support for MutateIn.SetDocument
-
NCBC-2609: Add PublicKey to AssemblyInfo for DI when building release packages
-
NCBC-2617: When signing make friend assemblies use public key
Version 3.0.3 (14 July 2020)
Version 3.0.3 is the fourth release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.
Fixed Issues
-
NCBC-2588: LookupIn should re-order subdoc requests so that XATTRs come first.
-
NCBC-2450: KV failure after removing entry point node for pre-MH server
-
NCBC-2501: latency detected in FoEptRb-SubDoc after rebound never recovers
-
NCBC-2502: latency detected in FoEptEject-SUBDOC after rebound never recovers
-
NCBC-2503: Latency detected for FoRbAnalytics-CBAS after rebound never recovers
-
NCBC-2545: Hello World example in the docs repo doesn't build.
-
NCBC-2553: Remove authzid from Sasl Negotiation
-
NCBC-2563: StreamingQueryResult fails to populate errors on InternalServerError
-
NCBC-2587: LookupInSpecBuilder allows only a single XATTR per request.
-
NCBC-2592: Fix custom circuit breaker not being injected
-
NCBC-1836: CAS samples
New Features and Behavioral Changes.
-
NCBC-2542: OpenTelemetry tracing extension
-
NCBC-2593: Update install and start docs to reflect .NET Standard/Core support
-
NCBC-2594: Update version number on release notes
-
NCBC-2595: Indent code on error handling page so that it is readable.
-
NCBC-2227: Author Managing Connections documentation
-
NCBC-2170: Implement tracing using OpenTelemetry for Query
-
NCBC-2519: Review docs for update items, identify/file issues
-
NCBC-2598: Misc SDK improvements for Transactions
-
NCBC-2591: Allow registration of custom services
Version 3.0.2 (20 June 2020)
Version 3.0.2 is the third release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.
Fixed Issues
-
NCBC-2436: User connstr example in migration guide
-
NCBC-2459: Remove QueryOptions from StartUsing.cs in docs
-
NCBC-2487: NRE when bootstrapping - BucketConfigExtensions.ReplacePlaceholderWithBootstrapHost
-
NCBC-2506: Connection attempt failed / timeout exception with Cloud and .NET SDK 3.0.1
-
NCBC-2508: Alternate Addresses are not handled correctly in sdk3
-
NCBC-2512: Additional debug logging and improvements
-
NCBC-2525: Connection pool does not scale up to minimum connections after a temporary network failure.
-
NCBC-2526: requests wait forever while cluster is unreachable
-
NCBC-2537: Orphaned nodes when bootstrapping with a Memcached and a Couchbase bucket
-
NCBC-2538: Analytics failures after failover/rebalance of the ept node
-
NCBC-2540: Enumerating query results from SELECT RAW queries throws an exception
-
NCBC-2546: Retry all exceptions with the IRetriable marker interface
-
NCBC-2548: Ensure all operations attempt retrys when NMVB status is returned by server
-
NCBC-2549: Subdoc failures after restarting CB server
-
NCBC-2552: Intermittent cluster connection failures with CB Server <6.5
-
NCBC-2555: Memcached and SSL results in "The handshake failed due to an unexpected packet format."
-
NCBC-2556: Capture thrown exception and log the error when bootstrapping
-
NCBC-2558: Couchbase.Extensions.DependencyInjection Failing On .NET Core 3.1
New Features and Behavioral Changes.
-
NCBC-2202: Integration tests need to configure tests to run based on server version
-
NCBC-2237: PLAIN must not be enabled by default on non-tls connections
-
NCBC-2404: ConnectAsync throws ArgumentNullException when cluster cannot be reached
-
NCBC-2530: Provide navigation properties to get from ICouchbaseCollection back to ICluster
-
NCBC-2533: Provide access to ITypeSerializer on ICluster for Linq2Couchbase
-
NCBC-2544: Add additional DEBUG logging info and ContextIds
-
NCBC-2463: Document documentation .NET
-
NCBC-2469: Make nightly Jenkins builds work
-
NCBC-2495: Update NuGet API Key in deployment pipeline on Jenkins
-
NCBC-2509: CreateAndConnectAsync ONLY creates CouchbaseBuckets (not MemCache or Ephemeral)
-
NCBC-2517: DependencyInjection project refactoring
-
NCBC-2523: Port ClusterVersion from sdk2 to sdk3
-
NCBC-2527: Update DnsClient to 1.3.2
-
NCBC-2529: CB Cloud: non-KV nodes fail when used for bootstraping
-
NCBC-2534: .NET Collections Functional Testing
-
NCBC-2539: Port UnixMillisecondsConverter from sdk2 to sdk3
-
NCBC-2482: Couchbase.IntegrationTests.Services.Search.SearchIndexManagerTests.TestSearchManager
-
NCBC-2483: Couchbase.IntegrationTests.UserManagerTests.Test_UserManager
-
NCBC-2484: Couchbase.IntegrationTests.BucketManagerTests.Test_BucketManager
-
NCBC-2485: Couchbase.IntegrationTests.Diagnostics.PingReportTests.Can_Get_PingReport_With_ReportId
-
NCBC-2486: Couchbase.IntegrationTests.CollectionManagerTests.Test_CollectionManager
-
NCBC-2489: Couchbase.IntegrationTests.ClusterTests.Test_Open_More_Than_One_Bucket
-
NCBC-2490: Couchbase.ServiceNotAvailableException : Service views not available.
-
NCBC-2518: HttpStreamingConfigListener should continue running after all streams break.
-
NCBC-2524: Couchbase.IntegrationTests.ClusterTests.Test_WaitUntilReadyAsync
-
NCBC-2531: Implement OpenTelemetry Stub in CouchbaseNetClient
-
NCBC-2532: Remove existing OpenTracing dependency
Version 3.0.1 (13 May 2020)
Version 3.0.1 is the second release of the 3.0 series, bringing enhancements and bugfixes over the last stable release.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.
Fixed Issues
-
NCBC-2033: 3.0 API Query snippets in concept doc
-
NCBC-2204: Improve exception when bootstrapping fails
-
NCBC-2301: 3.0 Logging / Collecting Info page
-
NCBC-2303: Client Settings page for SDK 3.0
-
NCBC-2388: Ensure that prepared statements that are previously created are not retried
-
NCBC-2435: Connstr not taking username properly
-
NCBC-2439: improve formatting on exception context
-
NCBC-2451: QueryPreparedStatementFailure in situational tests with MH
-
NCBC-2454: EndPoint may be null during SendAsync
-
NCBC-2456: Transient NodeNotAvailableException rebalance under kv load
-
NCBC-2458: QueryAsync(String statement) does not exist
-
NCBC-2460: .NET Core App 3.x targets require consumers add reference to Microsoft.Bcl.AsyncInterfaces
-
NCBC-2462: ConnectAsync is failing "Cannot resolve DNS for localhost"
-
NCBC-2466: Ensure TaskCancelationExceptions are rethrown
-
NCBC-2467: CLONE - Ensure TaskCancelationExceptions are rethrown
-
NCBC-2468: System.ArgumentException: ReadResult does not contain valid MutationToken
-
NCBC-2473: Incorrect Verbiage for NuGet Package
-
NCBC-2475: GetNodes() sometimes returns no results, incorrectly.
-
NCBC-2479: Point config.json for combination tests back at localhost
-
NCBC-2480: SocketException: Cannot bind to address in SslConnectionTests
-
NCBC-2481: KV operations don’t respect IgnoreCertificateNameMismatch
-
NCBC-2488: Couchbase.IntegrationTests.BootstrapFailedTests.Test_BootStrap_Error_Propagates_To_View_Operations [FAIL]
-
NCBC-2493: Improve error logging and handling for Query
-
NCBC-2497: SetKeepAlive fails on Windows
New Features and Behavioral Changes.
-
NCBC-2304: Managing Connections - SDK3
-
NCBC-2464: Build/deploy the .NET Dependency Injection extension for SDK 3.0
-
NCBC-2478: Cluster.ConnectAsync throws PlatformNotSupportedException
-
NCBC-2492: Log warning when TCPKeepAlive cannot be enabled
-
NCBC-2494: Fix TCPKeepAlive to work on non Windows Platform
Version 3.0.0 (31 March 2020)
This is the first GA release of the third generation .NET SDK.
This is the first GA release of the third generation .NET SDK.
This release features significant changes to the API, simplifies the programming model, adds support for newer Durability Requirements and enables simple extension for features coming in future Couchbase Server releases. See the Migration Guide for help with migrating from .NET SDK 2.x.
Known Issues
-
NCBC-3171: Documents may be written to the wrong location in a mixed-mode cluster set-up. See the Special Note for more details.
-
NCBC-2187: CollectionManager — 400: Not allowed on this version of cluster.
Fixed Issues
-
NCBC-2149: ConfigConext throws NullReferenceException when processing new cluster maps
-
NCBC-2153: Fix failing integration tests for SDK3
-
NCBC-2166: Authentication Errors after adding nodes to cluster
-
NCBC-2168: QueryException does not provide textual details coming from the server
-
NCBC-2199: Missing string interpolation sign in CouchbaseBucket
-
NCBC-2213: N1QL situational test failure - Rb1SwapQuery
-
NCBC-2214: N1QL situational test failure - SvcRestartQuery
-
NCBC-2217: Deserialization issues with GetAsync<T>
-
NCBC-2219: Cluster instantiation using ClusterOptions ignores WithServers servers
-
NCBC-2222: AuthenticationFailure thrown when accessing bucket while combination testing
-
NCBC-2230: QueryException missing XxxxContext
-
NCBC-2241: Defer bootstrapping errors on buckets to first operation
-
NCBC-2266: UserManager#AvailableRolesAsync must be called getRoles
-
NCBC-2268: CollectionManager does not align with RFC
-
NCBC-2273: Incorrect ScopeMissingException
-
NCBC-2274: Can’t connect to two buckets from one cluster object
-
NCBC-2277: SearchOptions does not map query parameters
-
NCBC-2282: fix test and implementation of positional params
-
NCBC-2286: Make all options have no "With" prefix
-
NCBC-2288: MutateIn ContentAs() functionality missing
-
NCBC-2290: Add Timeout to all options classes in BucketManager
-
NCBC-2306: Match RFC requirement for Rows property for query services
-
NCBC-2307: Cannot query using any type other than dynamic
-
NCBC-2308: N1QL query situational failure
-
NCBC-2309: Hybrid/view query errors with situational testing
-
NCBC-2316: Ensure view request get default timeout if not supplied
-
NCBC-2324: Random KeyNotFoundException in LogManagerTests.Test_LogLevel_Debug
-
NCBC-2350: SearchOptions.Raw is unused, and throws an NRE
-
NCBC-2351: View timeout is not applied to view query string
-
NCBC-2352: Cleanup Service Exceptions Hiding Context
-
NCBC-2353: Cleanup .NET SDK 3 Build Warnings
-
NCBC-2354: Most Integration Tests Failing
-
NCBC-2365: Ensure Exists checks if deleted is true then exists returns false
-
NCBC-2366: AnalyticsManager does not exist
-
NCBC-2367: Methods in ClusterNode have unused "connections" parameter
-
NCBC-2369: Ping diagnostics are not accurately reporting ping times
-
NCBC-2372: NRE thrown while initializing cluster
-
NCBC-2384: SSL connections cannot find node for K/V operations
-
NCBC-2389: ClusterNode must be associated with a bucket once a bucket has been opened
-
NCBC-2397: OPS pulses between zero and the expected performance
-
NCBC-2402: Add ConfigureAwait(false) to all asynchronous code
-
NCBC-2407: Couchbase.ServiceNotAvailableException: Service n1ql not available
-
NCBC-2416: ViewQuery failure/hanging
-
NCBC-2421: Remove default to NotBounded in FTS
-
NCBC-2422: Error replacing dead connections on N1QL Failover rebalance
-
NCBC-2426: Service Restart failure - replacing dead connections failure
-
NCBC-2429: Should be MaxHttpConnections instead of MaxHttpConnection
-
NCBC-2446: Ensure bootstrapping continues after BucketNotConnected on pre-6.5 servers
-
NCBC-2448: unpublish concurrent document mutations
-
NCBC-2183: Exists must use "getMeta" (0xa0) instead of Observe
-
NCBC-2410: LookupInResult has NotImplementedException for some methods
-
NCBC-2412: Cluster.AnaytlicsIndexes throws NotImplementedException
-
NCBC-2414: Connection terminated when packet exceeds NetworkStream buffer size
-
NCBC-2415: error CS0649: Field 'SubDocSingularBase<T>.CurrentSpec' is null
-
NCBC-2430: HttpMaxConnections renaming breaks DI unit tests
-
NCBC-2431: Failed DNS resolution throws NullReferenceException
-
NCBC-2433: Fix failing tests involving MaxHttpConnection
-
NCBC-2305: RequestId, ClientContextId, and Signature Lost After N1QL Query Enumeration
-
NCBC-2358: Timeout is not written to the packet when using Durability
New Features and Behavioral Changes.
-
NCBC-2315: Improve logging for each service request
-
NCBC-2325: Add SCRAM-SHA Sasl Authentication
-
NCBC-1863: Add Flushing or Deleting a Collection logic
-
NCBC-1870: Support Log Redaction
-
NCBC-1915: Add new consistency API to SDK 3.0
-
NCBC-2151: Migrating from SDK 2 to 3.0
-
NCBC-2169: Migrating from SDK 2 to 3.0
-
NCBC-2209: Add Converters/Transcoders per RFC
-
NCBC-2220: Ensure ClusterOptions properties are integrated into SDK
-
NCBC-2234: Mark all ErrorContexts as Uncomitted
-
NCBC-2302: Getting Started Tidy Up
-
NCBC-2413: Add XxxErrorContext information to K/V
-
NCBC-2417: Remove all Singular Sub-Document classes
-
NCBC-1799: Analytics client needs to support streaming results
-
NCBC-1989: Add connection pooling
-
NCBC-2244: WaitUntilReady not available at the cluster and bucket levels
-
NCBC-2245: Cluster-level ping missing
-
NCBC-2260: Tighten OperationSpec for lookupIn and mutateIn
-
NCBC-2293: Remove deprecated ErrorAttribute enum
-
NCBC-2297: Decrease API surface surrounding K/V operations/connections
-
NCBC-2299: Implement non-streaming fallback for N1QL queries
-
NCBC-2300: Support custom stream deserializers for view queries
-
NCBC-2310: Make IQueryResult implementations internal
-
NCBC-2312: Make IServiceResult.RetryReason read only
-
NCBC-2313: Align StreamAlreadyReadException with other Couchbase exceptions
-
NCBC-2314: Implement non-streaming fallback for view queries
-
NCBC-2318: Refactor view queries to be strongly typed
-
NCBC-2319: Implement non-streaming fallback for analytics queries
-
NCBC-2320: Cleanup K/V classes in root namespace
-
NCBC-2322: Enable symbol packages and SourceLink for debugging
-
NCBC-2323: Enable C# 8 nullable ref types for buckets/scopes/collections
-
NCBC-2327: Create Lightweight DI system for Couchbase SDK
-
NCBC-2328: Update Cluster and Bucket to use DI for Logging
-
NCBC-2329: Update RetryOrchestrator to use DI for logging
-
NCBC-2330: Make transaction/serializer/mapper configurable via DI
-
NCBC-2331: Use DI for Scope and Collection logging
-
NCBC-2332: Remove default constructor added to BucketBase (CS8618 warning)
-
NCBC-2334: All integration tests fail, cannot bootstrap
-
NCBC-2336: Use DI for CouchbaseHttpClient
-
NCBC-2337: Remove ClusterContext requirement from service clients
-
NCBC-2338: Use DI for service clients and their loggers
-
NCBC-2340: Use DI for logging in configuration handlers
-
NCBC-2341: Use DI for OrphanedResponseLogger logging
-
NCBC-2343: Use DI for logging in data structures
-
NCBC-2344: Use DI for logging in managers
-
NCBC-2345: Use DI for logging in DNS resolver
-
NCBC-2346: Use DI for logging in GetResult
-
NCBC-2347: Use DI for logging in QueryUriTesters
-
NCBC-2348: Use DI for VBucket and ErrorMap logging
-
NCBC-2349: Enable Nullable Ref Types in ClusterOptions
-
NCBC-2355: Support deserialization of ClusterOptions from configuration
-
NCBC-2356: Move content services directory to root in Couchbase.UnitTests
-
NCBC-2357: Enable nullable ref types for XxxOptions classes
-
NCBC-2359: Use DNS resolver for IP address resolution
-
NCBC-2360: Use DNS resolver in Ketama key mapper and ClusterContext
-
NCBC-2362: Make ConfigChanged handling async
-
NCBC-2363: Use DNS resolver for VBucketServerMap.IPEndPoints
-
NCBC-2364: Enable null reference types for K/V specs/results
-
NCBC-2368: Remove Servers From ClusterOptions
-
NCBC-2370: Support custom port numbers in ConnectionString
-
NCBC-2371: Make BucketConfig and other config serialization classes internal
-
NCBC-2373: Implement abstraction layer for connection pool implementations
-
NCBC-2374: Replace TKey with string parameter in persistent collections
-
NCBC-2376: Cleanup BootstrapUri on ClusterNode
-
NCBC-2377: Implement auto scaling on connection pools
-
NCBC-2378: Add log redaction to DataFlowConnectionPool
-
NCBC-2379: Respect couchbases scheme for DNS SRV lookup
-
NCBC-2380: ClusterOptions MgmtPort and EnableTls cleanup
-
NCBC-2381: Cleanup IConnection interface
-
NCBC-2382: Support multiplexing on SslConnection
-
NCBC-2383: NodeAdapter is null on non-bootstrap nodes
-
NCBC-2387: Reduce heap allocations related to K/V operation response handling
-
NCBC-2391: Include XML documentation in NuGet package
-
NCBC-2392: Reduce heap allocations around MultiplexingConnection async state
-
NCBC-2393: Align QueryScanConsistency with the RFC
-
NCBC-2398: Change ICollection interface to ICouchbaseCollection interface
-
NCBC-2399: Add bootstrap service
-
NCBC-2408: Add BucketContext or equivalent for cohesion and less coupling
-
NCBC-2409: Route nodes into service specific CouchbaseNodeCollections
-
NCBC-2425: Reduce heap allocations calling BucketAsync
Pre-releases
Numerous Alpha and Beta releases were made in the run-up to the 3.0 release, and although unsupported, the release notes and download links are retained for archive purposes here.
Older Releases
Although no longer supported, documentation for older releases continues to be available in our docs archive.