diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-12-01 19:55:28 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-12-01 19:55:28 +0000 |
| commit | 3049fe7cfa994208cb15cf0c9a20e773839ebf8f (patch) | |
| tree | 7c3d96f542ee85dedf878bb60539a8aa6a489359 /src | |
| parent | b02414bb8270a8c6a15a58734e7f1c76c65892e3 (diff) | |
| download | postgresql-3049fe7cfa994208cb15cf0c9a20e773839ebf8f.tar.gz | |
Make the bgwriter's error recovery path do smgrcloseall(). On Windows this
should allow delete-pending files to actually go away, and thereby work
around the various complaints we've seen about 'permission denied'
errors in such cases. Should be reasonably harmless in any case...
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/postmaster/bgwriter.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index 4d5c1d1cca..9062b4f7de 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.32 2006/11/30 18:29:12 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.33 2006/12/01 19:55:28 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -304,6 +304,13 @@ BackgroundWriterMain(void) * fast as we can. */ pg_usleep(1000000L); + + /* + * Close all open files after any error. This is helpful on Windows, + * where holding deleted files open causes various strange errors. + * It's not clear we need it elsewhere, but shouldn't hurt. + */ + smgrcloseall(); } /* We can now handle ereport(ERROR) */ |
