Can't truncate pg_subtrans during a recovery checkpoint --- subtrans
module isn't fully initialized yet.
This commit is contained in:
parent
7ff1c9d974
commit
f444dafab0
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.163 2004/08/23 23:22:44 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.164 2004/08/28 18:18:03 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -4922,8 +4922,10 @@ CreateCheckPoint(bool shutdown, bool force)
|
|||||||
* Truncate pg_subtrans if possible. We can throw away all data before
|
* Truncate pg_subtrans if possible. We can throw away all data before
|
||||||
* the oldest XMIN of any running transaction. No future transaction will
|
* the oldest XMIN of any running transaction. No future transaction will
|
||||||
* attempt to reference any pg_subtrans entry older than that (see Asserts
|
* attempt to reference any pg_subtrans entry older than that (see Asserts
|
||||||
* in subtrans.c).
|
* in subtrans.c). During recovery, though, we mustn't do this because
|
||||||
|
* StartupSUBTRANS hasn't been called yet.
|
||||||
*/
|
*/
|
||||||
|
if (!InRecovery)
|
||||||
TruncateSUBTRANS(GetOldestXmin(true));
|
TruncateSUBTRANS(GetOldestXmin(true));
|
||||||
|
|
||||||
LWLockRelease(CheckpointLock);
|
LWLockRelease(CheckpointLock);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user