Commit eb5f4d6c authored by Tom Lane's avatar Tom Lane

Revert ill-fated patch to release exclusive lock early after vacuum

truncates a table.  Introduces race condition, as shown by buildfarm
failures.
parent 754838ca
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
* *
* *
* IDENTIFICATION * 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) ...@@ -855,8 +855,13 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
*/ */
RelationTruncate(onerel, new_rel_pages); 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 * Drop free-space info for removed blocks; these must not get entered
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment