From 403abf1ca5905f5a818f2ad6ed043f30da769368 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Tue, 21 Nov 2000 22:27:26 +0000 Subject: [PATCH] Refine log/error messages. Print out the errno message, not the number. Remove timestamps from messages where this would be redundant with the log_timestamp option. --- src/backend/access/transam/xlog.c | 181 +++++++++++++++--------------- 1 file changed, 91 insertions(+), 90 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 93244a4d5fb..46aa03edf69 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.32 2000/11/21 21:15:57 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.33 2000/11/21 22:27:26 petere Exp $ * *------------------------------------------------------------------------- */ @@ -565,7 +565,7 @@ XLogFlush(XLogRecPtr record) XLogWrite(usebuf); S_UNLOCK(&(XLogCtl->lgwr_lck)); if (XLByteLT(LgwrResult.Flush, record)) - elog(STOP, "XLogFlush: request is not satisfyed"); + elog(STOP, "XLogFlush: request is not satisfied"); return; } break; @@ -578,8 +578,8 @@ XLogFlush(XLogRecPtr record) (LgwrResult.Write.xrecoff - 1) / XLogSegSize != logSeg)) { if (close(logFile) != 0) - elog(STOP, "Close(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "close(logfile %u seg %u) failed: %m", + logId, logSeg); logFile = -1; } @@ -592,8 +592,8 @@ XLogFlush(XLogRecPtr record) } if (fsync(logFile) != 0) - elog(STOP, "Fsync(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "fsync(logfile %u seg %u) failed: %m", + logId, logSeg); LgwrResult.Flush = LgwrResult.Write; for (i = 0;;) @@ -686,8 +686,8 @@ XLogWrite(char *buffer) if (wcnt > 0) { if (fsync(logFile) != 0) - elog(STOP, "Fsync(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "fsync(logfile %u seg %u) failed: %m", + logId, logSeg); if (LgwrResult.Write.xlogid != logId) LgwrResult.Flush.xrecoff = XLogFileSize; else @@ -707,8 +707,8 @@ XLogWrite(char *buffer) if (logFile >= 0) { if (close(logFile) != 0) - elog(STOP, "Close(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "close(logfile %u seg %u) failed: %m", + logId, logSeg); logFile = -1; } logId = LgwrResult.Write.xlogid; @@ -740,8 +740,8 @@ XLogWrite(char *buffer) { logOff = (LgwrResult.Write.xrecoff - BLCKSZ) % XLogSegSize; if (lseek(logFile, (off_t) logOff, SEEK_SET) < 0) - elog(STOP, "Lseek(logfile %u seg %u off %u) failed: %d", - logId, logSeg, logOff, errno); + elog(STOP, "lseek(logfile %u seg %u off %u) failed: %m", + logId, logSeg, logOff); } if (buffer != NULL && XLByteLT(LgwrRqst.Write, LgwrResult.Write)) @@ -750,8 +750,8 @@ XLogWrite(char *buffer) from = XLogCtl->pages + Write->curridx * BLCKSZ; if (write(logFile, from, BLCKSZ) != BLCKSZ) - elog(STOP, "Write(logfile %u seg %u off %u) failed: %d", - logId, logSeg, logOff, errno); + elog(STOP, "write(logfile %u seg %u off %u) failed: %m", + logId, logSeg, logOff); wcnt++; logOff += BLCKSZ; @@ -768,8 +768,8 @@ XLogWrite(char *buffer) XLByteLE(LgwrRqst.Flush, LgwrResult.Write)) { if (fsync(logFile) != 0) - elog(STOP, "Fsync(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "fsync(logfile %u seg %u) failed: %m", + logId, logSeg); LgwrResult.Flush = LgwrResult.Write; } @@ -807,8 +807,8 @@ XLogFileInit(uint32 log, uint32 seg, bool *usexistent) if (fd < 0) { if (errno != ENOENT) - elog(STOP, "InitOpen(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "InitOpen(logfile %u seg %u) failed: %m", + logId, logSeg); } else return(fd); @@ -821,24 +821,24 @@ XLogFileInit(uint32 log, uint32 seg, bool *usexistent) fd = BasicOpenFile(tpath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) - elog(STOP, "InitCreate(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "InitCreate(logfile %u seg %u) failed: %m", + logId, logSeg); if (lseek(fd, XLogSegSize - 1, SEEK_SET) != (off_t) (XLogSegSize - 1)) - elog(STOP, "Lseek(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "lseek(logfile %u seg %u) failed: %m", + logId, logSeg); if (write(fd, "", 1) != 1) - elog(STOP, "Init(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "write(logfile %u seg %u) failed: %m", + logId, logSeg); if (fsync(fd) != 0) - elog(STOP, "Fsync(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "fsync(logfile %u seg %u) failed: %m", + logId, logSeg); if (lseek(fd, 0, SEEK_SET) < 0) - elog(STOP, "Lseek(logfile %u seg %u off %u) failed: %d", - log, seg, 0, errno); + elog(STOP, "lseek(logfile %u seg %u off %u) failed: %m", + log, seg, 0); close(fd); link(tpath, path); @@ -846,8 +846,8 @@ XLogFileInit(uint32 log, uint32 seg, bool *usexistent) fd = BasicOpenFile(path, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) - elog(STOP, "InitReopen(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "InitReopen(logfile %u seg %u) failed: %m", + logId, logSeg); return (fd); } @@ -865,13 +865,13 @@ XLogFileOpen(uint32 log, uint32 seg, bool econt) { if (econt && errno == ENOENT) { - elog(LOG, "Open(logfile %u seg %u) failed: file doesn't exist", + elog(LOG, "open(logfile %u seg %u) failed: %m", logId, logSeg); return (fd); } abort(); - elog(STOP, "Open(logfile %u seg %u) failed: %d", - logId, logSeg, errno); + elog(STOP, "open(logfile %u seg %u) failed: %m", + logId, logSeg); } return (fd); @@ -892,7 +892,7 @@ MoveOfflineLogs(char *archdir, uint32 _logId, uint32 _logSeg) xldir = opendir(XLogDir); if (xldir == NULL) - elog(STOP, "MoveOfflineLogs: cannot open xlog dir: %d", errno); + elog(STOP, "MoveOfflineLogs: cannot open xlog dir: %m"); sprintf(lastoff, "%08X%08X", _logId, _logSeg); @@ -916,7 +916,7 @@ MoveOfflineLogs(char *archdir, uint32 _logId, uint32 _logSeg) errno = 0; } if (errno) - elog(STOP, "MoveOfflineLogs: cannot read xlog dir: %d", errno); + elog(STOP, "MoveOfflineLogs: cannot read xlog dir: %m"); closedir(xldir); } @@ -970,11 +970,11 @@ ReadRecord(XLogRecPtr *RecPtr, char *buffer) { readOff = (RecPtr->xrecoff % XLogSegSize) / BLCKSZ; if (lseek(readFile, (off_t) (readOff * BLCKSZ), SEEK_SET) < 0) - elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); if (read(readFile, readBuf, BLCKSZ) != BLCKSZ) - elog(STOP, "ReadRecord: read(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: read(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); if (((XLogPageHeader) readBuf)->xlp_magic != XLOG_PAGE_MAGIC) { elog(emode, "ReadRecord: invalid magic number %u in logfile %u seg %u off %u", @@ -1040,8 +1040,8 @@ got_record:; goto next_record_is_invalid; } if (read(readFile, readBuf, BLCKSZ) != BLCKSZ) - elog(STOP, "ReadRecord: read(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: read(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); if (((XLogPageHeader) readBuf)->xlp_magic != XLOG_PAGE_MAGIC) { elog(emode, "ReadRecord: invalid magic number %u in logfile %u seg %u off %u", @@ -1132,19 +1132,19 @@ next_record_is_invalid:; readId, readSeg, readOff, EndRecPtr.xrecoff % BLCKSZ); readFile = XLogFileOpen(readId, readSeg, false); if (lseek(readFile, (off_t) (readOff * BLCKSZ), SEEK_SET) < 0) - elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); if (read(readFile, readBuf, BLCKSZ) != BLCKSZ) - elog(STOP, "ReadRecord: read(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: read(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); memset(readBuf + EndRecPtr.xrecoff % BLCKSZ, 0, BLCKSZ - EndRecPtr.xrecoff % BLCKSZ); if (lseek(readFile, (off_t) (readOff * BLCKSZ), SEEK_SET) < 0) - elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); if (write(readFile, readBuf, BLCKSZ) != BLCKSZ) - elog(STOP, "ReadRecord: write(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: write(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); readOff++; } else @@ -1165,21 +1165,21 @@ next_record_is_invalid:; memset(readBuf, 0, BLCKSZ); readFile = XLogFileOpen(readId, readSeg, false); if (lseek(readFile, (off_t) readOff, SEEK_SET) < 0) - elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: lseek(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); while (readOff < XLogSegSize) { if (write(readFile, readBuf, BLCKSZ) != BLCKSZ) - elog(STOP, "ReadRecord: write(logfile %u seg %u off %u) failed: %d", - readId, readSeg, readOff, errno); + elog(STOP, "ReadRecord: write(logfile %u seg %u off %u) failed: %m", + readId, readSeg, readOff); readOff += BLCKSZ; } } if (readFile >= 0) { if (fsync(readFile) < 0) - elog(STOP, "ReadRecord: fsync(logfile %u seg %u) failed: %d", - readId, readSeg, errno); + elog(STOP, "ReadRecord: fsync(logfile %u seg %u) failed: %m", + readId, readSeg); close(readFile); readFile = -1; } @@ -1217,13 +1217,13 @@ UpdateControlFile() fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) - elog(STOP, "Open(cntlfile) failed: %d", errno); + elog(STOP, "open(cntlfile) failed: %m"); if (write(fd, ControlFile, BLCKSZ) != BLCKSZ) - elog(STOP, "Write(cntlfile) failed: %d", errno); + elog(STOP, "write(cntlfile) failed: %m"); if (fsync(fd) != 0) - elog(STOP, "Fsync(cntlfile) failed: %d", errno); + elog(STOP, "fsync(cntlfile) failed: %m"); close(fd); @@ -1276,8 +1276,8 @@ BootStrapXLOG() fd = BasicOpenFile(ControlFilePath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) - elog(STOP, "BootStrapXLOG failed to create control file (%s): %d", - ControlFilePath, errno); + elog(STOP, "BootStrapXLOG failed to create control file (%s): %m", + ControlFilePath); checkPoint.redo.xlogid = 0; checkPoint.redo.xrecoff = SizeOfXLogPHD; @@ -1309,10 +1309,10 @@ BootStrapXLOG() logFile = XLogFileInit(0, 0, &usexistent); if (write(logFile, buffer, BLCKSZ) != BLCKSZ) - elog(STOP, "BootStrapXLOG failed to write logfile: %d", errno); + elog(STOP, "BootStrapXLOG failed to write logfile: %m"); if (fsync(logFile) != 0) - elog(STOP, "BootStrapXLOG failed to fsync logfile: %d", errno); + elog(STOP, "BootStrapXLOG failed to fsync logfile: %m"); close(logFile); logFile = -1; @@ -1330,10 +1330,10 @@ BootStrapXLOG() ControlFile->catalog_version_no = CATALOG_VERSION_NO; if (write(fd, ControlFile, BLCKSZ) != BLCKSZ) - elog(STOP, "BootStrapXLOG failed to write control file: %d", errno); + elog(STOP, "BootStrapXLOG failed to write control file: %m"); if (fsync(fd) != 0) - elog(STOP, "BootStrapXLOG failed to fsync control file: %d", errno); + elog(STOP, "BootStrapXLOG failed to fsync control file: %m"); close(fd); } @@ -1341,15 +1341,16 @@ BootStrapXLOG() static char * str_time(time_t tnow) { - char *result = ctime(&tnow); - char *p = strchr(result, '\n'); + static char buf[20]; - if (p != NULL) - *p = 0; + strftime(buf, sizeof(buf), + "%Y-%m-%d %H:%M:%S", + localtime(&tnow)); - return (result); + return buf; } + /* * This func must be called ONCE on system startup */ @@ -1368,7 +1369,7 @@ StartupXLOG() #endif int fd; - elog(LOG, "Data Base System is starting up at %s", str_time(time(NULL))); + elog(LOG, "starting up"); XLogCtl->xlblocks = (XLogRecPtr *) (((char *) XLogCtl) + sizeof(XLogCtlData)); XLogCtl->pages = ((char *) XLogCtl->xlblocks + sizeof(XLogRecPtr) * XLOGbuffers); @@ -1392,10 +1393,10 @@ StartupXLOG() */ fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) - elog(STOP, "Open(\"%s\") failed: %d", ControlFilePath, errno); + elog(STOP, "open(\"%s\") failed: %m", ControlFilePath); if (read(fd, ControlFile, BLCKSZ) != BLCKSZ) - elog(STOP, "Read(\"%s\") failed: %d", ControlFilePath, errno); + elog(STOP, "read(\"%s\") failed: %m", ControlFilePath); close(fd); @@ -1404,7 +1405,7 @@ StartupXLOG() ControlFile->state < DB_SHUTDOWNED || ControlFile->state > DB_IN_PRODUCTION || !XRecOffIsValid(ControlFile->checkPoint.xrecoff)) - elog(STOP, "Control file context is broken"); + elog(STOP, "control file context is broken"); /* Check for incompatible database */ if (ControlFile->blcksz != BLCKSZ) @@ -1418,20 +1419,20 @@ StartupXLOG() ControlFile->catalog_version_no, CATALOG_VERSION_NO); if (ControlFile->state == DB_SHUTDOWNED) - elog(LOG, "Data Base System was shutted down at %s", + elog(LOG, "database system was shut down at %s", str_time(ControlFile->time)); else if (ControlFile->state == DB_SHUTDOWNING) - elog(LOG, "Data Base System was interrupted when shutting down at %s", + elog(LOG, "database system shutdown was interrupted at %s", str_time(ControlFile->time)); else if (ControlFile->state == DB_IN_RECOVERY) { - elog(LOG, "Data Base System was interrupted being in recovery at %s\n" + elog(LOG, "database system was interrupted being in recovery at %s\n" "\tThis propably means that some data blocks are corrupted\n" - "\tAnd you will have to use last backup for recovery", + "\tand you will have to use last backup for recovery.", str_time(ControlFile->time)); } else if (ControlFile->state == DB_IN_PRODUCTION) - elog(LOG, "Data Base System was interrupted being in production at %s", + elog(LOG, "database system was interrupted at %s", str_time(ControlFile->time)); #ifdef XLOG @@ -1482,7 +1483,7 @@ StartupXLOG() if (checkPoint.Shutdown) elog(STOP, "Invalid Redo/Undo record in shutdown checkpoint"); if (ControlFile->state == DB_SHUTDOWNED) - elog(STOP, "Invalid Redo/Undo record in Shutdowned state"); + elog(STOP, "Invalid Redo/Undo record in shut down state"); InRecovery = true; } else if (ControlFile->state != DB_SHUTDOWNED) @@ -1493,8 +1494,8 @@ StartupXLOG() /* REDO */ if (InRecovery) { - elog(LOG, "The DataBase system was not properly shut down\n" - "\tAutomatic recovery is in progress..."); + elog(LOG, "database system was not properly shut down; " + "automatic recovery in progress..."); ControlFile->state = DB_IN_RECOVERY; ControlFile->time = time(NULL); UpdateControlFile(); @@ -1515,7 +1516,7 @@ StartupXLOG() if (record->xl_len != 0) { InRedo = true; - elog(LOG, "Redo starts at (%u, %u)", + elog(LOG, "redo starts at (%u, %u)", ReadRecPtr.xlogid, ReadRecPtr.xrecoff); do { @@ -1539,13 +1540,13 @@ StartupXLOG() RmgrTable[record->xl_rmid].rm_redo(EndRecPtr, record); record = ReadRecord(NULL, buffer); } while (record->xl_len != 0); - elog(LOG, "Redo done at (%u, %u)", + elog(LOG, "redo done at (%u, %u)", ReadRecPtr.xlogid, ReadRecPtr.xrecoff); LastRec = ReadRecPtr; InRedo = false; } else - elog(LOG, "Redo is not required"); + elog(LOG, "redo is not required"); } /* Init xlog buffer cache */ @@ -1579,7 +1580,7 @@ StartupXLOG() RecPtr = ReadRecPtr; if (XLByteLT(checkPoint.undo, RecPtr)) { - elog(LOG, "Undo starts at (%u, %u)", + elog(LOG, "undo starts at (%u, %u)", RecPtr.xlogid, RecPtr.xrecoff); do { @@ -1589,11 +1590,11 @@ StartupXLOG() RmgrTable[record->xl_rmid].rm_undo(EndRecPtr, record); RecPtr = record->xl_prev; } while (XLByteLE(checkPoint.undo, RecPtr)); - elog(LOG, "Undo done at (%u, %u)", + elog(LOG, "undo done at (%u, %u)", ReadRecPtr.xlogid, ReadRecPtr.xrecoff); } else - elog(LOG, "Undo is not required"); + elog(LOG, "undo is not required"); } #endif @@ -1614,7 +1615,7 @@ StartupXLOG() ThisStartUpID++; XLogCtl->ThisStartUpID = ThisStartUpID; - elog(LOG, "Data Base System is in production state at %s", str_time(time(NULL))); + elog(LOG, "database system is in production state"); return; } @@ -1635,14 +1636,14 @@ SetThisStartUpID(void) void ShutdownXLOG() { - elog(LOG, "Data Base System shutting down at %s", str_time(time(NULL))); + elog(LOG, "shutting down"); #ifdef XLOG CreateDummyCaches(); #endif CreateCheckPoint(true); - elog(LOG, "Data Base System shut down at %s", str_time(time(NULL))); + elog(LOG, "database system is shut down"); } extern XLogRecPtr GetUndoRecPtr(void); -- GitLab