[gpadmin@gpdatahost ~]$ gpstop -m
Traceback (most recent call last):
File "/usr/local/greenplum-db-7.4.0/bin/gpstop", line 985, in <module>
simple_main(GpStop.createParser, GpStop.createProgram, GpStop.mainOptions())
File "/usr/local/greenplum-db-7.4.0/lib/python/gppylib/mainUtils.py", line 273, in simple_main
simple_main_internal(createOptionParserFn, createCommandFn, mainOptions)
File "/usr/local/greenplum-db-7.4.0/lib/python/gppylib/mainUtils.py", line 298, in simple_main_internal
otherpid = sml.acquire()
File "/usr/local/greenplum-db-7.4.0/lib/python/gppylib/mainUtils.py", line 172, in acquire
self.pidfilepid = self.pidlockfile.read_pid()
File "/usr/local/greenplum-db-7.4.0/lib/python/gppylib/mainUtils.py", line 107, in read_pid
with open(self.PIDfile) as p:
PermissionError: [Errno 13] Permission denied: '/data/coordinator/gpseg-1/gpstop.lock/PID
Greenplum 6.x
Greenplum 7.x
This error is due to the current user session not having write permissions for the file at the path '/data/coordinator/gpseg-1/gpstop.lock/PID'. This usually occurs if gpstop or gpstart was run as root or with sudo. Although greenplum protects pg_ctl from starting as root in most causes, running gpstop may create lock artifacts under the ownership of the current user, which if run with 'sudo' would be root.
Verify that all permissions in '/data/coordinator/gpseg-1' are owned by gpadmin or the database administrator:
[root@gpdatahost ~]# ls -halt /data/coordinator/gpseg-1/
total 11M
drwx------ 24 gpadmin gpadmin 4.0K Apr 30 01:01 .
drwx------ 2 gpadmin gpadmin 80 Apr 30 01:01 pg_stat
drwx------ 2 gpadmin gpadmin 6 Apr 30 01:01 pg_stat_tmp
drwxrwxr-x 2 gpadmin gpadmin 4.0K Apr 30 01:01 log
drwxr-xr-x 2 root root 17 Apr 30 01:01 gpstop.lock
drwx------ 4 gpadmin gpadmin 68 Apr 30 00:47 pg_logical
drwx------ 2 gpadmin gpadmin 4.0K Apr 30 00:42 global
-rw------- 1 gpadmin gpadmin 911 Apr 30 00:42 gpsegconfig_dump
-rw------- 1 gpadmin gpadmin 38 Apr 30 00:42 current_logfiles
-rw------- 1 gpadmin gpadmin 100 Apr 30 00:42 postmaster.opts
drwx------ 2 gpadmin gpadmin 18 Apr 30 00:42 pg_notify
-rw------- 1 gpadmin gpadmin 4.5K Apr 30 00:26 pg_hba.conf
drwx------ 2 gpadmin gpadmin 18 Apr 17 12:23 pg_subtrans
drwx------ 3 gpadmin gpadmin 172 Apr 17 12:23 pg_wal
-rw------- 1 gpadmin gpadmin 2.3K Apr 17 12:23 postgresql.auto.conf
-rw------- 1 gpadmin gpadmin 30K Apr 17 12:23 postgresql.conf
-rw------- 1 gpadmin gpadmin 4.5K Apr 17 12:20 pg_hba.conf.bkp
drwx------ 3 gpadmin gpadmin 110 Apr 17 12:20 gpmetrics
drwx------ 2 gpadmin gpadmin 80 Apr 17 12:20 pg_hba_archive
drwx------ 2 gpadmin gpadmin 18 Apr 17 12:20 pg_distributedlog
drwx------ 2 gpadmin gpadmin 18 Apr 17 12:20 pg_xact
drwx------ 6 gpadmin gpadmin 54 Apr 17 12:20 base
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_commit_ts
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_dynshmem
drwx------ 4 gpadmin gpadmin 36 Apr 17 12:20 pg_multixact
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_replslot
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_serial
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_snapshots
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_tblspc
drwx------ 2 gpadmin gpadmin 6 Apr 17 12:20 pg_twophase
drwx------ 3 gpadmin gpadmin 21 Apr 17 12:20 ..
-rw------- 1 gpadmin gpadmin 259 Mar 27 12:52 backup_label.old
-rw------- 1 gpadmin gpadmin 4.5K Mar 26 15:33 hba_after_restore.conf
-rw-rw-r-- 1 gpadmin gpadmin 11M Mar 21 11:28 gpbackup_history.db
-rw-rw-r-- 1 gpadmin gpadmin 5.3K Mar 6 14:59 pg_hba.conf.old
-rw-rw-r-- 1 gpadmin gpadmin 860 Mar 5 17:02 gpssh.conf
-rw------- 1 gpadmin gpadmin 11 Mar 5 17:02 internal.auto.conf
-rw------- 1 gpadmin gpadmin 1.6K Mar 5 17:02 pg_ident.conf
-rw------- 1 gpadmin gpadmin 3 Mar 5 17:02 PG_VERSION
In the above case, we see that gpstop.lock is not owned by 'gpadmin', so we use root to set ownership to gpadmin.
[root@gpdatahost ~]# chown -R gpadmin. /data/coordinator/gpseg-1/gpstop.lock/
After the permissions are fixed, re-run gpstop