[BUGS] BUG #14567: Overriding PGDATA during initdb always fails - Mailing list pgsql-bugs

From henti@geekware.co.za
Subject [BUGS] BUG #14567: Overriding PGDATA during initdb always fails
Date
Msg-id 20170224105022.1528.47821@wrigleys.postgresql.org
Whole thread Raw
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      14567
Logged by:          Henti Smith
Email address:      henti@geekware.co.za
PostgreSQL version: 9.6.2
Operating system:   Centos 7
Description:

When using the "/usr/pgsql-9.6/bin/postgresql96-setup" script to initdb the
environment variable PGSETUP_INITDB_OPTIONS can be used to pass options to
the initdb binary. 

This allows you to do the following. 
export PGSETUP_INITDB_OPTIONS="--pgdata=/postgresql"
/usr/pgsql-9.6/bin/postgresql96-setup initdb

Internally, the following happens. 
$PGDATA is retrieved from systemctl using Environment.
$PGDATA is then used in initdb() to : 
  Check if "$PGDATA/PG_VERSION" exists before running perform_initdb()
$PGDATA is then used in perform_initdb() to : 
  Create and chown $PGDATA
  restorecon $PGDATA
  
Then initdb binary gets called like this: 
  initdbcmd="$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident'"
  initdbcmd+=" $PGSETUP_INITDB_OPTIONS"

Where --pgdata can be passed. At this point the directory is not created and
owned and the command fails. If you create the directory manually the script
continues to:
  Create and chown log directory at $PGDATA/pg_log
  restorecon $PGDATA/pg_log

And finally it tests the installation with 

    if [ -f "$PGDATA/PG_VERSION" ]; then
        return 0
    fi
    return 1

Which always returns 1 as $PGDATA was never set to the custom directory. 

I used --pgdata=/postgresql as the only way to set a custom DB directory,
because the setup script never sources /etc/sysconfig/postgresql-9.6 which
is where I set the PGDATA override before. 

This can all be fixed by adding 
source /etc/sysconfig/pgsql/postgresql-$PGMAJORVERSION

before 
export PGDATA

on line 107

Sorry for duplicate post. 

Regards
Henti 




--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

pgsql-bugs by date:

Previous
From: henti@geekware.co.za
Date:
Subject: [BUGS] BUG #14566: Overriding PGDATA during initdb always fails
Next
From: Zbigniew Szot
Date:
Subject: Re: [BUGS] BUG #14565: query planner does not use partial index inpartiton if query is performed on multiple partitions