Custom port for fulltext Search


#1

I have a requirement to configure custom ports for one of our environments. I am able to configure rest / capi / query_ports.

I want to configure Full Text Search. So I am assuming that this would be {fts_port , NNNN}.

Can some one please confirm if this is a right parameter that needs to be in the static_config file.

CB Server : 4.6.X
RHEL 6.6

Here is log message —> 8094 is being used by other application and that is why we are moving couchbase FTS to some other port.

Service ‘fts’ exited with status 1. Restarting. Messages: 2017-08-31T23:36:05.072-04:00 [INFO] ------------------------------------------------------------
2017-08-31T23:36:05.072-04:00 [FATAL] main: listen, err: listen tcp 0.0.0.0:8094: bind: address already in use
Please check that your -bindHttp parameter (“0.0.0.0:8094”)
is correct and available. – main.MainServeHttp() at main.go:274
[goport] 2017/08/31 23:36:05 /opt/couchbase/bin/cbft terminated: exit status 1

Thanks
Sujith Maram


#2

I have never done this myself, but looking at the source in ns_server I believe the correct values are:

fts_http_port (which defaults to 8094)

and

fts_ssl_port (which defaults to 18094)

marty


#3

Thanks Marty,

Yes, I used that in static_config file. Unfortunately I still can’t get the user defined port work for FTS. I am still seeing the same error message in the log.

We have some existing applications that run on {8091 - 8097} ports and are being requested to use other available ports( this is only for Development purposes ) . I installed Data, Index, Query, & FullText services.

We are having issues using FTS. Only fts_http_port seems to have issues. I am again posting the error message for reference.

Service ‘fts’ exited with status 1. Restarting. Messages: 2017-08-31T18:57:41.742-04:00 [INFO] ------------------------------------------------------------ 2017-08-31T18:57:41.742-04:00 [FATAL] main: listen, err: listen tcp 0.0.0.0:8094: bind: address already in use Please check that your -bindHttp parameter (“0.0.0.0:8094”) is correct and available. – main.MainServeHttp() at main.go:274 [goport] 2017/08/31 18:57:41 /opt/couchbase/bin/cbft terminated: exit status 1

static_config
{rest_port, 6091}.
{capi_port, 6092}.
{query_port, 6093}.
{fts_http_port, 6094}.

Did any one try to configure a user defined port for FTS before, can you please share your experiences.

Thanks
Sujith


#4

Hi Sujith

This should work for you (does work for me). However, there’s a gotcha - you have to delete your config.dat file after you update the static_config. (The settings in the static_config are essentially copied to the config.dat when the server is started up the first time, but not thereafter.) If you changed the fts_http_port later it won’t have made it.

This procedure is described in the docs (https://developer.couchbase.com/documentation/server/current/install/install-ports.html under “User-Defined Ports”) but it’s missing listing the fts_http_port. I filed a ticket to get this fixed (https://issues.couchbase.com/browse/DOC-2644).

Anyway, we can check the state of things with the following diag/eval:

curl -s localhost:8091/diag/eval -d 'ns_config:search({node, node(), fts_http_port})' -u Administrator:<password>

This will show you what the fts_port_actually is. You’ll probably find it to be 8094. To save you deleting your config.dat file (basically starting with an unconfigured cluster), the following diag/eval should just change your fts_http_port (and restart fts).

curl -s localhost:8091/diag/eval -d 'ns_config:set({node, node(), fts_http_port}, 6094)' -u Administrator:<password>

Good luck with it. Let us know if it works.


#5

Thanks Dave,

The static_config is set to 6094 for fts_http_port value. I followed the exact instructions as per the user defined ports documentation.

I also ran the queries passed here to get the values for fts_http_port, and I get {value,6094}, so the user defined ports are being picked up.
curl -s localhost:6091/diag/eval -d ‘ns_config:search({node, node(), fts_http_port})’ -u Administrator:
{value,6094}

I still see the bind error for 8094 port, for now the application can survive without FTS, so I took off the FTS from the node by reinstalling Couchbase. This is a development node and a single node cluster .

But we need this issue to be resolved to take advantage of FTS. Any pointers in debugging the below issue is appreciated. If you think I need to raise a support request, I am more then happy to do that.

Service ‘fts’ exited with status 1. Restarting. Messages: 2017-09-01T09:56:22.880-04:00 [INFO] ------------------------------------------------------------
2017-09-01T09:56:22.880-04:00 [FATAL] main: listen, err: listen tcp 0.0.0.0:8094: bind: address already in use
Please check that your -bindHttp parameter (“0.0.0.0:8094”)
is correct and available. – main.MainServeHttp() at main.go:274
[goport] 2017/09/01 09:56:22 /opt/couchbase/bin/cbft terminated: exit status 1


#6

Well, that’s odd. The bindHttp value that FTS complains about is passed to FTS by ns_server with the port number being obtained from the config in the same manner as the diag/eval you ran. I was not able to reproduce the behavior you’re seeing. The port customization worked and FTS was listening to the customized port and not the default port.

In this case I think probably the best course is to create a support request and upload the “cbcollect” logs (which you can do from the logs tab.)


#7

Sure Dave,

I will work with support on this.


#8

I tried this again and this time it seems to work. I suspect that this file didnot get removed “/opt/couchbase/var/lib/couchbase/config/config.dat”.

Thanks Dave & Marty for all the help.