From 39725e56e8a1271b2ba01c25aa0babf729f1f372 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 25 May 2000 23:30:20 +0000 Subject: [PATCH] Add some elog(DEBUG)'s to help diagnose mdblindwrt failures. --- src/backend/storage/smgr/md.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index e4fee43220..e4fd3120d2 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -8,10 +8,11 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.67 2000/04/12 17:15:41 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.68 2000/05/25 23:30:20 tgl Exp $ * *------------------------------------------------------------------------- */ +#include #include #include #include @@ -609,8 +610,11 @@ mdblindwrt(char *dbname, seekpos = (long) (BLCKSZ * (blkno)); #endif + errno = 0; + if (lseek(fd, seekpos, SEEK_SET) != seekpos) { + elog(DEBUG, "mdblindwrt: lseek(%ld) failed: %m", seekpos); close(fd); return SM_FAIL; } @@ -619,13 +623,22 @@ mdblindwrt(char *dbname, /* write and optionally sync the block */ if (write(fd, buffer, BLCKSZ) != BLCKSZ) + { + elog(DEBUG, "mdblindwrt: write() failed: %m"); status = SM_FAIL; + } else if (dofsync && pg_fsync(fd) < 0) + { + elog(DEBUG, "mdblindwrt: fsync() failed: %m"); status = SM_FAIL; + } if (close(fd) < 0) + { + elog(DEBUG, "mdblindwrt: close() failed: %m"); status = SM_FAIL; + } return status; } @@ -1122,6 +1135,9 @@ _mdfd_blind_getseg(char *dbname, char *relname, Oid dbid, Oid relid, fd = open(path, O_RDWR | O_BINARY, 0600); #endif + if (fd < 0) + elog(DEBUG, "_mdfd_blind_getseg: couldn't open %s: %m", path); + pfree(path); return fd; -- GitLab