]> granicus.if.org Git - postgresql/commitdiff
Make sure that open hash table scans are cleaned up when bgwriter tries to
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 11 Sep 2007 17:15:40 +0000 (17:15 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 11 Sep 2007 17:15:40 +0000 (17:15 +0000)
recover from elog(ERROR).  Problem was created by introduction of hash seq
search tracking awhile back, and affects all branches that have bgwriter;
in HEAD the disease has snuck into autovacuum and walwriter too.  (Not sure
that the latter two use hash_seq_search at the moment, but surely they might
someday.)  Per report from Sergey Koposov.

src/backend/postmaster/bgwriter.c

index 1fec1e4b11b45e2d60f8281c514caa0df92a2a75..04dc7428f75c1fd3a8f5fa4ff30d220d6011beae 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.33.2.1 2007/01/27 20:15:47 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.33.2.2 2007/09/11 17:15:40 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -273,6 +273,7 @@ BackgroundWriterMain(void)
                /* we needn't bother with the other ResourceOwnerRelease phases */
                AtEOXact_Buffers(false);
                AtEOXact_Files();
+               AtEOXact_HashTables(false);
 
                /* Warn any waiting backends that the checkpoint failed. */
                if (ckpt_active)