Release Notes for Couchbase Server 6.6


    Couchbase Server 6.6 adds features and enhancements to improve developer productivity, foster Cloud deployments, and enable operational analytics on globally distributed data.

    Take a look at What’s New? for a list of new features and improvements in this release.

    Release 6.6.0 (August 2020)

    Couchbase Server 6.6 was released in August 2020.

    Major Changes in Behavior from Previous Releases

    This section notes major changes in behavior from previous releases.

    • Search queries from N1QL

      Previously, for SEARCH queries from N1QL, you could use any analyzer for queries that do not use an analyzer (Term, Phrase, Multiphrase, Fuzzy, Prefix, Regexp, WildCard queries). However, this caused inconsistent results between covered and non-covered queries. To ensure consistent results with covering and non-covering index queries, a keyword analyzer for queries that don’t use an analyzer is mandated.

    New Supported Platforms

    This release adds support for the following platforms:

    • Red Hat Enterprise Linux (RHEL) 8.2

    See Supported Platforms for the complete list of supported platforms.

    Deprecated Features and Platforms

    Deprecated and Removed Platforms

    • Ubuntu 16.04 is deprecated.

    • Debian 8 is no longer supported.

    • Java Runtime Environment(JRE) Version 8 is no longer supported. The Analytics Service requires JRE Version 11 or later to be installed.

    Deprecated and Removed Features

    • The cbbackup, cbrestore, and cbbackupwrapper utilities are deprecated in this release.

    Known Issues

    This section highlights some of the known issues in this release.

    Analytics Service

    Issue Description


    Summary: When creating a secondary index with composite fields, and one or more of these fields have a numeric type (int, double), the Analytics service may run into repeated ingestion failure when a document is updated such that the indexed numeric field value changes between a real value and NULL or MISSING.

    Workaround: To avoid running into this issue, make sure the indexed numeric fields always have values (i.e. not NULL or MISSING), or drop any composite fields indexes that have numeric fields.


    Summary: The Analytics service throws an error when creating a link from an IPv4 configured cluster to an IPv6 configured cluster.

    Workaround: Set the jvmArgs on the Analytics Service to "" and restart the Analytics cluster. For example, curl -u Administrator:password -X PUT 'http://localhost:8095/analytics/config/service' --data-urlencode ''.


    Summary: If an identifier for a metadata entity (e.g. a dataverse or a dataset) contains characters that require URL encoding (percent-encoding) when used in a URI, requests that use this identifier can fail with an URISyntaxException.

    Workaround: Construct identifiers using characters that do not require URL encoding.


    Summary: When using alternate addresses for remote links, at least one node in the remote cluster must have the management[SSL] port exposed, and ALL data(KV) nodes have the kv[SSL] port exposed. Failure to do so will result in a 400 (Bad Request) when creating or altering a link.


    Summary: Currently, the roles, cluster_admin and bucket_admin, are incorrectly allowed to read analytics data as the analytics permissions aren’t explicitly excluded from the roles. The current Analytics REST API documentation also mention that a cluster_admin can access several APIs and perform Analytics operations.

    However,these roles should not be able to read any data and this behavior is planned to be fixed in an upcoming release. Note that once the fix is implemented, the cluster_admin role will not be able to perform any Analytics operations, which may cause a backward compatibility issue.


    Summary: In cases where the input to IN subclause with EVERY quantifier is MISSING or NULL, Analytics and Query engines differ in behavior. The Analytics service treats MISSING or NULL input values(in this case) as equivalent to an empty array, which results in the whole EVERY … IN … expression returning TRUE, while the Query service returns MISSING if the input is MISSING (or NULL if the input is NULL).

    Workaround: Use the IS KNOWN predicate to test whether the IN value is not NULL/MISSING. WHERE (x IS KNOWN) AND (EVERY y IN x SATISFIES …​ END)

    Search Service

    Query Service

    Issue Description


    Summary: While adding support for explicit connections to IPv4, IPv6, or both for external communications for both HTTP and TLSUnique listeners, a considerable degradation in throughput was observed on Windows platform when using IPv6. This is caused by an underlying issue in Golang.

    Fixed Issues

    This section highlights some of the issues fixed in this release.

    Cluster Manager

    Issue Description


    Summary: To help troubleshoot issues, the cluster manager now reports information on /proc/vmstat allocstall.

    Cross Data Center Replication (XDCR)

    Issue Description


    Summary: XDCR does not apply the correct alternate address heuristic

    Eventing Service

    Issue Description


    Summary: Fixed an issue where recursion detection caused an Out-of-Memory exception when allowInterBucketRecursion was set to true.


    Summary: Following a KillAndRespawn restart, the "from-now" directive was ignored and started from 0 instead of the expected start from current sequence number. This has been fixed.


    Summary: The Eventing service crashed due to a race condition between undeploy and delete. This has been fixed.


    Summary: To help distinguish slow performing queries from Eventing JavaScript code, Eventing service now adds a default clientContextId to every N1QL query fired from an Eventing function.


    Summary: To avoid inter-function recursion through N1QL statements, Eventing service now performs recursion checks for static N1QL statements in Eventing functions.


    Summary: Fixed an issue where the timer scan time kept increasing on an idle cluster with a timer handler.


    Summary: Fixed an issue where the eventing consumer RSS did not honor Eventing memory quota for bucket operations with small documents.


    Summary: Fixed an issue where cbevent failed to run with localhost.


    Summary: The Eventing log files permissions were excessively restrictive (0600), which prevented them from being processed by third-party tools. The log files permissions have been updated (0640).


    Summary: The Eventing status is now displayed right alongside the handlers in the web console(UI).


    Summary: Added the ability to cancel timers.


    Summary: Fixed an issue where a timer created during a timer execution was not triggered.


    Summary: Fixed an issue where timers were not cancelled if multiple timers were created with the same reference.


    Summary: When slow eventing functions were deployed first with feed boundary set to "everything", subsequent functions on the same source bucket were starved due to DCP backing up. This has been fixed.


    Summary: Eventing timers can now be cancelled using cancelTimer() function, or by creating a new timer with same reference as an existing timer. In addition, a function that is invoked by a timer callback can create fresh timers.

    Index Service and Views

    Issue Description


    Summary: To help troubleshoot memory usage issues with the storage engine, lastGCSn and currSn will now be exposed as MOI storage stats.


    Summary: Fixed a runtime error caused by invalid memory address or nil pointer derefernce by adding compression correctness checks.


    Summary: The index service now sets a more contextual user-agent in HTTP requests to the cluster manager(ns_server).


    Summary: Fixed the index service to re-generate protobuf files (.pb.go) files when .proto files are updated.


    Summary: During index definition operations, the cluster info cache is updated multiple times. In a cluster with large number of buckets, refreshing the cluster info cache took a long time and slowed down these operations. This has been fixed.


    Summary: Fixed a rare race condition that caused the index service to be stuck in the warmup state. This has been fixed by increasing the default size of the feed’s backch.


    Summary: During bulk inserts of heavy workloads, index sync was observed to take a long time. This has been addressed by optimizing indexing of incremental workloads for insert heavy scenarios.

    Query Service

    Issue Description


    Summary: The Index Advisor now supports virtual keyspace for DELETE, MERGE, and UPDATE statements.


    Summary: The Query service now supports explicit connections to IPv4 or IPv6 or both for extexternal communications for both HTTP and TLSUnique listeners. And the Query service will fail to start if it cannot listen on all required ports.

    Note that when using IPv6 on Windows platform, this can cause a considerable degradation in throughput due to an underlying issue in Golang.

    Search Service

    Tools, Web Console (UI), and REST API

    Issue Description


    Summary: The couchbase-cli failover has been updated to perform a hard failover without passing the unsafe flag.

    Release Notes for Older 6.x Versions