1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-18 12:22:09 +03:00

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:
Tom Lane
2005-03-18 16:16:20 +00:00
parent fc80f5fe73
commit 817bc021b7
3 changed files with 19 additions and 3 deletions

View File

@@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/storage/buffer/localbuf.c,v 1.62 2005/01/10 20:02:21 tgl Exp $ * $PostgreSQL: pgsql/src/backend/storage/buffer/localbuf.c,v 1.62.4.1 2005/03/18 16:16:20 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@@ -241,3 +241,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));
}

View File

@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.139.4.1 2005/03/18 05:24:24 tgl Exp $ * $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.139.4.2 2005/03/18 16:16:20 tgl Exp $
* *
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
@@ -478,6 +478,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

View File

@@ -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.89 2004/12/31 22:03:42 pgsql Exp $ * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.89.4.1 2005/03/18 16:16:20 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@@ -153,5 +153,6 @@ extern void BufmgrCommit(void);
extern int BufferSync(int percent, int maxpages); extern int BufferSync(int percent, int maxpages);
extern void InitLocalBuffer(void); extern void InitLocalBuffer(void);
extern void AtProcExit_LocalBuffers(void);
#endif #endif