pg_ctl emits strange warning message

Lists: pgsql-hackers
From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: pg_ctl emits strange warning message
Date: 2010-09-13 10:08:44
Message-ID: AANLkTi=rBTeY4pxHF03KkNQAPPzT1J8RG=j6Ee-XgpMA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi,

http://archives.postgresql.org/pgsql-hackers/2010-05/msg00921.php
>>> (2)
>>> pg_ctl -ms stop emits the following warning whenever there is the
>>> backup_label file in $PGDATA.
>>>
>>> WARNING: online backup mode is active
>>> Shutdown will not complete until pg_stop_backup() is called.
>>>
>>> This warning doesn't fit in with the shutdown during recovery case.
>>> Since smart shutdown might be requested by other than pg_ctl, the
>>> warning should be emitted in server side rather than client, I think.
>>> How about moving the warning to the server side?
>>
>> Hmm, I'm not sure whether that's a good idea or not. Perhaps we
>> should discuss for 9.1?
>
> Okay, this is not a critical problem.

Let's revisit this issue. The problem here is that pg_ctl might emit
the following warning messages when it shuts down the standby server.
This is very strange thing since online backup mode is never active
in the standby.

WARNING: online backup mode is active
Shutdown will not complete until pg_stop_backup() is called.

Another problem is that the above useful messages are not emitted
when shutdown is requested by other than pg_ctl.

The attached patch moves the warning from pg_ctl to the server side
and makes postmaster emit it only when online backup mode is really
active. This can urge users to call pg_stop_backup to complete smart
shutdown whenever it's requested during online backup. I added the
patch into the next CF.

Comments?

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachment Content-Type Size
warning_during_shutdown_v1.patch application/octet-stream 2.5 KB

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-13 13:01:16
Message-ID: 4C8E209C.1090605@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 13/09/10 13:08, Fujii Masao wrote:
> Hi,
>
> http://archives.postgresql.org/pgsql-hackers/2010-05/msg00921.php
>>>> (2)
>>>> pg_ctl -ms stop emits the following warning whenever there is the
>>>> backup_label file in $PGDATA.
>>>>
>>>> WARNING: online backup mode is active
>>>> Shutdown will not complete until pg_stop_backup() is called.
>>>>
>>>> This warning doesn't fit in with the shutdown during recovery case.
>>>> Since smart shutdown might be requested by other than pg_ctl, the
>>>> warning should be emitted in server side rather than client, I think.
>>>> How about moving the warning to the server side?
>>>
>>> Hmm, I'm not sure whether that's a good idea or not. Perhaps we
>>> should discuss for 9.1?
>>
>> Okay, this is not a critical problem.
>
> Let's revisit this issue. The problem here is that pg_ctl might emit
> the following warning messages when it shuts down the standby server.
> This is very strange thing since online backup mode is never active
> in the standby.
>
> WARNING: online backup mode is active
> Shutdown will not complete until pg_stop_backup() is called.
>
> Another problem is that the above useful messages are not emitted
> when shutdown is requested by other than pg_ctl.
>
> The attached patch moves the warning from pg_ctl to the server side
> and makes postmaster emit it only when online backup mode is really
> active. This can urge users to call pg_stop_backup to complete smart
> shutdown whenever it's requested during online backup. I added the
> patch into the next CF.

There's this comment by Robert Haas:

http://archives.postgresql.org/pgsql-hackers/2010-05/msg01433.php

Like Robert, I'm also a bit worried that this might make the message
less prominent. When you run "pg_ctl stop" manually, it's good to get
the message directly in the terminal.

Another line of attack is to remove the backup_label file earlier during
recovery. We could remove it as soon as we update pg_control file with
the same information, ie. the backup start location. And by remove I
mean rename to backup_label.old, to avoid destroying forensic
information ;-).

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-13 15:10:23
Message-ID: 4C8E3EDF.9030200@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 13/09/10 16:01, Heikki Linnakangas wrote:
> On 13/09/10 13:08, Fujii Masao wrote:
>> Hi,
>>
>> http://archives.postgresql.org/pgsql-hackers/2010-05/msg00921.php
>>>>> (2)
>>>>> pg_ctl -ms stop emits the following warning whenever there is the
>>>>> backup_label file in $PGDATA.
>>>>>
>>>>> WARNING: online backup mode is active
>>>>> Shutdown will not complete until pg_stop_backup() is called.
>>>>>
>>>>> This warning doesn't fit in with the shutdown during recovery case.
>>>>> Since smart shutdown might be requested by other than pg_ctl, the
>>>>> warning should be emitted in server side rather than client, I think.
>>>>> How about moving the warning to the server side?
>>>>
>>>> Hmm, I'm not sure whether that's a good idea or not. Perhaps we
>>>> should discuss for 9.1?
>>>
>>> Okay, this is not a critical problem.
>>
>> Let's revisit this issue. The problem here is that pg_ctl might emit
>> the following warning messages when it shuts down the standby server.
>> This is very strange thing since online backup mode is never active
>> in the standby.
>>
>> WARNING: online backup mode is active
>> Shutdown will not complete until pg_stop_backup() is called.
>>
>> Another problem is that the above useful messages are not emitted
>> when shutdown is requested by other than pg_ctl.
>>
>> The attached patch moves the warning from pg_ctl to the server side
>> and makes postmaster emit it only when online backup mode is really
>> active. This can urge users to call pg_stop_backup to complete smart
>> shutdown whenever it's requested during online backup. I added the
>> patch into the next CF.
>
> There's this comment by Robert Haas:
>
> http://archives.postgresql.org/pgsql-hackers/2010-05/msg01433.php
>
> Like Robert, I'm also a bit worried that this might make the message
> less prominent. When you run "pg_ctl stop" manually, it's good to get
> the message directly in the terminal.
>
> Another line of attack is to remove the backup_label file earlier during
> recovery. We could remove it as soon as we update pg_control file with
> the same information, ie. the backup start location. And by remove I
> mean rename to backup_label.old, to avoid destroying forensic
> information ;-).

Yet another idea: Check in pg_ctl if recovery.conf is also present. If
it is, assume we're in recovery and don't print that warning. That would
be dead simple. I would even consider backpatching it to 9.0, this can
be regarded as a bug, albeit a minor one.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-13 15:19:40
Message-ID: 12785.1284391180@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> writes:
> Yet another idea: Check in pg_ctl if recovery.conf is also present. If
> it is, assume we're in recovery and don't print that warning. That would
> be dead simple.

+1. This sounds like a much more appropriate approach.

regards, tom lane


From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-13 15:35:19
Message-ID: 4C8E44B7.2010608@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 13/09/10 18:19, Tom Lane wrote:
> Heikki Linnakangas<heikki(dot)linnakangas(at)enterprisedb(dot)com> writes:
>> Yet another idea: Check in pg_ctl if recovery.conf is also present. If
>> it is, assume we're in recovery and don't print that warning. That would
>> be dead simple.
>
> +1. This sounds like a much more appropriate approach.

Hmm, looking at this more closely, I'm a bit confused. We already rename
away backup_label at the beginning of recovery. Under what circumstances
do we have a problem? This starts to seem like a complete non-issue to me.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-14 00:39:13
Message-ID: AANLkTinCgAygX5gLE7J1A8gPQOHzMxBUkvuuSJ_W9K0Z@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Tue, Sep 14, 2010 at 12:35 AM, Heikki Linnakangas
<heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
> Hmm, looking at this more closely, I'm a bit confused. We already rename
> away backup_label at the beginning of recovery. Under what circumstances do
> we have a problem? This starts to seem like a complete non-issue to me.

A checkpoint record is read before backup_label file is renamed, so
the problem happens if shutdown is requested while the standby server
is waiting for the WAL containing a checkpoint record to arrive from
the master. This happened some times in my box when testing HS/SR.

To avoid the problem, we should rename backup_label before reading
any WAL record?

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-14 00:55:21
Message-ID: AANLkTi=uh3F69j=2g+cKpuSWbYP4rpBH_NE+XZWU2PLZ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Tue, Sep 14, 2010 at 12:10 AM, Heikki Linnakangas
<heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
> Yet another idea: Check in pg_ctl if recovery.conf is also present. If it
> is, assume we're in recovery and don't print that warning. That would be
> dead simple. I would even consider backpatching it to 9.0, this can be
> regarded as a bug, albeit a minor one.

Yeah, it's very simple. Attached patch does that.

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachment Content-Type Size
warning_during_shutdown_v2.patch application/octet-stream 1.9 KB

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-14 07:46:22
Message-ID: 4C8F284E.3040205@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 14/09/10 03:39, Fujii Masao wrote:
> On Tue, Sep 14, 2010 at 12:35 AM, Heikki Linnakangas
> <heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
>> Hmm, looking at this more closely, I'm a bit confused. We already rename
>> away backup_label at the beginning of recovery. Under what circumstances do
>> we have a problem? This starts to seem like a complete non-issue to me.
>
> A checkpoint record is read before backup_label file is renamed, so
> the problem happens if shutdown is requested while the standby server
> is waiting for the WAL containing a checkpoint record to arrive from
> the master. This happened some times in my box when testing HS/SR.

Ok, I see. Shouldn't be very common, but might happen if you have a set
restore_command incorrectly for example.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-14 08:06:23
Message-ID: 4C8F2CFF.9080005@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On 14/09/10 03:55, Fujii Masao wrote:
> On Tue, Sep 14, 2010 at 12:10 AM, Heikki Linnakangas
> <heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
>> Yet another idea: Check in pg_ctl if recovery.conf is also present. If it
>> is, assume we're in recovery and don't print that warning. That would be
>> dead simple. I would even consider backpatching it to 9.0, this can be
>> regarded as a bug, albeit a minor one.
>
> Yeah, it's very simple. Attached patch does that.

Committed with some extra comments. I also backpatched this to 9.0.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com


From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-14 08:35:23
Message-ID: AANLkTin5hco6k6V3mDTmYsYcoh_SDWrvEd+_nQcxnPmQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Tue, Sep 14, 2010 at 5:06 PM, Heikki Linnakangas
<heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
> Committed with some extra comments. I also backpatched this to 9.0.

Thanks! I marked the patch as committed on CF.

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


From: David Fetter <david(at)fetter(dot)org>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_ctl emits strange warning message
Date: 2010-09-14 14:57:14
Message-ID: 20100914145714.GA24394@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Tue, Sep 14, 2010 at 05:35:23PM +0900, Fujii Masao wrote:
> On Tue, Sep 14, 2010 at 5:06 PM, Heikki Linnakangas
> <heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
> > Committed with some extra comments. I also backpatched this to 9.0.
>
> Thanks! I marked the patch as committed on CF.

Thanks!

Cheers,
David (Commitfest Cat Herd of the Month).
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david(dot)fetter(at)gmail(dot)com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate