Lists: | pgsql-hackers |
---|
From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | replay_location indicates incorrect location |
Date: | 2012-01-13 10:04:49 |
Message-ID: | CAHGQGwEs_CjXePip4fAODHPzDuRa1zCEm99Wu7_TG4R956k3TA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Hi,
When I looked at pg_stat_replication just after starting the standby before
executing any write transactions on the master, I found that replay_location
indicated incorrect location different from sent/write/flush_location. Then,
if I ran write transaction on the master, replay_location indicated the same
location as the others.
The cause of this problem is that Xlogctl->recoveryLastRecPtr which points
to replay_location is initialized with wrong variable ReadRecPtr. Instead, it
should be initialized with EndRecPtr. Attached patch does that. This needs
to be backported to 9.0.
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
Attachment | Content-Type | Size |
---|---|---|
incorrect_replay_location_v1.patch | text/x-diff | 650 bytes |
From: | Simon Riggs <simon(at)2ndQuadrant(dot)com> |
---|---|
To: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: replay_location indicates incorrect location |
Date: | 2012-01-13 11:09:42 |
Message-ID: | CA+U5nM+qJAT5o_=vGmX2VWHTvkVwVJPA8r1cgh-bk6nrzUMS1w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On Fri, Jan 13, 2012 at 10:04 AM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> When I looked at pg_stat_replication just after starting the standby before
> executing any write transactions on the master, I found that replay_location
> indicated incorrect location different from sent/write/flush_location. Then,
> if I ran write transaction on the master, replay_location indicated the same
> location as the others.
>
> The cause of this problem is that Xlogctl->recoveryLastRecPtr which points
> to replay_location is initialized with wrong variable ReadRecPtr. Instead, it
> should be initialized with EndRecPtr. Attached patch does that. This needs
> to be backported to 9.0.
Agreed. Will commit.
--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services