Greenplum Command Center (GPCC) will not start: Can't listen on port "28080": listen tcp :28080: bind: address already in use
search cancel

Greenplum Command Center (GPCC) will not start: Can't listen on port "28080": listen tcp :28080: bind: address already in use

book

Article ID: 381204

calendar_today

Updated On:

Products

VMware Tanzu Greenplum Greenplum Pivotal Data Suite Non Production Edition VMware Tanzu Data Suite VMware Tanzu Data Suite

Issue/Introduction

When starting GPCC the following error is reported:

2024-10-18 03:39:14 [INFO]AgentManager: Agent successfully started on 227/227 hosts
Agent successfully started on 227/227 hosts
2024-10-18 03:39:14 [CRITICAL]Can't listen on port "28080": listen tcp :28080: bind: address already in use
2024-10-18 03:39:14 [CRITICAL]Can't listen on port "28080": listen tcp :28080: bind: address already in use


2024-10-18 03:37:27 Failed to start webserver due to bind: address already in use
2024-10-18 03:39:09 Starting the gpcc agents and webserver...
2024-10-18 03:39:14 Agent successfully started on 227/227 hosts
2024-10-18 03:39:14 View Greenplum Command Center at https://mdw:28080
2024-10-18 03:40:28 GPCC webserver: stopped
2024-10-18 03:40:28 GPCC agents: 0/227 agents running
2024-10-18 03:48:41 GPCC webserver: stopped
2024-10-18 03:48:41 GPCC agents: 0/227 agents running
2024-10-18 04:23:39 GPCC webserver: stopped
2024-10-18 04:23:39 GPCC agents: 0/227 agents running
2024-10-18 04:32:00 GPCC webserver: stopped
2024-10-18 04:32:00 GPCC agents: 0/227 agents running

Environment

Greenplum Database (GPDB): All versions

Greenplum Command Center (GPCC): All versions

Cause

While GPCC was stopped for an upgrade, another process was started and it bound to GPCC's port (28080).

The gpcopy utiliuty was initiated without specifying the ports. As a result, gpcopy defaulted to using port 28080, which is assigned for GPCC.

 

Resolution

To find the process which is using the port, use "lsof" utility. See "man lsof" for details.

lsof -i :28080

If it is gpcopy,

1. The first option is to specify the port range when using gpcopy (BEST OPTION).  See example below. 

gpcopy --source-host mytest --source-port 1234 --source-user gpuser \ --dest-host demohost --dest-port 1234 --dest-user gpuser \ --dbname database1,database2 --truncate --jobs 8 --data-port-range 2000-2010

--data-port-range <lower_port>-<upper_port>

A range of port numbers to use on Greenplum Database destination hosts for data transfer. This applies to destination segment hosts or, if data is transferred using the coordinator segment, only the coordinator segment host. gpcopy uses the first available port specified in the range (inclusive). <lower_port> must be greater than or equal to 1024 (to avoid reserved system ports), and <upper_port> must be a greater value.

If --data-port-range is not specified, then gpcopy uses any available port.

 

 

2. The second option would be to change the GPCC's default port in the app.conf file. This is not best option because, if a port range is not set in the gpcopy command, there is a possibility of using the port assigned to GPCC.

[gpadmin@mdw conf]$ cat app.conf
appname         = gpccws
listentcp4      = true
runmode         = prod
session         = true
enablexsrf      = true
xsrfexpire      = 2592000
xsrfkey         = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o
rendertype      = json
printallsqls    = false
master_port     = 5432
path            = /usr/local
display_name    = gpcc
enable_kerberos = false
EnableHTTPS     = false
EnableHTTP      = true
httpport        = 28081
rpc_port        = 8899
language        = English
log_level       = INFO
ws_perf_port    = 6162
agent_perf_port = 6163
master_host     = mdw