On 11.05.2011 08:29, Fujii Masao wrote:
> On Sat, May 7, 2011 at 10:48 PM, Robert Haas<robertmhaas@gmail.com> wrote:
>> I was able to reproduce something very like this in unpatched master,
>> just by letting recovery pause at a named restore point, and then
>> resuming it.
>
> I was able to reproduce the same problem even in 9.0. When the standby
> reaches the recovery target, it always tries to end the recovery even
> though walreceiver is still running, which causes the problem. This seems
> to be an oversight in streaming replication. I should have considered how
> the standby should work when recovery_target is specified.
>
> What about the attached patch? Which stops walreceiver instead of
> emitting PANIC there only if we've reached the recovery target.
I think we can just always call ShutdownWalRcv(). It should be gone if
the server was promoted while streaming, but that's just an
implementation detail of what the promotion code does. There's no hard
reason why it shouldn't be running at that point anymore, as long as we
kill it before going any further.
Committed a patch to do that.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com