Need to reset local buffer pin counts, not only shared buffer pins,
before we attempt any file deletions in ShutdownPostgres. Per Tatsuo.
This commit is contained in:
parent
1f418555cf
commit
88164799ce
@ -9,7 +9,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/storage/buffer/localbuf.c,v 1.63 2005/03/04 20:21:06 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/storage/buffer/localbuf.c,v 1.64 2005/03/18 16:16:09 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -259,3 +259,17 @@ AtEOXact_LocalBuffers(bool isCommit)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AtProcExit_LocalBuffers - ensure we have dropped pins during backend exit.
|
||||||
|
*
|
||||||
|
* This is just like AtProcExit_Buffers, but for local buffers. We have
|
||||||
|
* to drop pins to ensure that any attempt to drop temp files doesn't
|
||||||
|
* fail in DropRelFileNodeBuffers.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
AtProcExit_LocalBuffers(void)
|
||||||
|
{
|
||||||
|
/* just zero the refcounts ... */
|
||||||
|
MemSet(LocalRefCount, 0, NLocBuffer * sizeof(*LocalRefCount));
|
||||||
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.142 2005/03/18 05:24:13 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.143 2005/03/18 16:16:09 tgl Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
@ -515,6 +515,7 @@ ShutdownPostgres(int code, Datum arg)
|
|||||||
*/
|
*/
|
||||||
LWLockReleaseAll();
|
LWLockReleaseAll();
|
||||||
AtProcExit_Buffers();
|
AtProcExit_Buffers();
|
||||||
|
AtProcExit_LocalBuffers();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In case a transaction is open, delete any files it created. This
|
* In case a transaction is open, delete any files it created. This
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2005, 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/include/storage/bufmgr.h,v 1.90 2005/03/04 20:21:07 tgl Exp $
|
* $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.91 2005/03/18 16:16:09 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -158,6 +158,7 @@ extern void BufferSync(void);
|
|||||||
extern void BgBufferSync(void);
|
extern void BgBufferSync(void);
|
||||||
|
|
||||||
extern void InitLocalBuffer(void);
|
extern void InitLocalBuffer(void);
|
||||||
|
extern void AtProcExit_LocalBuffers(void);
|
||||||
|
|
||||||
/* in freelist.c */
|
/* in freelist.c */
|
||||||
extern void StrategyHintVacuum(bool vacuum_active);
|
extern void StrategyHintVacuum(bool vacuum_active);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user