Fixed
Pinned fields
Click on the next to a field label to start pinning.
Details
Assignee
Girish BenakappaGirish BenakappaReporter
Matt CarabineMatt Carabine(Deactivated)Is this a Regression?
YesTriage
UntriagedStory Points
1Priority
BlockerInstabug
Open Instabug
Details
Details
Assignee
Girish Benakappa
Girish BenakappaReporter
Matt Carabine
Matt Carabine(Deactivated)Is this a Regression?
Yes
Triage
Untriaged
Story Points
1
Priority
Instabug
Open Instabug
PagerDuty
PagerDuty
PagerDuty
Sentry
Sentry
Sentry
Zendesk Support
Zendesk Support
Zendesk Support
Created July 16, 2021 at 11:25 AM
Updated January 19, 2022 at 7:48 AM
Resolved July 26, 2021 at 3:39 PM
Summary
FTS incorrectly uses the alternate addresses set for a node for DCP streams.
This means in the worst (and common) case where the alternate address is not reachable within the cluster (e.g. it's in Kubernetes and it's a Load Balancer for an individual pod, a fairly common deployment scenario), FTS is completely broken, while indexes can be created they are never built and cannot be searched.
In the best case where the cluster is not deployed in Kubernetes but is using Alternate Addresses for things like XDCR, the DCP traffic is being incorrectly routed out over the public internet rather than the private network as it should be.
This is a regression, FTS works fine in this environment on 6.6.x.
Steps to Reproduce
Spin up the latest RC (I used Docker here):
Setup the cluster with FTS enabled. Ensure that you set the hostname of the node to its IP and NOT 127.0.0.1 at this step. I also enabled node-to-node encryption, not sure if this is required for reproduction.
Set an alternate address for your node, you can set this to any URL that will resolve but will not be accessible, I just used a Couchbase Cloud public hostname:
Restart the cbft process
Create an Index in the UI
Try to search the Index
Expected Result
The index search completes successfully
Actual Result
Investigation
Logs show that FTS is trying to use the external address:
Note that 18.210.140.11 is what cb-0001.76aad0f6-de8a-46d8-9794-47df1b10f91f.dataplane.nonprod-project-avengers.com resolves to:
Also strangely it's trying to use 11210, but node-to-node encryption is enabled, which I would have expected meant that it would try to use encrypted ports.
Logs
https://cb-engineering.s3.amazonaws.com/MB-47457/collectinfo-2021-07-19T133501-ns_1%40172.17.0.2.zip