Re: Unintended restart after recovery error - Mailing list pgsql-hackers

From Fujii Masao
Subject Re: Unintended restart after recovery error
Date
Msg-id CAHGQGwHixg9SPS9qqbVQCeWQG=zY5Y0MzBa57KuNb_8aL=Mvuw@mail.gmail.com
Whole thread Raw
In response to Unintended restart after recovery error  (Antonin Houska <ah@cybertec.at>)
Responses Re: Unintended restart after recovery error  (Antonin Houska <ah@cybertec.at>)
List pgsql-hackers
On Wed, Nov 12, 2014 at 6:52 PM, Antonin Houska <ah@cybertec.at> wrote:
> While looking at postmaster.c:reaper(), one problematic case occurred to me.
>
>
> 1. Startup process signals PMSIGNAL_RECOVERY_STARTED.
>
> 2. Checkpointer process is forked and immediately dies.
>
> 3. reaper() catches this failure, calls HandleChildCrash() and thus sets
> FatalError to true.
>
> 4. Startup process exits with non-zero status code too - either due to SIGQUIT
> received from HandleChildCrash or due to some other failure of the startup
> process itself. However, FatalError is already set, because of the previous
> crash of the checkpointer. Thus reaper() does not set RecoveryError.
>
> 5. As RecoverError failed to be set to true, postmaster will try to restart
> the cluster, although it apparently should not.

Why shouldn't postmaster restart the cluster in that case?

Regards,

-- 
Fujii Masao



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: what does this mean: "running xacts with xcnt == 0"
Next
From: Robert Haas
Date:
Subject: Re: pg_background (and more parallelism infrastructure patches)