Release Notes

Release Notes

Couchbase Server 4.5 leaps forward with simplified transitioning from RDBMS to NoSQL, advanced database performance and scale, and enhanced management and security controls on your data. Take a look at What's new for a list of new features and improvements that are available in this release.

Release 4.5.1

Couchbase Server 4.5.1, released in October 2016, is the first maintenance release in the 4.5.x series for Couchbase Server.

Behavior Changes

This section lists the behavior changes in the product compared to the previous release.

Path expression in the FROM clause is no longer supported. Any queries that use the path expression in the FROM clause will fail. For example, the following query will fail:
SELECT <field2> FROM <bucket1>.<field1>;
You must rewrite the queries using the path expression in the projection instead. For example, rewrite the query above as follows:
SELECT <field1>.<field2> FROM <bucket1>;

Known Issues

This list covers some of the known problems with Couchbase Server 4.5.1. Please read this before reporting any new bugs, and watch for updates as new bugs are discovered.
Issue Description
MB-20403

The cbbackupmgr merge command will not function correctly and may cause data corruption under the following circumstances:

  • The bucket being backed up is flushed between incremental backups
  • The bucket being backed up is deleted and re-created in between incremental backups
  • The bucket has not been backed up between a document's deletion and the metadata for that deleted document being purged
  • There has been a failover between incremental backups of the bucket

For more information about the Merge functionality, see cbbackupmgr merge.

Workaround: In the interim, the recommendation is to perform a full backup if you experience any of the above scenarios. This will lead to longer backup times than performing incremental backups, but will avoid potential data corruption due to to the aforementioned issue.

MB-21597 In the case of concurrent sub-document API operations from multiple clients, Couchbase Server does not honor the atomicity. This can result in one update overwriting the previous update, even though the previous update was successful as far as the client is concerned.

Workaround: For use cases where sub-document API is being used and are covered by an Enterprise Edition license, contact Couchbase Support. For all other cases, Couchbase recommends that you do not use the sub-document API feature for concurrent updates.

MB-21038 During rolling upgrade from Couchbase 4.0 to 4.5, if the query node is upgraded to 4.5 and the index node is on 4.0, stale=false query can crash the indexer.

Workaround: Upgrade the index node to 4.5 first before query nodes.

MB-20509 Couchbase Server 4.5.x is not supported on the macOS Sierra (OS X 10.12) platform.

Workaround: We are working on a fix and recommend that you do not upgrade the OS X version to macOS Sierra until the patch with the fix is available.

MB-20338 During the source cluster rebalancing, in some cases when a node is removed, the outbound XDCR mutation statistics show a negative number.
MB-20337 XDCR does not send all the mutations when the target cluster is rebalancing.

Workaround: Wait for a few minutes (3-4mins) after the rebalance operation completes for XDCR to pick up from the last checkpoint..

MB-19846 A rebalance failure due to DCP disconnection can occur on an idle DCP connection if no-op messages cannot be exchanged due to network congestion and/or heavy CPU usage.
MB-19806 Online upgrade from versions 2.x or 3.x to 4.5.x may fail.

Workaround: Upgrade to version 4.0/4.1 first, and then upgrade to the latest 4.5.x version. For more information, see Upgrade Matrix.

MB-17433 An error is thrown when trying to create more than 10 full-text indexes.

Workaround: Reduce the setting maxPartitionsPerPIndex to a number lower than 32 (default), such as 16.

Fixed Issues

Table 1. Updated: October 18, 2016
Issue Description
MB-20519 Windows 10 Anniversary Edition Developer Preview for Couchbase Server 4.5.1 is available. Get the Windows 10 Anniversary Edition Developer Preview build from the Downloads page.
Table 2. Released: October 04, 2016
Issue Description
MB-21409 Support for Amazon Linux Version 2016.03 has been added.
MB-20697 Certain types of disk write failures did not trigger the correct alert and the ep_item_commit_failed stat incorrectly remained 0.
MB-20653 Memory leak in XDCR when replication streams are restarted.
MB-20593 Auto-compaction settings for indexes could not be altered after changing any GSI settings.
MB-20592 Pausing and resuming an existing XDCR replication caused XDCR to panic.
MB-20521 Memory leak occurred in Cluster Manager when query service was enabled.
MB-20492 The collection operators FIRST, ARRAY, ANY, EVERY, and ANY AND EVERY did not work with covering indexes if there was a condition in the collection operator.
MB-20441 When XDCR getMeta receives an error that is not a network timeout type, it repairs the network connection and continues in a loop to read from the client until a timeout occurs after 2 minutes. In this window, XDCR replication appeared stuck.
MB-20425 Data service (memcached): Increment/decrement operation could hang when used on buckets with full eviction mode.
MB-20381 If a value being inserting using N1QL exceeded MAXINT64, the value was truncated.
MB-20284 Although cbbackupmgr list is a passive command, running it caused data files to grow in backup directories.
MB-20232 Memory optimized indexes showed varying fragmentation levels in the UI.
MB-20196 ForestDB iterator returned FDB_RESULT_ITERATOR_FAIL error upon document deletion causing incorrect items in a list to be returned.
MB-20195 During index selection, we compare the expression in the index key with the expression in the query predicate for equivalence. NULL was not compared equivalent to NULL, and MISSING was not compared equivalent to MISSING.
MB-20178 Indexer service when using memory optimized indexes did not correctly honour the memory quota and kept consuming memory causing out of memory situations for the operating system.
MB-20171 Updating the administrator password with couchbase-cli removed the read-only user account.
MB-20166 N1QL failed to recognize the DistinctScan operator when using DISTINCT in a prepared statement.
MB-20164 The query engine internally represents all numbers as float64. This lead to rounding errors at the margins. In particular, with large CAS values, the rounding errors caused CAS mismatch errors.
MB-20162 Bucket level auto-compaction settings based on size did not work properly when the document size reached or exceeded the configured size thresholds.
MB-20156 During secondary indexes client instantiation, a race condition while waiting for multiple indexes nodes resulted in the index service crashing.
MB-20153 Canceling the index service request or a network write error caused the indexer to crash.
MB-20116 Race condition in the index service caused it to hang while going to a paused state when recovery was in progress.
MB-20112 Double-free causes segmentation fault in ForestDB.
MB-20111 Re-inserting documents to same offset caused ForestDB to assert.
MB-20102 The compaction daemon incorrectly passed the purge seqno to development design documents preventing Couchbase Server from reclaiming the disk space.
MB-20076 When two threads are operating on one bucket, with one thread adding documents in batches and the second thread using an iterator to read and validate every document key, the iterator skipped some documents that should have been returned.
MB-20058 When a subquery had the aggregate function COUNT() and the parent query did not have it, a wrong query plan was generated by adding IndexCountScan operator in both the subquery and the parent query. This caused incorrect results and in some cases wrong format.
MB-20054 Attempting to delete a bucket when there are non-zero number of items pending to be sent (DCP backfill) caused Memcached to abort.
MB-20021 The cbbackup tool created an incorrect directory structure when empty buckets preceded non-empty buckets alphabetically.
MB-20008 Security upgrade for cURL to version 7.49.1.
MB-19971 The DELETE statement with RETURNING clause caused the query engine to panic.
MB-19920 Following a failed backup, restarting the backup with the --resume option in cbbackupmgr could result in some items being skipped.
MB-19893 When using DISTINCT with RAW and ORDER BY, the results were not ordered.
MB-19892 Data Service would memory leak or even crash if a DCP producer was closed when backfills were still present.
MB-19885 An error occurs when invoking the couchbase-cli server-info command.
MB-19862 When restoring a lot of backups, cbbackupmgr uses too many file descriptors.
MB-19861 Different query results were returned depending on whether an index was present or not.
MB-19843 View engine failed with DCP start sequence number greater than end sequence number error and failed to roll back. This caused view engine indexing issues.
MB-19832 XDCR would temporarily get stuck in a loop when a node, which was previously removed from a cluster, rejoined the cluster. This issue was observed when the cluster contained multiple Couchbase Server versions and no mutations had previously been replicated.
MB-19819 Stopping and restarting V1 (CAPI) XDCR caused XDCR to fail.
MB-19804 Empty IN and WITHIN predicates caused queries to time-out.
MB-19774 An Index service crash was caused by a race condition when the indexer was trying to roll back and was using standard global indexes.
MB-19770 When the character “!” was used instead of “NOT” in N1QL, incorrect results were produced instead of throwing an error.
MB-19764 Malformed or unknown roles error was thrown when using CLI to configure RBAC for administrators.
MB-19761 Some FIRST and ARRAY expressions in the SELECT statement were not recognized as aggregate expressions.
MB-19757 TLS configuration on the port 11207 was lost when the data service was restarted.
MB-19744 On Windows platform, allocating memory for the document key could result in a stack overflow error when the number of documents was large.
MB-19705 When a document containing large array was indexed and the value of max_array_seckey_size was set to a very small value, a mutation in the document array caused the indexer to panic.
MB-19697 More than one XDCR replication instance might start after replication is resumed, resulting in incorrect functional behavior and performance impact.
MB-19659 The query SELECT COUNT(*) did not work correctly when used in a prepared statement.
MB-19599 The Couchbase Web Console and REST API over HTTPS did not work for center web clients such as Chrome 50 or higher that send elliptic curve X25519 requests for TLS.
MB-19509 Query with encoded plan erroneously set the wrong plan in prepared statement cache.
MB-19319 Executing Couchbase log collection from the UI would hang on SUSE 11.
MB-18841 Query execution time was higher when the encoded plan was sent along with the name on a prepared query.
MB-18452

Rebalance would fail or be slow when re-balancing large buckets. This has been fixed to make rebalance more reliable and performant.

MB-18426 Data service performance has been improved by decreasing the default number of concurrent compactions to 1.

For the full list of issues fixed in release 4.5.1, check the following JIRA query.

N1QL Enhancements

Issue Description
MB-20067 Added a new N1QL string function SUFFIXES() which produces all suffix substrings of a given string or parameter. This function helps process LIKE ‘%substring%’ queries efficiently.
MB-19953 Performance improvement for DISTINCT operator processing.
MB-19857 The UPDATE statement is enhanced to evaluate functions and expressions in the FOR-clause. Its syntax is enhanced to support multiple nested FOR clauses to access and update fields in nested arrays.
MB-19809 When constructing objects in a N1QL query, the names of fields in name-value pairs can be dynamically generated.
MB-19777 When constructing objects in a N1QL query, the names of fields in name-value pairs is made optional. For example, the following query is valid in 4.5.1 and implicitly assigns names “type” and “name” for respective values:
SELECT {type, name} FROM `travel-sample` LIMIT 2;
MB-19733 Prior to 4.5.1, many expressions and predicates that can use an index did not do so. This optimization fixes this issue. For example, the type of queries that can benefit from this are :
CREATE INDEX idx_b ON default(b);
                  EXPLAIN SELECT * FROM default WHERE 1 IN b;
                  CREATE INDEX idx_and ON default(a = 5 AND b = 6);
                  EXPLAIN SELECT * FROM default WHERE a = 5 AND b = 6;
MB-19680 Added a new N1QL array function ARRAY_INTERSECT() which takes two or more arrays as parameters and returns the intersection of the input arrays as the result. It returns an empty array if there are no common array elements.
MB-19575 Performance optimization for COUNT() queries with LIKE "prefix%". When applicable, N1QL uses the IndexCountScan operator and pushes down the count to indexer.
MB-19574 This enhancement enables queries with LIKE predicates to use an index that is defined with a covering predicate. For example, if index is created with LIKE ‘string1%’ , then queries with LIKE ‘string1string2%’ will use the index.
MB-19150 A new query parameter pretty is added to enable/disable pretty formatting of query result. When set to false, the white space characters are stripped from the query results, which reduces the number of bytes transferred over the network. The performance benefits are significantly visible with large result sets.
MB-18482 Performance optimization to push down LIMIT to the indexes, resulting in fewer rows emitted from indexes, faster query filtering, and quicker stop.

For the complete list of N1QL enhancement in this release, check the following JIRA query.

Release 4.5.0

Couchbase Server 4.5 was released in June 2016.

The version 4.5 of Couchbase Server includes new features and behavior changes. The following sections list the behavior changes, fixed issues, known issues, and deprecated items.

Behavior Changes

Here are the behavior changes in the product, compared to the previous release:

  • Disabling scientific notation for integers. With this change, large integers are no longer displayed in the scientific notation in N1QL. For example, large numbers will no longer be reported in the scientific format: "Column1": 9.223372036854776e+18. Instead, Couchbase Server will return "Column1": 9223372036854775807. Details for the change can be found in MB-14720.
  • PENDING index state is now represented as DEFERRED and BUILDING. With this change, global secondary indexes no longer display a PENDING state under the status in SYSTEM:INDEXES. Instead, global secondary indexes that are actively being built display BUILDING and global secondary indexes that are created with the DEFER_BUILD option display DEFERRED for the status attribute in the SYSTEM:INDEXES output in N1QL. Details for the change can be found in MB-14679.
  • When the GROUP BY clause is present in a N1QL query, it is not valid to have any fields in SELECT <projection_list> expressions that are either not referred in GROUP BY expressions, or not in the aggregate functions in the <projection_list>. Further, the GROUP BY clause is required (on the non-aggregated field) if the <projection_list> has some fields aggregated and some not. This correct GROUP BY behavior is enforced, because each result row might otherwise have more than one possible value for the ungrouped columns/fields. If a query doesn't follow this rule, error code 4210 with message "Expression must be a group key or aggregate: .... " is thrown.
  • The new backup tool is called cbbackupmgr, and it is not backward compatible with older backup files from previous releases. If you want to take a backup of a previous release and then load and restore it in Couchbase Server 4.5, you should use the old cbbackup tool (not the new cbbackupmgr). After you restore the data into version 4.5, you can start using the cbbackupmgr for subsequent backup/restore operations to other Couchbase Server 4.5 nodes.
  • With the new cbbackupmgr tool, if you're trying to restore a SASL protected bucket, then you need to first create a bucket with a SASL password on the target cluster before you run the restore operation.
  • New network ports:
    Table 3. New Network Ports in Couchbase Server 4.5
    Port Description Node-to-node Node-to-client Cluster administration XDCR v1 (CAPI) XDCR v2 (XMEM)
    8094 External FTS HTTP port Yes Yes Yes No No

Known Issues

This list covers some of the known problems with Couchbase Server 4.5.0. Please read this before reporting any new bugs, and watch for updates as new bugs are discovered.

Issue Description
MB-20403

The cbbackupmgr merge command will not function correctly and may cause data corruption under the following circumstances:

  • The bucket being backed up is flushed between incremental backups
  • The bucket being backed up is deleted and re-created in between incremental backups
  • The bucket has not been backed up between a document's deletion and the metadata for that deleted document being purged
  • There has been a failover between incremental backups of the bucket

For more information about the Merge functionality, see cbbackupmgr merge.

Workaround: In the interim, the recommendation is to perform a full backup if you experience any of the above scenarios. This will lead to longer backup times than performing incremental backups, but will avoid potential data corruption due to to the aforementioned issue.

MB-21597 In the case of concurrent sub-document API operations from multiple clients, Couchbase Server does not honor the atomicity. This can result in one update overwriting the previous update, even though the previous update was successful as far as the client is concerned.

Workaround: For use cases where sub-document API is being used and are covered by an Enterprise Edition license, contact Couchbase Support. For all other cases, Couchbase recommends that you do not use the sub-document API feature for concurrent updates.

MB-20519 Couchbase Server 4.5 is not supported on Windows 10 Anniversary Update.

Updated October 18, 2016: Windows 10 Anniversary Edition Developer Preview for Couchbase Server 4.5.1 is now available. Get the Windows 10 Anniversary Edition Developer Preview build from the Downloads page.

MB-20509 Couchbase Server 4.5 is not supported on the macOS Sierra (OS X 10.12) platform.

We are working on a fix and recommend that you do not upgrade the OS X version to macOS Sierra until the patch with the fix is available.

MB-19920

When backup fails and you restart the backup with the --resume flag, it may cause items to be skipped. Consequently, if you then restore this backup, the items in the bucket may not be the same as the original.

Workaround: When restarting backup, use the --purge flag to remove the partial backup and restart from the point of the previous successful backup.
MB-19892 After a hard failover, you may not be able to re-add a node with data service because the old vBucket files were not deleted.

Workaround: Restart Couchbase Server on the removed node before adding it back to the cluster.

MB-19861 Different query results are returned depending on whether the index is present or not.

Workaround : This happens when the UNION/INTERSECT is within the subquery of the FROM clause when one branch is a covering scan and other is not. The workaround is to create covered indexes for both the branches.

MB-19846 A rebalance failure due to DCP disconnection can occur on an idle DCP connection if no-op messages cannot be exchanged due to network congestion and/or heavy CPU usage.
MB-19764 Malformed or unknown roles seen when using the CLI.

Workaround: Retry your command in the CLI using the following role strings - admin, ro_admin, cluster_admin, replication_admin, bucket_admin[<bucket name> or '*'], views_admin[<bucket name> or '*']

MB-19715 When using RAW in N1QL query with the ORDER BY clause, the output result set is not sorted.
Workaround:
  • Use client side sorting.
  • Don't use RAW and work with the default JSON output which is sorted with ORDER BY.
MB-19706

MB-19806

Online upgrade from 2.x or 3.x versions to 4.5 may fail.

Workaround: Upgrade to version 4.0/4.1 first, and then upgrade to the latest 4.5. For more information, see the supported Upgrade Matrix.

MB-19599 The Server Web Console UI and REST API over HTTPS doesn't work for center web clients like Chrome 50 or higher that send elliptic curve X25519 requests for TLS.

Workaround: Use other browsers that do not use X25519 such as Firefox, Internet Explorer, or Chrome (version 49 or below).

MB-19582 Backing up a cluster when rebalance is in progress causes an error.

Workaround: Wait for the rebalance to complete before taking a backup.

MB-19432 Rebalancing during indexing with 5 or more indexes and replicas is observed to be slow.

Workaround: Allow sufficient time for rebalance to complete. You may want to consider deleting indexes before rebalancing if that is an option.

MB-19319 On SuSE 11, log collection from the UI hangs.

Workaround: Run cbcollect_info from the command line instead.

MB-19271 Idle nodes with the search service were observed to suddenly consume 100% CPU.

Workaround: This behavior typically occurs every 8 hours and the CPU usage typically returns to normal levels in a few minutes. Consider adjusting the ForestDB compaction settings to trigger more frequent compactions or run compactions when the cluster is idle.

MB-17433 An error is thrown when trying to create more than 10 full text indexes.

Workaround: Try reducing the setting maxPartitionsPerPIndex to a number lower than 32 (default), such as 16.

Fixed Issues

Issue Description
MB-19503 Pauses in creating and closing a DCP stream were observed even if there were just a few mutations.
MB-19369 Index path was case sensitive and caused trouble when communicating with the indexer.
MB-18975 On a multi-node cluster, two cbq shell sessions connected to distinct nodes could have a window where index metadata was not fully synchronized.
MB-18935 When XDCR replication experiences issues with connections to target, it recovers by dropping the existing connection and setting up new connections. Sometimes the attempt to set up new connections failed with "connections reset by peer" error.
MB-18096 When adding a node to the cluster, add-node did not correctly deploy the services selected.
MB-17485 When using cbtransfer to move data between buckets, a "pump_mc fail" error message was observed.
MB-17446 During a delta node recovery, rebalance did not complete if the nodes were down.
MB-17009 ForestDB would hang during initial index build.
MB-16947 ForestDB files were not deleted from disk if index drop was executed when index building was in progress.
MB-16831 When using GSI, the interactive query shell, cbq, timed out if the result was not returned within 2 minutes. Although the index was successfully created, the error message is unclear.
MB-16766 Starting Couchbase Server on an undersized AWS instance can result in the server continually crashing and restarting.
MB-16656 Rebalancing failed when replica indexes were enabled on Views as the data service was returning an incorrect high sequence number to the View engine.
MB-16618 View queries with the options reduce and group set to true when parameterized by a list of keys that are not in ascending order can produce results that are not properly reduced.
MB-16385 Querying a view with a reduce function based on a subset of partitions resulted in a massive memory usage.
MB-16085 When view building was in progress, and the view is dropped, indexing still continued to happen consuming CPU resources.

For the full list of issues, check the following JIRA query.

Deprecated Items

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

Function Description
BASE64() The BASE64() function is deprecated in this release; 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 4.5 Use Couchbase client SDKs or client-side moxi in your applications.
CRAM-MD5 for bucket authentication Use SCRAM protocol supporting clients for bucket authentication in Couchbase Server version 4.5. SCRAM protocol for bucket authentication will first be introduced in Java, followed by other SDK clients.
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, cbbackupmgr, in version 4.5.

Unsupported Platforms

The following platforms are no longer supported:
  • Microsoft Windows 32-bit OS
  • Mac OS 10.8