On Mon, Oct 21, 2019 at 4:13 AM Thunder <thund...@126.com> wrote:
> Can we fix this issue like the following patch?
>
> $git diff src/backend/access/transam/xlog.c
> diff --git a/src/backend/access/transam/xlog.c 
> b/src/backend/access/transam/xlog.c
> index 49ae97d4459..0fbdf6fd64a 100644
> --- a/src/backend/access/transam/xlog.c
> +++ b/src/backend/access/transam/xlog.c
> @@ -8365,7 +8365,7 @@ CheckRecoveryConsistency(void)
>          * run? If so, we can tell postmaster that the database is consistent 
> now,
>          * enabling connections.
>          */
> -       if (standbyState == STANDBY_SNAPSHOT_READY &&
> +       if ((standbyState == STANDBY_SNAPSHOT_READY || standbyState == 
> STANDBY_SNAPSHOT_PENDING) &&
>                 !LocalHotStandbyActive &&
>                 reachedConsistency &&
>                 IsUnderPostmaster)

I think that the issue you've encountered is design behavior.  In
other words, it's intended to work that way.

The comments for the code you propose to change say that we can allow
connections once we've got a valid snapshot. So presumably the effect
of your change would be to allow connections even though we don't have
a valid snapshot.

That seems bad.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Reply via email to