BUG #13612: postgresql94-setup initdb in kickstart fails

Started by Nonameover 10 years ago9 messagesbugs
Jump to latest
#1Noname
allan.kristsensen@schneider-electric.com

The following bug has been logged on the website:

Bug reference: 13612
Logged by: Allan Kristensen
Email address: allan.kristsensen@schneider-electric.com
PostgreSQL version: 9.4.4
Operating system: Centos 7
Description:

Running "/usr/pgsql-9.4/bin/postgresql94-setup initdb" during Kickstart
install of a Centos/RHEL 7 will through the following error.

failed to find PGDATA setting in postgresql-9.4.service
Running in chroot, ignoring request.

In bin/postgresql94-setup the problematic lines are:
PGDATA=`systemctl show -p Environment "${SERVICE_NAME}.service" |
sed 's/^Environment=//' | tr ' ' '\n' |
sed -n 's/^PGDATA=//p' | tail -n 1`
if [ x"$PGDATA" = x ]; then
echo "failed to find PGDATA setting in ${SERVICE_NAME}.service"
exit 1
fi

systemctl returns an empty result as it won't run in a chroot.

Besides the above. What puzzles me is that PGDATA is overwritten further
down in the script.

# Get data directory from the service file
PGDATA=`sed -n 's/Environment=PGDATA=//p' "${SERVICE_FILE}"`

I have put things together to the following:

# this parsing technique fails for PGDATA pathnames containing spaces,
# but there's not much I can do about it given systemctl's output format...
PGDATA=`systemctl show -p Environment "${SERVICE_NAME}.service" |
sed 's/^Environment=//' | tr ' ' '\n' |
sed -n 's/^PGDATAA=//p' | tail -n 1`
if [ x"$PGDATA" = x ]; then
# Find the unit file for new version.
if [ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]
then
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
elif [ -f "/lib/systemd/system/${SERVICE_NAME}.service" ]
then
SERVICE_FILE="/lib/systemd/system/${SERVICE_NAME}.service"
else
echo "Could not find systemd unit file ${SERVICE_NAME}.service"
exit 1
fi

# Get data directory from the service file
PGDATA=`sed -n 's/Environment=PGDATA=//p' "${SERVICE_FILE}"`

if [ x"$PGDATA" = x ]; then
echo "Failed to find PGDATA setting in ${SERVICE_NAME}.service"
exit 1
fi
fi

export PGDATA

If systemctl does not find a path then try the searching in files and exit
if none of the methods provides a valid path.

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

#2Bruce Momjian
bruce@momjian.us
In reply to: Noname (#1)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

On Thu, Sep 10, 2015 at 08:13:12AM +0000, allan.kristsensen@schneider-electric.com wrote:

The following bug has been logged on the website:

Bug reference: 13612
Logged by: Allan Kristensen
Email address: allan.kristsensen@schneider-electric.com
PostgreSQL version: 9.4.4
Operating system: Centos 7
Description:

Running "/usr/pgsql-9.4/bin/postgresql94-setup initdb" during Kickstart
install of a Centos/RHEL 7 will through the following error.

Uh, we didn't write or maintain that file.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

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

#3Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: Bruce Momjian (#2)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Regards,
--
Devrim GÜNDÜZ
Principal Systems Engineer @ EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR

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

#4Bruce Momjian
bruce@momjian.us
In reply to: Devrim GÜNDÜZ (#3)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or something
Red Hat wrote.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

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

#5Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#4)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

On Thu, Sep 10, 2015 at 09:23:45AM -0400, Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or something
Red Hat wrote.

FYI, I am getting an email failure from the original poster, so there
might not be much point in replying to him:

User allan.kristsensen (allan.kristsensen@schneider-electric.com) not
listed in Domino Directory

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

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

#6Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Bruce Momjian (#5)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 09:23:45AM -0400, Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or something
Red Hat wrote.

FYI, I am getting an email failure from the original poster, so there
might not be much point in replying to him:

User allan.kristsensen (allan.kristsensen@schneider-electric.com) not
listed in Domino Directory

He mistyped his address in the bug report form. I corrected it here.

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

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

#7Noname
Allan.Kristensen@schneider-electric.com
In reply to: Alvaro Herrera (#6)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

Álvaro Herrera wrote:

Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 09:23:45AM -0400, Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or

something

Red Hat wrote.

FYI, I am getting an email failure from the original poster, so there
might not be much point in replying to him:

User allan.kristsensen (allan.kristsensen@schneider-electric.com)

not

listed in Domino Directory

He mistyped his address in the bug report form. I corrected it here.

Thanks Álvaro and sorry about the email address.

The rpm in question postgresql94-server-9.4.4-1PGDG.rhel7.x86_64.rpm
downloaded from the http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/
repo.

Best regards
Allan Kristensen
_____________________________________________________________________________________

Allan Kristensen | APC by Schneider Electric | IT Business |
Denmark | Configuration Management Administrator
Phone: +45 72190143 | Mobile: +45 20752220
Email: allan.kristensen@schneider-electric.com | Site:
www.schneider-electric.dk | Address: Silcon Alle, 6000 Kolding, Denmark

*** Please consider the environment before printing this e-mail ***

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Devrim GÜNDÜZ <devrim@gunduz.org>, Allan
Kristensen/DK/Schneider@Europe, pgsql-bugs@postgresql.org
Date: 09/10/2015 18:10
Subject: Re: [BUGS] BUG #13612: postgresql94-setup initdb in
kickstart fails

Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 09:23:45AM -0400, Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or something
Red Hat wrote.

FYI, I am getting an email failure from the original poster, so there
might not be much point in replying to him:

User allan.kristsensen (allan.kristsensen@schneider-electric.com) not
listed in Domino Directory

He mistyped his address in the bug report form. I corrected it here.

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
______________________________________________________________________

#8Bruce Momjian
bruce@momjian.us
In reply to: Noname (#7)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

On Fri, Sep 11, 2015 at 08:26:38AM +0200, Allan.Kristensen@schneider-electric.com wrote:

lvaro Herrera wrote:

Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 09:23:45AM -0400, Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or something
Red Hat wrote.

FYI, I am getting an email failure from the original poster, so there
might not be much point in replying to him:

User allan.kristsensen (allan.kristsensen@schneider-electric.com) not
listed in Domino Directory

He mistyped his address in the bug report form. I corrected it here.

Thanks lvaro and sorry about the email address.

The rpm in question postgresql94-server-9.4.4-1PGDG.rhel7.x86_64.rpm downloaded
from the http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/ repo.

Thanks. I would be interested to know how email list subscribers like
me can determine who the source of the OS-specific script is so we can
properly route such messsages.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

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

#9Noname
Allan.Kristensen@schneider-electric.com
In reply to: Bruce Momjian (#8)
Re: BUG #13612: postgresql94-setup initdb in kickstart fails

On Fri, Sep 11, 2015 at 08:26:38AM +0200,

Allan.Kristensen@schneider-electric.com wrote:

lvaro Herrera wrote:

Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 09:23:45AM -0400, Bruce Momjian wrote:

On Thu, Sep 10, 2015 at 04:20:17PM +0300, Devrim Gunduz wrote:

Hi,

On Thu, 2015-09-10 at 09:11 -0400, Bruce Momjian wrote:

Uh, we didn't write or maintain that file.

It comes with the RPMs.

Allan, I'll take a look soon.

Oh, OK. I wasn't sure if it was something from the RPMs, or

something

Red Hat wrote.

FYI, I am getting an email failure from the original poster, so

there

might not be much point in replying to him:

User allan.kristsensen

(allan.kristsensen@schneider-electric.com) not

listed in Domino Directory

He mistyped his address in the bug report form. I corrected it

here.

Thanks lvaro and sorry about the email address.

The rpm in question postgresql94-server-9.4.4-1PGDG.rhel7.x86_64.rpm

downloaded

from the http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/ repo.

Thanks. I would be interested to know how email list subscribers like
me can determine who the source of the OS-specific script is so we can
properly route such messsages.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

I have been using the lines from OP for over a month now and did not find
any issues. What is the process for incorporating it into the next
release?

Here is the diff if that makes life easier.

########### Diff start ###########
--- /usr/pgsql-9.4/bin/postgresql94-setup       2015-06-11 
13:19:27.000000000 +0200
+++ /usr/pgsql-9.4/bin/postgresql94-setup.new   2015-10-26 
16:05:28.082858681 +0100
@@ -79,32 +79,34 @@
                 sed 's/^Environment=//' | tr ' ' '\n' |
                 sed -n 's/^PGDATA=//p' | tail -n 1`
 if [ x"$PGDATA" = x ]; then
-    echo "failed to find PGDATA setting in ${SERVICE_NAME}.service"
-    exit 1
+    # Find the unit file for new version.
+    if [ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]
+    then
+        SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
+    elif [ -f "/lib/systemd/system/${SERVICE_NAME}.service" ]
+    then
+        SERVICE_FILE="/lib/systemd/system/${SERVICE_NAME}.service"
+    else
+        echo "Could not find systemd unit file ${SERVICE_NAME}.service"
+        exit 1
+    fi
+ 
+    # Get data directory from the service file
+    PGDATA=`sed -n 's/Environment=PGDATA=//p' "${SERVICE_FILE}"`
+ 
+    if [ x"$PGDATA" = x ]; then
+        echo "Failed to find PGDATA setting in ${SERVICE_NAME}.service"
+        exit 1
+    fi
 fi
-# Find the unit file for new version.
-if [ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]
-then
-    SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
-elif [ -f "/lib/systemd/system/${SERVICE_NAME}.service" ]
-then
-    SERVICE_FILE="/lib/systemd/system/${SERVICE_NAME}.service"
-else
-    echo "Could not find systemd unit file ${SERVICE_NAME}.service"
-    exit 1
-fi
+export PGDATA

# Log file for pg_upgrade
PGUPLOG=/var/lib/pgsql/$PGMAJORVERSION/pgupgrade.log
# Log file for initdb
PGLOG=/var/lib/pgsql/9.4/initdb.log

-# Get data directory from the service file
-PGDATA=`sed -n 's/Environment=PGDATA=//p' "${SERVICE_FILE}"`
-
-export PGDATA
-
# For SELinux we need to use 'runuser' not 'su'
if [ -x /sbin/runuser ]
then
########### Diff end ###########

Best regards
Allan Kristensen
_____________________________________________________________________________________

Allan Kristensen | APC by Schneider Electric | IT Business |
Denmark | Configuration Management Administrator
Phone: +45 72190143 | Mobile: +45 20752220
Email: allan.kristensen@schneider-electric.com | Site:
www.schneider-electric.dk | Address: Silcon Alle, 6000 Kolding, Denmark

*** Please consider the environment before printing this e-mail ***