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.1 (December 2020)

    Couchbase Server 6.6.1, released in December 2020, is the first maintenance release in the 6.6.x series for Couchbase Server.

    In addition to bug fixes in multiple components, this release also includes a few enhancements in Eventing and Search services.

    New Features

    • Support for additional advanced bucket operations (which support CAS and TTL operations) and distributed atomic counters from Eventing functions. For details, see Eventing Language Constructs.

    • Full text search queries now support pagination and scoring. For details, see Understanding Queries.

    Deprecated Features and Platforms

    Deprecated and Removed Features

    • The xdcr-replicate --xdcr-replication mode flag is deprecated for capi and should no longer be used. XDCR will now always use the value xmem.

    Known Issues

    This section highlights the notable known issues in this release.

    Eventing Service

    Issue Description

    MB-43272

    Summary: The Eventing Metadata bucket is not being cleared when handlers are undeployed from the paused state. If the handler is using timers, this can also result in timers not being removed as expected, that can then fire and execute on a subsequent deployment.

    Workaround: Do not undeploy handlers from the paused state in version 6.6.1.

    MB-43343

    Summary: Handlers can hang in the deploying state due to a race condition during rebalance-in of an Eventing node if more than one function has the same source bucket in version 6.6.1.

    Workaround: Ensure that you pause handlers before any rebalance.

    Fixed Issues

    This section highlights the notable issues fixed in this release.

    Analytics Service

    Issue Description

    MB-40727

    Summary: After upgrading to 6.6.1 a rebalance might be required to repair composite secondary indexes that contain NULL or MISSING.

    MB-40693

    Summary: Fixed an issue where the Analytics service threw an error when creating a link from an IPv4 configured cluster to an IPv6 configured cluster.

    MB-40576

    Summary: If an identifier for a metadata entity (e.g. a dataverse or a dataset) contained characters that require URL encoding (percent-encoding) when used in a URI, requests that used this identifier failed with an URISyntaxException. This has been fixed.

    Cluster Manager

    Issue Description

    MB-41183

    Summary: For audit events from memcached, "peername" and "sockname" have been renamed to "local" and "remote" with the syntax: {"ip":"hostname","port":1234}.

    Cross Data Center Replication (XDCR)

    Issue Description

    MB-41239

    Summary: Fixed an issue where the user intent heuristic was incorrect for full-encryption when XDCR reference did not provide a port number.

    MB-40847

    Summary: Fixed an incorrect XDCR stream request rollback caused by a consumer ahead of producer error.

    Data Service

    Issue Description

    MB-41866

    Summary: Fixed an infinite loop due to HdrHistogram being reset.

    MB-41089

    Summary: The HTCleaner in Ephemeral is responsible for purging tombstones and also Completed (Committed / Aborted) SyncWrites. A bug in that component led to removing in-flight SyncWrites from internal data-structures, which would cause a crash on the node when/if it tried to complete the SyncWrite.

    Eventing Service

    Issue Description

    MB-42167

    Summary: The api/v1/list/functions returned incorrect list of handler names. This has been fixed by updating the bucket function map after storing in the primary store.

    MB-41940

    Summary: The Web Console UI did not display the very first line of Eventing logs and has been fixed. (Note that the logs files in the file system contained the correct information without any truncation).

    MB-41509

    Summary: Fixed an issue where the Eventing debugger crashed when using toLocaleString in JS.

    MB-41091

    Summary: The debugger link has been updated, from chrome-devtools:// to devtools://, to adapt to different Chrome versions.

    MB-40945

    Summary: Fixed an exception thrown when data sent in the request body to deploy a handler was null.

    MB-40731

    Summary: Fixed the function handler so that a paused handler can only be resumed using /resume. Previously, it was possible to resume a paused handler using /deploy.

    MB-40637

    Summary: Fixed an issue where upon upgrading from version 6.0.x to 6.6, a handler that uses N1qlQuery would stop working on nodes that were upgraded and threw an error (ReferenceError: N1qlQuery is not defined) when it hit the line that calls N1qlQuery. With this fix, handlers will continue to work the same way in older and newer nodes.

    MB-40636

    Summary: Improved automation of failover handling in Eventing service in several scenarios.

    MB-40522

    Summary: Fixed an issue where delete mutation on a src bucket from OnUpdate() was not suppressed.

    MB-40518

    Summary: Eventing service was not retrying bucket ops failures that were retryable like ETMPFAIL that could be retried. This has been fixed and will now retry until the script timeout.

    MB-40357

    Summary: Fixed an issue so that a function action does not deploy and execute on mutations after a REST API validation error.

    Index Service and Views

    Issue Description

    MB-43231

    Summary: Starting with version 6.5.0, VbSeqnosReader has been updated to process two types of requests: VbSeqnosRequest and VbMinSeqnosRequest. When processing VbSeqnosRequest, if there are any VbMinSeqnosRequest’s, then the VbMinSeqnosRequest’s will be queued back into the requestCh of VbSeqnosReader. However, if the VbSeqnosReader closed by this time, then enqueue would fail and the caller would be waiting for a response indefinitely. This has been fixed to respond to outstanding requests upon exit of VbSeqnosReader.

    MB-42614

    Summary: Fixed an issue where rebalance failed due to timestamp mismatch between snapshots.

    MB-42108

    Summary: Fixed an issue where multiple partition tombstones for an index during rebalance could lead to partition cleanup on restart.

    MB-41722

    Summary: Fixed an issue in the waitForIndexBuild routine which caused it not to terminate at the end of the batch and remain active till the end of rebalance. As a result, rebalance caused a very large number of TIME_WAIT connections and subsequently failed.

    MB-41673

    Summary: Added per index memory_used statistic to the api/v1/stats endpoint to enable memory accounting.

    MB-41672

    Summary: The statistic pauseTotalNs has been added to the api/v1/stats endpoint and enables you to monitor any spikes in GC between two intervals. PauseTotalNs is a cumulative statistic that represents the total time an indexer process has been paused for GC since it’s inception.

    MB-41645

    Summary: Fixed an issue where the gsi index resident ratio showed a value greater than 100% due to num_rec_swapin being larger than num_rec_swapout (num_rec_swapin > num_rec_swapout). This is a rare and transient condition that may occur sometimes as the stats are updated asynchronously and will become correct eventually.

    MB-41641

    Summary: Improved array indexing performance by optimizing the ComputeArrayEntriesWithCount method.

    MB-41717

    Summary: When bloomDelta is added after recovery when page is found without a bloom filter, the stat NumRecordAllocs is over counted. However, NumRecordAllocs is only supposed to track the insert/delete deltas. This has been fixed.

    MB-41155

    Summary: Fixed an issue with memory optimized indexes where indefinite disk snapshotting led to increasing disk usage.

    MB-40127

    Summary: Fixed a memory growth issue observed when processing many metadata operations.

    MB-40120

    Summary: Log replay will skip data blocks if a more recent header was already recovered by checkpoint recovery. When skipping the stale data blocks, page op stats due to that stale data block were not being cleared and the stats kept accumulating. This caused incorrect stats for PageBytes and ItemCnt after recovery. This has been fixed by discarding page ops stats during log replay.

    MB-40042

    Summary: Index creation failed when the bucket name contained a % character. This has been fixed.

    MB-40016

    Summary: The projector went into a stream termination loop when trying to stream a near 20 MB document due to redundant doc size checks in projector. This has been fixed.

    Install and Deploy

    Issue Description

    MB-42079

    Summary: On Windows, when upgrading to 6.6.1 or later from any earlier version, configuration changes such as custom data directories may be lost. To avoid this, before running the MSI installer, copy the file C:\Program Files\Couchbase\Server\etc\runtime.ini to a new file named runtime{{.ini-hold}} in the same directory. This path may be different if you installed Server into a non-standard directory.

    Query Service

    Issue Description

    MB-41605

    Summary: Fixed an issue where the intersect scan under inner of nested-loop join sometimes returned incorrect results.

    Search Service

    Tools, Web Console (UI), and REST API

    Issue Description

    MB-40354

    Summary: There is a rare case where cbbackupmgr backup would crash instead of exiting gracefully and reporting the error. This could only happen at the start of a backup if the connection to Data Service was lost. This has now been fixed in 6.6.1.

    MB-40209

    Summary: Fixed an issue where couchbase-cli analytics-link-setup failed on a single node cluster configured to use loopback (127.0.0.1).

    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