default collection is not encoded in case of mixed-version cluster
Description
Environment
Gerrit Reviews
Release Notes Description
relates
Activity
CB robot March 28, 2024 at 5:46 AM
Build couchbase-server-7.2.5-7575 contains libcouchbase commit ad04729 with commit message:
https://couchbasecloud.atlassian.net/browse/CCBC-1607#icft=CCBC-1607: fix collection id encoding in mixed cluster
CB robot December 19, 2023 at 1:39 AM
Build couchbase-server-7.1.6-3969 contains libcouchbase commit ad04729 with commit message:
https://couchbasecloud.atlassian.net/browse/CCBC-1607#icft=CCBC-1607: fix collection id encoding in mixed cluster
CB robot August 31, 2023 at 8:44 AM
Build capella-analytics-1.0.0-1006 contains libcouchbase commit ad04729 with commit message:
https://couchbasecloud.atlassian.net/browse/CCBC-1607#icft=CCBC-1607: fix collection id encoding in mixed cluster
CB robot August 31, 2023 at 7:35 AM
Build couchbase-server-7.6.0-1438 contains libcouchbase commit ad04729 with commit message:
https://couchbasecloud.atlassian.net/browse/CCBC-1607#icft=CCBC-1607: fix collection id encoding in mixed cluster
CB robot August 23, 2023 at 3:01 PM
Build couchbase-server-8.0.0-1384 contains libcouchbase commit ad04729 with commit message:
https://couchbasecloud.atlassian.net/browse/CCBC-1607#icft=CCBC-1607: fix collection id encoding in mixed cluster
Details
Details
Assignee
Fix versions
Sprint
Story Points
Reporter
Priority
Instabug
PagerDuty
PagerDuty Incident
PagerDuty

Sentry
Linked Issues
Sentry
Zendesk Support
Linked Tickets
Zendesk Support

See linked https://couchbasecloud.atlassian.net/browse/CBSE-14831#icft=CBSE-14831Can't find link for additional details, but here are the reproduction steps:
setup two node cluster with KV service with 6.6 version
add one 7.1 node
rebalance
bootstrap libcouchbase using 7.1 node
libcouchbase will get socket configured for collections, because kv engine from 7.1 node will ack collection support
libcouchbase then receive configuration, and sees that the config does not have "collections" capability and disables collections support for whole lcb_INSTANCE
send GET command, and libcouchbase will not add zero prefix for default collection
kv engine tries to interpret first byte of the key as a collection index, and returns COLLECTION_NOT_FOUND
libcouchbase silently retries expecting that this is just cold collection, that will be accessible in a moment
application gets timeout error