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

    MB-40727

    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.

    MB-40693

    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 "-Djava.net.preferIPv4Stack=false" and restart the Analytics cluster. For example, curl -u Administrator:password -X PUT 'http://localhost:8095/analytics/config/service' --data-urlencode 'jvmArgs=-Djava.net.preferIPv4Stack=false'.

    MB-40576

    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.

    MB-40400

    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.

    MB-39883

    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.

    MB-36461

    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

    MB-39990

    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

    MB-38715

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

    Cross Data Center Replication (XDCR)

    Issue Description

    MB-39687

    Summary: XDCR does not apply the correct alternate address heuristic

    Eventing Service

    Issue Description

    MB-40767

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

    MB-40009

    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.

    MB-39878

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

    MB-39874

    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.

    MB-39713

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

    MB-39399

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

    MB-39335

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

    MB-39080

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

    MB-38793

    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).

    MB-38731

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

    MB-38729

    Summary: Added the ability to cancel timers.

    MB-38554

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

    MB-38533

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

    MB-38321

    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.

    MB-28734

    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

    MB-39605

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

    MB-39512

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

    MB-39452

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

    MB-39420

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

    MB-39114

    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.

    MB-38988

    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.

    MB-38864

    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

    MB-38929

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

    MB-31105

    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

    MB-39220

    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