Cancel pending fsync requests during WAL replay of DROP DATABASE, per bug
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Apr 2007 15:04:47 +0000 (15:04 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Apr 2007 15:04:47 +0000 (15:04 +0000)
report from David Darville.  Back-patch as far as 8.1, which may or may not
have the problem but it seems a safe change anyway.

src/backend/commands/dbcommands.c

index 6743c6b89df99afc9a582b288069816fe100bcc3..820f0e983b55f3118e263174251aafa3a65098c4 100644 (file)
@@ -1439,6 +1439,9 @@ dbase_redo(XLogRecPtr lsn, XLogRecord *record)
                /* Also, clean out any entries in the shared free space map */
                FreeSpaceMapForgetDatabase(xlrec->db_id);
 
+               /* Also, clean out any fsync requests that might be pending in md.c */
+               ForgetDatabaseFsyncRequests(xlrec->db_id);
+
                /* Clean out the xlog relcache too */
                XLogDropDatabase(xlrec->db_id);