Re: [Pkg-postgresql-public] pg_ctlcluster stop does not read pg_ctl.conf

2017-06-12 Thread Badics, Alex
Hi,

I made this patch in our internal fork, but I'm not really proficient
in perl, to be honest.

Regards,
Alex Badics
From 758cbbe6f9ad458090f3b7c6bb5d2ca47786f4c8 Mon Sep 17 00:00:00 2001
From: Alex Badics 
Date: Mon, 12 Jun 2017 14:44:43 +0200
Subject: [PATCH] pg_ctlcluster: use pg_ctl.conf during stop too

We set a timeout of 3600 in pg_ctl.conf, but it still timed out on
stop after an upgrade (possibly because writing everything down to the
disk took more than 30 seconds)
---
 pg_ctlcluster | 14 +++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/pg_ctlcluster b/pg_ctlcluster
index be12b01..9fd9ef9 100755
--- a/pg_ctlcluster
+++ b/pg_ctlcluster
@@ -254,10 +254,18 @@ sub stop {
 stop_check_pid_file;
 my $result = 1;
 
+my @options = ('stop', '-s', '-w', '-D', $info{'pgdata'});
+
+push @options, @pg_ctl_opts_from_cli if @pg_ctl_opts_from_cli;
+
+my %pg_ctl_opts_from_file = read_cluster_conf_file $version, $cluster, 'pg_ctl.conf';
+push @options, split(' ', $pg_ctl_opts_from_file{'pg_ctl_options'})
+	if defined $pg_ctl_opts_from_file{'pg_ctl_options'} and $pg_ctl_opts_from_file{'pg_ctl_options'} ne '';
+
 if ($force) {
 if (!fork()) {
 close STDOUT;
-exec $pg_ctl, '-D', $info{'pgdata'}, '-s', '-w', '-m', 'fast', @pg_ctl_opts_from_cli, 'stop';
+exec $pg_ctl, @options, '-m', 'fast';
 } else {
 wait;
 	$result = $? >> 8;
@@ -266,7 +274,7 @@ sub stop {
 # try harder if "fast" mode does not work
 if (-f $info{'pgdata'}.'/postmaster.pid') {
 print "(does not shutdown gracefully, now stopping immediately)\n";
-	$result = system $pg_ctl, '-D', $info{'pgdata'}, '-s', '-w', '-m', 'immediate', @pg_ctl_opts_from_cli, 'stop';
+	$result = system $pg_ctl, @options, '-m', 'immediate';
 }
 
 # if that still not helps, use the big hammer
@@ -279,7 +287,7 @@ sub stop {
 } else {
 if (!fork()) {
 close STDOUT;
-exec $pg_ctl, '-D', $info{'pgdata'}, '-s', '-w', '-m', $mode, @pg_ctl_opts_from_cli, 'stop';
+exec $pg_ctl, @options, '-m', $mode;
 } else {
 wait;
 	$result = $? >> 8;
-- 
2.13.0

___
Pkg-postgresql-public mailing list
Pkg-postgresql-public@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-postgresql-public

Re: [Pkg-postgresql-public] pg_ctlcluster stop does not read pg_ctl.conf

2017-06-12 Thread Christoph Berg
Re: Badics, Alex 2017-06-12 

[Pkg-postgresql-public] pg_ctlcluster stop does not read pg_ctl.conf

2017-06-12 Thread Badics, Alex
Dear Maintainers,

We use the pg_ctl.conf file to set a timeout of starting and stopping the
server with "-t 3600". When I tried to stop the database by simply calling
/usr/bin/pg_ctlcluster --skip-systemctl-redirect 9.5-main stop, it failed
with a timeout after only 30 seconds.

Reading the code, it turns out only "start" uses the config file, "stop"
doesn't. Is there any reason for that? If not, I'd be happy to send a patch
we made for that.

Regards,
Alex Badics
___
Pkg-postgresql-public mailing list
Pkg-postgresql-public@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-postgresql-public