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.
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.
Cross Datacenter Replication (XDCR)
|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.|
|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.
|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.|
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.
|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:
|Powerful Query, Indexing, and Search||
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.|
This section lists some of the important fixed issues in this release.
|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
|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:
|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.
|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.|
|MB-22283||Installing and running Couchbase Server as a non-root and non-sudo user is now supported.|
|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.|
|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:
|MB-10093||Xmem XDCR network bandwidth can now be throttled if desired.|
|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.|
|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
- Ubuntu 16.04
- SUSE Linux 12
- Oracle Linux 7
- Microsoft Windows 2016
Deprecated Features and Platforms
- 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
The following functionality is deprecated, will be deprecated or is unsupported.
|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.
can be rewritten as:
|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.|