Revert ill-fated patch to release exclusive lock early after vacuum
truncates a table. Introduces race condition, as shown by buildfarm failures.
This commit is contained in:
parent
754838caa3
commit
eb5f4d6c5c
|
@ -36,7 +36,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.97 2007/09/20 17:56:31 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.98 2007/09/20 21:43:27 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -855,8 +855,13 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
|
|||
*/
|
||||
RelationTruncate(onerel, new_rel_pages);
|
||||
|
||||
/* Now we're OK to release the lock. */
|
||||
UnlockRelation(onerel, AccessExclusiveLock);
|
||||
/*
|
||||
* Note: once we have truncated, we *must* keep the exclusive lock
|
||||
* until commit. The sinval message that will be sent at commit
|
||||
* (as a result of vac_update_relstats()) must be received by other
|
||||
* backends, to cause them to reset their rd_targblock values, before
|
||||
* they can safely access the table again.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Drop free-space info for removed blocks; these must not get entered
|
||||
|
|
Loading…
Reference in New Issue