Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release notes for .NET 3.5.1 #331

Merged
merged 2 commits into from
Apr 17, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 92 additions & 76 deletions modules/project-docs/pages/sdk-release-notes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,91 @@ We always recommend using the latest version of the SDK -- it contains all of th
All patch releases for each dot minor release should be API compatible, and safe to upgrade;
any changes to expected behavior are noted in the release notes that follow.

=== Version 3.5.1 (16 Apr 2024)

=== Version 3.5.0 (11 Mar 2024)
Version 3.5.1 is the second release of the 3.5 series.

https://packages.couchbase.com/clients/net/3.5/Couchbase-Net-Client-3.5.1.zip[Download] |
https://docs.couchbase.com/sdk-api/couchbase-net-client-3.5.1[API Reference] |
https://www.nuget.org/packages/CouchbaseNetClient/3.5.1[Nuget]

==== Fixed Issues

* https://issues.couchbase.com/browse/NCBC-3690[NCBC-3690]:
FIT Management: Implement Scoped Search Index Management.
* https://issues.couchbase.com/browse/NCBC-3699[NCBC-3699]:
FIT Query: QueryOptionTest failures fixed.
* https://issues.couchbase.com/browse/NCBC-3700[NCBC-3700]:
FIT KV: New Subdoc errors fixed.
* https://issues.couchbase.com/browse/NCBC-3703[NCBC-3703]:
FIT Stellar: InvalidArgument and DocumentTooDeep now handled.
* https://issues.couchbase.com/browse/NCBC-3716[NCBC-3716]:
Fixed a regression in KV throughput against Trinity during rebalances.
* https://issues.couchbase.com/browse/NCBC-3720[NCBC-3720]:
`ClusterChangeMapNotification` was reported in logs and errors in place of KV ops -- this has been fixed, and `SET/Upsert` is now correctly reported.
* https://issues.couchbase.com/browse/NCBC-3721[NCBC-3721]:
Fixed a regression in 3.5.0 which would not allow building a Cluster with `LoggingMeter` disabled.
* https://issues.couchbase.com/browse/NCBC-3724[NCBC-3724]:
Fixed a known issue with Snappier implementation in the SDK preventing bootstrap .NET with SDK v3.4.10 onwards against server v7.6.0.
* https://issues.couchbase.com/browse/NCBC-3725[NCBC-3725]:
Fixed a bug where `ConfigPushHandler` wasn't performing well under massive config push spam.
* https://issues.couchbase.com/browse/NCBC-3727[NCBC-3727]:
When Faster Failover with ClustermapChangeNotification is enabled,
config polling was short circuited, causing the SDK to rebootstrap because it thinks that it cannot connect to the cluster with the current nodes list.
This behavior has been fixed.
* https://issues.couchbase.com/browse/NCBC-3732[NCBC-3732]:
Fixed logic bug that was causing the `ConfigPushHandler` to skip all new clustermap config revision.
* https://issues.couchbase.com/browse/NCBC-3734[NCBC-3734]:
The NRE was causing config revisions to be skipped which meant retries for `NotMyVBucket` were happening multiple times using the same config revision.
* https://issues.couchbase.com/browse/NCBC-3737[NCBC-3737]:
`KvNotMyBucket` retried with old config.
* https://issues.couchbase.com/browse/NCBC-3742[NCBC-3742]:
Reduced push config spam in ConfigPushHandler.
* https://issues.couchbase.com/browse/NCBC-3747[NCBC-3747]:
When CB Server 7.2 sends a cluster map changed notification, it is sent with a JSON body containing the new map.
After deserializing, we were not replacing `$HOST` with the correct values,
causing the in-memory map to become corrupt and subsequent operations to timeout.
This has been fixed, and now after deserializing a pushed notification with a cluster map the SDK replaces `$HOST` with the endpoint,
and applies any overridden network resolution settings.
This matches the behavior when we receive a `BucketConfig` back from an explicit request.
* https://issues.couchbase.com/browse/NCBC-3752[NCBC-3752]:
Fixed a race condition affecting `KeyMapper` being updated out of sync with `CurrentConfig`.
* https://issues.couchbase.com/browse/NCBC-3753[NCBC-3753]:
The SDK will now only publish a config if it's a higher revision than the current one.
* https://issues.couchbase.com/browse/NCBC-3749[NCBC-3749]:
Log the `ConfigVersion` used by an operation throughout the SDK.
* https://issues.couchbase.com/browse/NCBC-3723[NCBC-3723]:
Fixed a `NullReferenceException` in `ConfigPushHandler`,
which meant the code could jump to the error handling and log/exit instead of processing the config.
* https://issues.couchbase.com/browse/NCBC-3740[NCBC-3740]:
When Faster Failover is available, a `GetClusterMap` request is no longer the only response to `NotMyVBucket`.
* https://issues.couchbase.com/browse/NCBC-3722[NCBC-3722]:
Fixed an `IndexOutOfBounds` error processing cluster map during `ConfigUpdateAsync`.
* https://issues.couchbase.com/browse/NCBC-3719[NCBC-3719]:
There is a bug in the server, and an Unlock operation with an invalid Cas returns `Locked` instead of `CasMismatch` status.
The SDK now handles this as a `CasMismatch`.

==== New Features and Behavioral Changes

* https://issues.couchbase.com/browse/NCBC-3739[NCBC-3739]:
A `GetConfigMap` begin sent is generally a high priority because it indicates server configuration is outdated due to failover or rebalance.
Added a method (which currently only applies to the default `ChannelConnectionPool`)
which allows an operation to be jumped to the front of the line to be sent.
It randomly selects the connection from the pool to provide distribution rather than relying on the queue to distribute.
* https://issues.couchbase.com/browse/NCBC-3744[NCBC-3744]:
Moved `ConfigPushHandler` from `ClusterNode` to `CouchbaseBucket`.
* https://issues.couchbase.com/browse/NCBC-3748[NCBC-3748]:
Tracking basic metrics for `ClusterMapChangeNotification`.
* https://issues.couchbase.com/browse/NCBC-3751[NCBC-3751]:
Every Scope and Collection fetch was being logged in `DEBUG` mode, adding spam to the logs and roughly doubling the log size.
We have now hanged logging there, and also for when waiting for polling, to `TRACE`.
for a config.


=== Version 3.5.0 (11 Mar 2024) DO NOT USE - USE 3.5.1 INSTEAD

Version 3.5.0 is the first release of the 3.5 series.
A number of regressions means that it is not recommended for use -- release notes are retained here for reference, as they apply to all subsequent releases.

https://packages.couchbase.com/clients/net/3.5/Couchbase-Net-Client-3.5.0.zip[Download] |
https://docs.couchbase.com/sdk-api/couchbase-net-client-3.5.0[API Reference] |
Expand Down Expand Up @@ -137,21 +218,8 @@ https://www.nuget.org/packages/CouchbaseNetClient/3.4.15[Nuget]
==== Known Issues

* https://issues.couchbase.com/browse/NCBC-3716[NCBC-3716]:
If you are using Capella or Server versions 7.6.0, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6.0, you may encounter timeout exceptions during rebalances under KV high workload.
A workaround is to disable fast failover by setting `EnablePushConfig` to false in the `ExperimentalOptions` of the `ClusterOptions`:

+
[source,csharp]
----
var options = new ClusterOptions
{
ConnectionString = "localhost"
UserName = "Administrator",
Password = "password",
};
options.Experiments.EnablePushConfig = false;
----
If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.

==== Fixed Issues

Expand Down Expand Up @@ -182,21 +250,8 @@ https://www.nuget.org/packages/CouchbaseNetClient/3.4.14[Nuget]
==== Known Issues

* https://issues.couchbase.com/browse/NCBC-3716[NCBC-3716]:
If you are using Capella or Server versions 7.6.0, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6.0, you may encounter timeout exceptions during rebalances under KV high workload.
A workaround is to disable fast failover by setting `EnablePushConfig` to false in the `ExperimentalOptions` of the `ClusterOptions`:

+
[source,csharp]
----
var options = new ClusterOptions
{
ConnectionString = "localhost"
UserName = "Administrator",
Password = "password",
};
options.Experiments.EnablePushConfig = false;
----
If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.

==== Fixed Issues

Expand Down Expand Up @@ -240,21 +295,8 @@ https://www.nuget.org/packages/CouchbaseNetClient/3.4.13[Nuget]
==== Known Issues

* https://issues.couchbase.com/browse/NCBC-3716[NCBC-3716]:
If you are using Capella or Server versions 7.6.0, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6.0, you may encounter timeout exceptions during rebalances under KV high workload.
A workaround is to disable fast failover by setting `EnablePushConfig` to false in the `ExperimentalOptions` of the `ClusterOptions`:

+
[source,csharp]
----
var options = new ClusterOptions
{
ConnectionString = "localhost"
UserName = "Administrator",
Password = "password",
};
options.Experiments.EnablePushConfig = false;
----
If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.

==== Fixed Issues

Expand Down Expand Up @@ -318,21 +360,8 @@ https://www.nuget.org/packages/CouchbaseNetClient/3.4.12[Nuget]
==== Known Issues

* https://issues.couchbase.com/browse/NCBC-3716[NCBC-3716]:
If you are using Capella or Server versions 7.6.0, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6.0, you may encounter timeout exceptions during rebalances under KV high workload.
A workaround is to disable fast failover by setting `EnablePushConfig` to false in the `ExperimentalOptions` of the `ClusterOptions`:

+
[source,csharp]
----
var options = new ClusterOptions
{
ConnectionString = "localhost"
UserName = "Administrator",
Password = "password",
};
options.Experiments.EnablePushConfig = false;
----
If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.

==== Fixed Issues

Expand Down Expand Up @@ -385,21 +414,8 @@ https://www.nuget.org/packages/CouchbaseNetClient/3.4.11[Nuget]
==== Known Issues

* https://issues.couchbase.com/browse/NCBC-3716[NCBC-3716]:
If you are using Capella or Server versions 7.6.0, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6.0, you may encounter timeout exceptions during rebalances under KV high workload.
A workaround is to disable fast failover by setting `EnablePushConfig` to false in the `ExperimentalOptions` of the `ClusterOptions`:

+
[source,csharp]
----
var options = new ClusterOptions
{
ConnectionString = "localhost"
UserName = "Administrator",
Password = "password",
};
options.Experiments.EnablePushConfig = false;
----
If you are using Capella or Server versions 7.6.0+, we strongly encourage you to upgrade to SDK v3.5.1+.
While this version will continue be compatible and supported with server 7.6 (and newer instances of Capella, using 7.6), you may encounter timeout exceptions during rebalances under KV high workload.

==== Fixed Issues

Expand Down
Loading