Re: [PATCHES] Infrastructure changes for recovery (v8) - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: [PATCHES] Infrastructure changes for recovery (v8)
Date
Msg-id 492176E2.1000006@enterprisedb.com
Whole thread Raw
In response to Re: [PATCHES] Infrastructure changes for recovery (v8)  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: [PATCHES] Infrastructure changes for recovery (v8)  (Simon Riggs <simon@2ndQuadrant.com>)
List pgsql-hackers
Simon Riggs wrote:
> diff --git a/src/backend/access/transam/subtrans.c b/src/backend/access/transam/
> index 063b366..5e64cb4 100644
> --- a/src/backend/access/transam/subtrans.c
> +++ b/src/backend/access/transam/subtrans.c
> @@ -226,6 +226,9 @@ ZeroSUBTRANSPage(int pageno)
>   *
>   * oldestActiveXID is the oldest XID of any prepared transaction, or nextXid
>   * if there are none.
> + *
> + * Note that this is not atomic and is not yet safe to perform while other
> + * processes might access subtrans.
>   */
>  void
>  StartupSUBTRANS(TransactionId oldestActiveXID)

I'm a bit confused by that comment. Does that need to be fixed? It 
sounds like it does, because other processes might access subtrans when 
StartupSUBTRANS is called, with the patch to allow read-only queries 
during recovery. Or is that done in the hot standby patch?

However, I don't see why that isn't safe. StartupSUBTRANS takes the 
SubtransControlLock in exclusive mode while it zeroes out subtrans.

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


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Synchronous replication patch v2
Next
From: Alvaro Herrera
Date:
Subject: Re: PG_PAGE_LAYOUT_VERSION 5 - time for change