Release Notes for Couchbase Server 5.0.x

Release Notes for Couchbase Server 5.0.x

Couchbase Server 5.0 delivers exciting capabilities for cross datacenter replication, security, query, search, tools, and application development. Take a look at What's new for a list of new features and improvements that are available in this release.

Release 5.0.1

Couchbase Server 5.0.1, released in December 2017, supersedes version 5.0.0 released earlier this year. Version 5.0.1 is the first maintenance release in the 5.0.x series for Couchbase Server.

Fixed Issues

Cross Datacenter Replication (XDCR)

Issue Description
MB-27162 Revision-based conflict resolution did not work as expected as the revision number was not updated for a create that immediately followed a delete operation. The revision number of a deleted document was updated after the item was added to the checkpoint queue, which meant that when you recreate that document, the revision number was not being replicated intra-cluster or via XDCR. This has been fixed.

Security

Issue Description
MB-27203 The "default" bucket is a bucket that in versions prior to 5.0 was either suggested or automatically created for users during the install and configuration process with a goal of being compatible with memcached out of the box. As its intention was to allow users to quickly get started with Couchbase it permitted anonymous access, consistent with memcached behavior. Starting 5.0, all buckets require authenticated access.

However, there was a bug in 5.0.0 where under certain circumstances anonymous access could be allowed to the bucket. This issue only affected a bucket with the name "default" and could only be triggered by an authenticated user with administrative permissions. This issue has been fixed.

Tools

Issue Description
MB-26556 The couchbase-cli cluster-init command failed to initialize all services in the Community Edition as the default storage mode incorrectly pointed to Plasma, which is available in the Enterprise Edition, instead of ForestDB.

Release 5.0.0

Couchbase Server 5.0.0 was released in October 2017. This release includes new features and behavior changes. The following sections list the behavior changes, fixed issues, known issues, and deprecated items.

Major Behavior Changes Compared to Version 4.6

Here are the behavior changes in the product, compared to the previous (4.6.x) release.

  • Newly created buckets in 5.0 (including sample buckets) do not have any passwords associated with them. To access a bucket, a user must be created with appropriate roles to access using RBAC. See Bucket Full Access for details.
  • Important: Many 5.0 features require the latest versions of Couchbase SDK. It is critical to update the SDK before updating to 5.0. Upgrade according to the SDK versions listed in the SDK Compatibility chart below.
  • The TAP protocol which was previously deprecated, is now removed. TAP is an internal protocol that streams information about data changes between cluster nodes. TAP is replaced with a new protocol called Database Change Protocol (DCP).
  • Starting 5.0, port based buckets can only be created now through the bucket CLI command. Use the bucket-create command to create a port based bucket.
    Remember: Server-side moxi which drives port based bucket creation has been deprecated. Consider using client-side moxi instead.
  • For Windows, .exe installers which were previously deprecated are now removed and replaced with industry-standard MSI installer files. Consequently, any upgrade for the Windows platform from pre-5.0 version to 5.0 will need to be done in a rolling upgrade fashion. See Performing the Rolling Online Upgrade for details.
  • Re-designed Couchbase Web Console.

Known Issues and Limitations

The following table lists some of the known issues in this release.

Issue Description
MB-27203 Summary: The "default" bucket is a bucket that in versions prior to 5.0 was either suggested or automatically created for users during the install and configuration process with a goal of being compatible with memcached out of the box. As its intention was to allow users to quickly get started with Couchbase it permitted anonymous access, consistent with memcached behavior. Starting 5.0, all buckets require authenticated access. Also in 5.0 there is a bug where under certain circumstances anonymous access can be allowed to the bucket. This issue only affects a bucket with the name "default" and can only be triggered by an authenticated user with administrative permissions. This issue will be fixed in the next maintenance release.

Workaround: Do not define a bucket named "default" in your cluster configuration.

MB-26171 Summary: Creating two XDCR replications to the same cluster with different users is not supported.
MB-26126 Summary: When using Couchbase Server 5.0 with Sync Gateway 1.5+ and the Mobile Convergence feature is enabled in Sync Gateway (enable_shared_bucket_access), the count of non-resident documents reported in the UI may be incorrect.
MB-26085 Summary: Rebalance failure is observed if the index planner takes a long time ( > ns-server timeout) to execute.
MB-26065 Summary: Rebalance exits when loading the memcached RBAC file.
MB-26037 Summary: During a rebalance, if the destination node for a particular vBucket already has a previous, outdated version of that vBucket then the rebalance can initially fail.

Workaround: Retry the rebalance; the second attempt should succeed.

MB-26022 Summary: When a source topology changes, while the docs_processed and changes_left stats are both recomputed, only the changes_left stats in the statistics overview are updated. This leads to incorrect docs_processed and incorrect, potentially negative changes_left statistics.
MB-25938 Summary: Potential corruption of documents with extended attributes(XATTRs) during high concurrency.

If a document contains extended attributes (XATTRs) and a Key/Value mutation request changes one of those XATTRs, the previous XATTR values are written to in a non-atomic way. This means that there is a potential race if another concurrent request was also accessing the same document at the same time. The other request could read a partial or corrupted value for the document.

Note that this issue is believed to be very rare and has only been seen under synthetic data race analysis.

Workaround: Do not modify XATTRs on documents which already have them.

MB-25935 Summary: Data Service returns TEMP_FAIL for locked keys instead of LOCKED.

Data Service 5.0 adds extended error codes (XERROR) to provide richer error handling between newer, smart SDKs and the server. As part of this, attempting to mutate a document which is locked should return ERROR_LOCKED, however it incorrectly returns TEMP_FAIL.

Workaround: Check for both LOCKED and TEMP_FAIL error codes when using pessimistic locking.
MB-25909 Summary: When you upgrade the source node in a unidirectional replication from 4.1 to 4.6, the GoGC global setting was set to 0 instead of a higher number.
MB-25785 Summary: Resuming a backup process on ephemeral buckets fails if there was a data service rollback in the original backup that failed. This issue is observed when there is a failover shortly after starting the first backup in a backup repository. removing the original backup.

Workaround: Remove the original backup by using the --purge flag and then start the backup process again.

MB-25707 Summary: UI errors in XDCR are observed even though XDCR continues to function.
MB-23074 Summary: Performance issues may be observed when running Couchbase Server on CentOS 7.3 with kernel 3.10.0-514.6.
MB-22679 Summary: The Full Text Search service doesn't delete pindex files when deleting the index after a MOSS crash.
MB-21772 Summary: Full Text Search queries fail under high load on multi-node cluster due to a large number of connections.
MB-12000 Summary: The rebalance progress reported during delta recovery is confusing as certain phases like warmup are not tracked.

This section lists some of the limitations in different areas across the product:

Area Description
Powerful Query, Indexing, and Search
  • Index Replicas Placement

    When deciding the index nodes to place index replicas, the system takes into account to not place replicas onto the same node, and to distribute the replicas across as many server groups as possible. It then chooses the nodes the have the fewest number of indexes to place the replicas. In the future, we will improve the replica placement algorithm to better optimize the memory, CPU, and disk usage across the index nodes.

  • Index Rebalance

    When adding new indexer nodes to a cluster to increase the capacity for indexes, the system will not move existing indexes onto the new nodes. To rebalance indexes from existing nodes to the new nodes, user needs to eject the existing nodes and add the new nodes. The system will then move indexes from the ejected nodes to the new nodes while balancing resource utilization. This is known as swap rebalance.

    Rebalance will not take into consideration any explicit index placement specified when an index was created. A user cannot perform create/drop/build index during index rebalance.

  • Online Index Upgrade

    To perform online upgrade from version 4.x, you need to make sure all indexes on an index have at least one equivalent index (index with same definition) on other nodes. One then fails-over the index node, upgrades the node to version 5.0, and then adds the node back to the cluster. While the node is failed-over, the equivalent indexes on other nodes will be leveraged for queries.

    Once the system has been upgraded to 5.0, you can use swap rebalance to perform online upgrade to future versions.

Upgrade

If you are using GSI indexes with a previously GA'd release of Couchbase (such as 4.x) or Couchbase 5.0 Beta versions, we suggest that you drop the older index definitions and recreate them using 5.0 GA version with Plasma, the newly introduced storage engine for GSI.

N1QL Application Continuity:

In 5.0 Beta 1 release, N1QL introduced multiple performance enhancements enabled by a new internal protocol between Query and Index services. While upgrading large Couchbase cluster deployments, the cluster may be in a state where different Couchbase services are running on different versions. In such scenarios, this feature ensures seamless continuity for N1QL queries and applications irrespective of whether the query and indexing services are running a 4.x or 5.0 version. The N1QL clients can avail the 5.0 features and performance only when the issued query is processed by 5.0 query and indexing services.

Many 5.0 features require the latest versions of Couchbase SDK. It is critical to update the SDK before updating to 5.0. Upgrade according to the SDK versions listed in the SDK Compatibility chart.
We’ve replaced the Windows .exe installers with industry-standard MSI installer files in this release. Consequently, only rolling upgrades from 4.x or earlier versions to 5.0 are supported.
SDK Compatibility Many 5.0 features require you to upgrade your client SDK versions. The current versions that support the latest features are shown below, and regardless of needing new features, it is always advised to upgrade to the newest SDK version.
SDK Version Reference
Java 2.5.1 Release notes
.NET 2.5.0 Release notes
Node.js 2.4.0 Release notes
Python 2.2.6 Release notes
PHP 2.4.0 Release notes
Go 1.2.5 Release notes
C 2.8.0 Release notes

Fixed Issues

This section lists some of the important fixed issues in this release.

Data Service

Issue Description
MB-23976 The TOUCH command modifies a document and updates a CAS value too. However, the result of TOUCH incorrectly used a pre-updated CAS value and did not reflect the updated CAS.
MB-20091 Improvements to ForestDB's thread handling for improved compaction.
MB-16150 Fixed inconsistency in curr_items with full reviction on Data Greater than Memory (DGM).
MB-13087 When an item is locked and there’s actually a lot of load on the server, the server now returns a PROTOCOL_BINARY_RESPONSE_LOCKED response to the client application if the client application has enabled extended error codes.

Full Text Search Service

Issue Description
MB-23271 To improve readability, the stat keys in section mossScope are now sorted.
MB-22560 The FTS ports now adjust SSL cipher levels based on the COUCHBASE_SSL_CIPHER_LIST environment variable. SSL ciphers can be set to LOW, MEDIUM, or HIGH(default) levels.
MB-21855 Improved error messages for the following scenarios:
  • Creating an index with a name that already exists.
  • Creating an alias without target index.
MB-20939 Improved memory usage and resource containment for Full Text Indexes.
MB-18042 We’ve removed the Byte Array Converter dropdown on the Advanced tab of the Full Text Index editor as it contained a single value that couldn’t be changed.

Note that index definitions created in earlier releases will not work unless you remove the "byte_array_converter": "json" attribute value pair from the index definition JSON.

Indexing Service

Issue Description
MB-21594 Duplicate partitions removed during rebalance to prevent OOM (Out Of Memory error), and subsequent recovery problems.
MB-21156 As part of a number of improvements to logging, fixed an issue where couchdb.log wrapped too quickly.
MB-20297 For an index that was built with defer_build:true, the CREATE INDEX statement on the Indexes tab showed an invalid N1QL statement that could not be copied to run as is using cbq or the Query Workbench.

Installer

Issue Description
MB-22283 Installing and running Couchbase Server as a non-root and non-sudo user is now supported.
Query Service
Issue Description
MB-25103 Query Service authentication failed when the password contained a colon (":") character.
MB-24429 When fetching data, if the data node failed to respond due to some reason, the query could hang as there was no timeout specified. This has been addressed by passing the query request timeout parameter when fetching data.
MB-23150 The monitoring view for running queries provides details such as the node that’s processing the request, the client IP that initiated the request, and the running program type (i.e. WorkBench, CBC, Java, .NET, CBQ, etc.). This helps isolate rogue queries and unauthorized access.
MB-22831 Inserting a numerical value using a N1QL query caused the value to be stored in scientific notation.
MB-22273 In Couchbase clusters with multiple query service nodes, applications may get incorrect results from prepared N1QL queries that use covering indexes.
MB-22119 When using ARRAY expressions, query service may rarely panic with error referring to ‘slice allocations’.
MB-22105 The UPDATE, INSERT, UPSERT statements may fail with the error message: "Panic: : runtime error: slice bounds out of range", when running with increased pipeline_batch settings.
MB-22093 The query engine may intermittently throw error code 12008 because of a memory allocation failure.
MB-21928 The command line shell for N1QL, cbq, now connects to 8091 with http and 18091 with https by default when the port is not specified.
MB-19893 The SELECT RAW did not take ORDER BY into account, thus the results were not ordered.
MB-18769 Fixed an issue where a covered query with meta().type in the WHERE clause gave in correct results.

Security

Issue Description
MB-24088 The secrets management feature fails to encrypt secrets larger than 4KB (such as SSL certificates). This causes the cluster manager to unexpectedly terminate when saving the cluster configuration to disk.
MB-15624 You can now specify a SSL cipher list on Windows platform.

Tools

Issue Description
MB-25669 On Windows platform, the cbimport tool failed to import a tab delimited CSV file where the tab is specified using '\t' or '\\t'.
MB-20403 The cbbackupmgr merge command did not function correctly and caused data corruption under the following circumstances:
  • The bucket being backed up was flushed between incremental backups.
  • The bucket being backed up was deleted and re-created in between incremental backups.
  • The bucket had not been backed up between a document's deletion and the metadata for that deleted document being purged.
  • There had been a failover between incremental backups of the bucket.
MB-10093 Xmem XDCR network bandwidth can now be throttled if desired.
Web Console
Issue Description
MB-23251 The AutoComplete feature for the password field on the Web Console has been disabled.
MB-12480 The text displayed when changing the RAM quota for a bucket was misleading and has been fixed to reflect the actual ranges that the server will allow the bucket to be sized within.
MB-9658 The Web Console document browser for a bucket displays the ID and content sample of the documents in the bucket. The UI displayed only the first 16 characters and affected usability when viewing documents with keys longer than 16 characters. This has been fixed to display the full key name and wrap to the next line if needed.

XDCR

Issue Description
MB-22514 The XDCR target topology change detection process resulted in a large number of open connections which caused a high CPU usage. This has been fixed by reducing the number of connections to the target bucket.
MB-22172 If a mutation needs to be resent, sent_time is updated so that next mutation can be sent at the appropriate interval.
MB-21369 Fixed a replication connection leak caused by a failure to close connections to source nodes from the pipeline supervisor when replication was stopped.
MB-18961 Reduced default GoXDCR DCP checkpoint interval to 10 minutes for better progress during disruptions.
MB-10093 The XDCR network bandwidth can now be tuned using the Bandwidth Usage Limit parameter either from the Web Console or by using the couchbase-cli xdcr-replicate command.
MB-21879 Replication was stuck when some DCP streams were inactive for a long period and resulted in a race condition when the server tried to restart the inactive DCP streams.

New Supported Platforms

This release adds support for the following platforms:
  • Ubuntu 16.04
  • SUSE Linux 12
  • Oracle Linux 7
  • Microsoft Windows 2016
See Supported Platforms for the complete list of supported platforms.

Deprecated Features and Platforms

Starting this release, the following platforms are no longer supported:
  • Microsoft Windows 7
  • Microsoft Windows 8
  • Microsoft Windows 2008
  • Amazon Linux 2014.03
  • Ubuntu Linux 12.04
  • Debian GNU/Linux 7
  • Mac OS X 10.8, 10.9, 10.10
See Supported Platforms for the complete list of supported platforms.

The following functionality is deprecated, will be deprecated or is unsupported.

Function Description
CLI setting-ldap command This command is deprecated in this release. Use the admin-role-manage command instead.
BASE64() The BASE64() function is deprecated since version 4.5; use the function BASE64_ENCODE() instead.

Also, use the BASE64_DECODE() function to reverse the encoding done by BASE64_ENCODE().

Server-side moxi proxy is deprecated in Couchbase Server and CLI Use Couchbase client SDKs or client-side moxi in your applications.
CRAM-MD5 for bucket authentication Use SCRAM protocol supporting clients for bucket authentication starting Couchbase Server version 4.5.
Deprecate XDCR API from /internalSettings REST endpoint in 4.5 /Settings/replications REST endpoint will be available for all replication settings and provides the same functionality.
N1QL: Deprecated the use of path-expressions in FROM and JOIN clauses. FROM and JOIN clauses should use only keyspaces. Paths can be used for expressions in other clauses, operators, projections, and so on.
For example:
SELECT count(*) FROM `travel-sample`.schedule; 
can be rewritten as:
SELECT count(*)  FROM `travel-sample` WHERE schedule IS NOT MISSING;
CAPI based XDCR is deprecated. CAPI based XDCR is deprecated and will be removed in a future version of Couchbase Server.

Note that the support for Elasticsearch Plugin has not been removed. However, the Elasticsearch Plugin may be modified in the future to use an alternative connection method such as DCP or XMEM XDCR (XDCR v2).

Couchbase Enterprise Backup and Restore tool The tools, cbbackup and cbrestore, are deprecated from the Enterprise Edition. We recommend replacing these old tools with the new enterprise backup and restore tool introduced in version 4.5, cbbackupmgr.
Standard Global Secondary Indexes A new high performance storage engine for GSI, Plasma, replaces the existing GSI storage engine which is deprecated.