Need to release buffer pins before attempting to drop files during
backend exit. Per report from Bruce.
This commit is contained in:
parent
7a969cad2e
commit
afb66ad8dd
|
@ -8,7 +8,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.141 2005/02/26 18:43:33 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.142 2005/03/18 05:24:13 tgl Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
|
@ -507,13 +507,14 @@ ShutdownPostgres(int code, Datum arg)
|
||||||
* since that just raises the odds of failure --- but there's some
|
* since that just raises the odds of failure --- but there's some
|
||||||
* stuff we need to do.
|
* stuff we need to do.
|
||||||
*
|
*
|
||||||
* Release any LW locks and buffer context locks we might be holding.
|
* Release any LW locks, buffer content locks, and buffer pins we might be
|
||||||
* This is a kluge to improve the odds that we won't get into a
|
* holding. This is a kluge to improve the odds that we won't get into a
|
||||||
* self-made stuck-lock scenario while trying to shut down.
|
* self-made stuck-lock scenario while trying to shut down. We *must*
|
||||||
|
* release buffer pins to make it safe to do file deletion, since we
|
||||||
|
* might have some pins on pages of the target files.
|
||||||
*/
|
*/
|
||||||
LWLockReleaseAll();
|
LWLockReleaseAll();
|
||||||
AbortBufferIO();
|
AtProcExit_Buffers();
|
||||||
UnlockBuffers();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In case a transaction is open, delete any files it created. This
|
* In case a transaction is open, delete any files it created. This
|
||||||
|
|
Loading…
Reference in New Issue