Bug 996492
| Summary: | Allow the init script instantiate multiple servers running on different IP's but listening on the same port | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Pavel Raiskup <praiskup> |
| Component: | postgresql | Assignee: | Pavel Raiskup <praiskup> |
| Status: | CLOSED WONTFIX | QA Contact: | qe-baseos-daemons |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.6 | CC: | cww, databases-maint, hhorak, johfulto, jprokes |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-08-10 21:06:15 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1002711, 1075802, 1159824, 1172231, 1269194 | ||
(In reply to Pavel Raiskup from comment #0) > The postgresql init script is prepared to be copied (or symlinked) but it > has its local variable 'pidfile' defined like: > > pidfile="/var/run/postmaster.${PGPORT}.pid" > > This makes the script differentiate lock files for separated instances just > based on the PGPORT. If the PGPORT has the same value for more then one > postgres server, these init servers may not co-exist without additional > changes of the script. FTR: RHSCL 2.0 (rh-postgresql94) has this fixed, (pidfile="/var/run/${NAME}.pid"). |
The postgresql init script is prepared to be copied (or symlinked) but it has its local variable 'pidfile' defined like: pidfile="/var/run/postmaster.${PGPORT}.pid" This makes the script differentiate lock files for separated instances just based on the PGPORT. If the PGPORT has the same value for more then one postgres server, these init servers may not co-exist without additional changes of the script. The 'pidfile' variable should be ideally defined before sourcing per-instance configuration file and reuse ${NAME} variable somehow. Possibly this patch would be usable: --- /etc/init.d/postgresql 2012-08-27 17:43:59.000000000 +0200 +++ /etc/init.d/postgresqlnew 2013-08-13 10:27:04.509000246 +0200 @@ -47,15 +47,15 @@ # Value to set as postmaster process's oom_adj PG_OOM_ADJ=-17 +lockfile="/var/lock/subsys/${NAME}" +pidfile="/var/run/postmaster.${PGPORT}.${NAME}.pid" + # Override defaults from /etc/sysconfig/pgsql if file is present [ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME} export PGDATA export PGPORT -lockfile="/var/lock/subsys/${NAME}" -pidfile="/var/run/postmaster.${PGPORT}.pid" - script_result=0 start(){