Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf2b604e

Browse files
committed
Add some debugging details to some of the elog(STOP) conditions for WAL.
Standardize on %X/%X as the formatting for XLOG position display --- wehad a couple of different formats before, and none of 'em were as usefulas hex offsets IMHO.
1 parentc2ed891 commitf2b604e

File tree

1 file changed

+28
-23
lines changed
  • src/backend/access/transam

1 file changed

+28
-23
lines changed

‎src/backend/access/transam/xlog.c

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.75 2001/08/25 18:52:41 tgl Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.76 2001/09/06 02:02:48 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -760,7 +760,7 @@ begin:;
760760
{
761761
charbuf[8192];
762762

763-
sprintf(buf,"INSERT @ %u/%u: ",RecPtr.xlogid,RecPtr.xrecoff);
763+
sprintf(buf,"INSERT @ %X/%X: ",RecPtr.xlogid,RecPtr.xrecoff);
764764
xlog_outrec(buf,record);
765765
if (rdata->data!=NULL)
766766
{
@@ -1012,7 +1012,10 @@ XLogWrite(XLogwrtRqst WriteRqst)
10121012
* AdvanceXLInsertBuffer.
10131013
*/
10141014
if (!XLByteLT(LogwrtResult.Write,XLogCtl->xlblocks[Write->curridx]))
1015-
elog(STOP,"XLogWrite: write request is past end of log");
1015+
elog(STOP,"XLogWrite: write request %X/%X is past end of log %X/%X",
1016+
LogwrtResult.Write.xlogid,LogwrtResult.Write.xrecoff,
1017+
XLogCtl->xlblocks[Write->curridx].xlogid,
1018+
XLogCtl->xlblocks[Write->curridx].xrecoff);
10161019

10171020
/* Advance LogwrtResult.Write to end of current buffer page */
10181021
LogwrtResult.Write=XLogCtl->xlblocks[Write->curridx];
@@ -1190,7 +1193,7 @@ XLogFlush(XLogRecPtr record)
11901193

11911194
if (XLOG_DEBUG)
11921195
{
1193-
elog(DEBUG,"XLogFlush%s%s: request %u/%u; write %u/%u; flush %u/%u\n",
1196+
elog(DEBUG,"XLogFlush%s%s: request %X/%X; write %X/%X; flush %X/%X\n",
11941197
(IsBootstrapProcessingMode()) ?"(bootstrap)" :"",
11951198
(InRedo) ?"(redo)" :"",
11961199
record.xlogid,record.xrecoff,
@@ -1266,7 +1269,9 @@ XLogFlush(XLogRecPtr record)
12661269
XLogWrite(WriteRqst);
12671270
S_UNLOCK(&(XLogCtl->logwrt_lck));
12681271
if (XLByteLT(LogwrtResult.Flush,record))
1269-
elog(STOP,"XLogFlush: request is not satisfied");
1272+
elog(STOP,"XLogFlush: request %X/%X is not satisfied --- flushed only to %X/%X",
1273+
record.xlogid,record.xrecoff,
1274+
LogwrtResult.Flush.xlogid,LogwrtResult.Flush.xrecoff);
12701275
break;
12711276
}
12721277
S_LOCK_SLEEP(&(XLogCtl->logwrt_lck),spins++,XLOG_LOCK_TIMEOUT);
@@ -1688,7 +1693,7 @@ RecordIsValid(XLogRecord *record, XLogRecPtr recptr, int emode)
16881693

16891694
if (!EQ_CRC64(record->xl_crc,crc))
16901695
{
1691-
elog(emode,"ReadRecord: bad resource manager data checksum in record at %u/%u",
1696+
elog(emode,"ReadRecord: bad resource manager data checksum in record at %X/%X",
16921697
recptr.xlogid,recptr.xrecoff);
16931698
return (false);
16941699
}
@@ -1710,7 +1715,7 @@ RecordIsValid(XLogRecord *record, XLogRecPtr recptr, int emode)
17101715

17111716
if (!EQ_CRC64(cbuf,crc))
17121717
{
1713-
elog(emode,"ReadRecord: bad checksum of backup block %d in record at %u/%u",
1718+
elog(emode,"ReadRecord: bad checksum of backup block %d in record at %X/%X",
17141719
i+1,recptr.xlogid,recptr.xrecoff);
17151720
return (false);
17161721
}
@@ -1780,7 +1785,7 @@ ReadRecord(XLogRecPtr *RecPtr, int emode, char *buffer)
17801785
tmpRecPtr.xrecoff+=SizeOfXLogPHD;
17811786
}
17821787
elseif (!XRecOffIsValid(RecPtr->xrecoff))
1783-
elog(STOP,"ReadRecord: invalid record offset at(%u, %u)",
1788+
elog(STOP,"ReadRecord: invalid record offset at%X/%X",
17841789
RecPtr->xlogid,RecPtr->xrecoff);
17851790

17861791
if (readFile >=0&& !XLByteInSeg(*RecPtr,readId,readSeg))
@@ -1819,7 +1824,7 @@ ReadRecord(XLogRecPtr *RecPtr, int emode, char *buffer)
18191824
if ((((XLogPageHeader)readBuf)->xlp_info&XLP_FIRST_IS_CONTRECORD)&&
18201825
RecPtr->xrecoff %BLCKSZ==SizeOfXLogPHD)
18211826
{
1822-
elog(emode,"ReadRecord: contrecord is requested by(%u, %u)",
1827+
elog(emode,"ReadRecord: contrecord is requested by%X/%X",
18231828
RecPtr->xlogid,RecPtr->xrecoff);
18241829
gotonext_record_is_invalid;
18251830
}
@@ -1833,7 +1838,7 @@ got_record:;
18331838
*/
18341839
if (record->xl_len==0)
18351840
{
1836-
elog(emode,"ReadRecord: record with zero length at(%u, %u)",
1841+
elog(emode,"ReadRecord: record with zero length at%X/%X",
18371842
RecPtr->xlogid,RecPtr->xrecoff);
18381843
gotonext_record_is_invalid;
18391844
}
@@ -1857,13 +1862,13 @@ got_record:;
18571862
*/
18581863
if (total_len>_INTL_MAXLOGRECSZ)
18591864
{
1860-
elog(emode,"ReadRecord: record length %u at(%u, %u) too long",
1865+
elog(emode,"ReadRecord: record length %u at%X/%X too long",
18611866
total_len,RecPtr->xlogid,RecPtr->xrecoff);
18621867
gotonext_record_is_invalid;
18631868
}
18641869
if (record->xl_rmid>RM_MAX_ID)
18651870
{
1866-
elog(emode,"ReadRecord: invalid resource manager id %u at(%u, %u)",
1871+
elog(emode,"ReadRecord: invalid resource manager id %u at%X/%X",
18671872
record->xl_rmid,RecPtr->xlogid,RecPtr->xrecoff);
18681873
gotonext_record_is_invalid;
18691874
}
@@ -1987,7 +1992,7 @@ ValidXLOGHeader(XLogPageHeader hdr, int emode, bool checkSUI)
19871992
recaddr.xrecoff=readSeg*XLogSegSize+readOff;
19881993
if (!XLByteEQ(hdr->xlp_pageaddr,recaddr))
19891994
{
1990-
elog(emode,"ReadRecord: unexpected pageaddr(%u, %u) in log file %u, segment %u, offset %u",
1995+
elog(emode,"ReadRecord: unexpected pageaddr%X/%X in log file %u, segment %u, offset %u",
19911996
hdr->xlp_pageaddr.xlogid,hdr->xlp_pageaddr.xrecoff,
19921997
readId,readSeg,readOff);
19931998
return false;
@@ -2486,7 +2491,7 @@ StartupXLOG(void)
24862491
if (record!=NULL)
24872492
{
24882493
checkPointLoc=ControlFile->checkPoint;
2489-
elog(LOG,"checkpoint record is at(%u, %u)",
2494+
elog(LOG,"checkpoint record is at%X/%X",
24902495
checkPointLoc.xlogid,checkPointLoc.xrecoff);
24912496
}
24922497
else
@@ -2495,7 +2500,7 @@ StartupXLOG(void)
24952500
if (record!=NULL)
24962501
{
24972502
checkPointLoc=ControlFile->prevCheckPoint;
2498-
elog(LOG,"using previous checkpoint record at(%u, %u)",
2503+
elog(LOG,"using previous checkpoint record at%X/%X",
24992504
checkPointLoc.xlogid,checkPointLoc.xrecoff);
25002505
InRecovery= true;/* force recovery even if SHUTDOWNED */
25012506
}
@@ -2506,7 +2511,7 @@ StartupXLOG(void)
25062511
memcpy(&checkPoint,XLogRecGetData(record),sizeof(CheckPoint));
25072512
wasShutdown= (record->xl_info==XLOG_CHECKPOINT_SHUTDOWN);
25082513

2509-
elog(LOG,"redo record is at(%u, %u); undo record is at(%u, %u); shutdown %s",
2514+
elog(LOG,"redo record is at%X/%X; undo record is at%X/%X; shutdown %s",
25102515
checkPoint.redo.xlogid,checkPoint.redo.xrecoff,
25112516
checkPoint.undo.xlogid,checkPoint.undo.xrecoff,
25122517
wasShutdown ?"TRUE" :"FALSE");
@@ -2561,7 +2566,7 @@ StartupXLOG(void)
25612566
if (record!=NULL)
25622567
{
25632568
InRedo= true;
2564-
elog(LOG,"redo starts at(%u, %u)",
2569+
elog(LOG,"redo starts at%X/%X",
25652570
ReadRecPtr.xlogid,ReadRecPtr.xrecoff);
25662571
do
25672572
{
@@ -2576,7 +2581,7 @@ StartupXLOG(void)
25762581
{
25772582
charbuf[8192];
25782583

2579-
sprintf(buf,"REDO @ %u/%u; LSN %u/%u: ",
2584+
sprintf(buf,"REDO @ %X/%X; LSN %X/%X: ",
25802585
ReadRecPtr.xlogid,ReadRecPtr.xrecoff,
25812586
EndRecPtr.xlogid,EndRecPtr.xrecoff);
25822587
xlog_outrec(buf,record);
@@ -2592,7 +2597,7 @@ StartupXLOG(void)
25922597
RmgrTable[record->xl_rmid].rm_redo(EndRecPtr,record);
25932598
record=ReadRecord(NULL,LOG,buffer);
25942599
}while (record!=NULL);
2595-
elog(LOG,"redo done at(%u, %u)",
2600+
elog(LOG,"redo done at%X/%X",
25962601
ReadRecPtr.xlogid,ReadRecPtr.xrecoff);
25972602
LastRec=ReadRecPtr;
25982603
InRedo= false;
@@ -2681,7 +2686,7 @@ StartupXLOG(void)
26812686
RecPtr=ReadRecPtr;
26822687
if (XLByteLT(checkPoint.undo,RecPtr))
26832688
{
2684-
elog(LOG,"undo starts at(%u, %u)",
2689+
elog(LOG,"undo starts at%X/%X",
26852690
RecPtr.xlogid,RecPtr.xrecoff);
26862691
do
26872692
{
@@ -2691,7 +2696,7 @@ StartupXLOG(void)
26912696
RmgrTable[record->xl_rmid].rm_undo(EndRecPtr,record);
26922697
RecPtr=record->xl_prev;
26932698
}while (XLByteLE(checkPoint.undo,RecPtr));
2694-
elog(LOG,"undo done at(%u, %u)",
2699+
elog(LOG,"undo done at%X/%X",
26952700
ReadRecPtr.xlogid,ReadRecPtr.xrecoff);
26962701
}
26972702
else
@@ -3144,7 +3149,7 @@ xlog_desc(char *buf, uint8 xl_info, char *rec)
31443149
{
31453150
CheckPoint*checkpoint= (CheckPoint*)rec;
31463151

3147-
sprintf(buf+strlen(buf),"checkpoint: redo %u/%u; undo %u/%u; "
3152+
sprintf(buf+strlen(buf),"checkpoint: redo %X/%X; undo %X/%X; "
31483153
"sui %u; xid %u; oid %u; %s",
31493154
checkpoint->redo.xlogid,checkpoint->redo.xrecoff,
31503155
checkpoint->undo.xlogid,checkpoint->undo.xrecoff,
@@ -3169,7 +3174,7 @@ xlog_outrec(char *buf, XLogRecord *record)
31693174
intbkpb;
31703175
inti;
31713176

3172-
sprintf(buf+strlen(buf),"prev %u/%u; xprev %u/%u; xid %u",
3177+
sprintf(buf+strlen(buf),"prev %X/%X; xprev %X/%X; xid %u",
31733178
record->xl_prev.xlogid,record->xl_prev.xrecoff,
31743179
record->xl_xact_prev.xlogid,record->xl_xact_prev.xrecoff,
31753180
record->xl_xid);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp