mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-19 20:00:51 +08:00
Be more specific about OOM in XLogReaderAllocate
A couple of spots can benefit from an added errdetail(), which matches what we were already doing in other places; and those that cannot withstand errdetail() can get a more descriptive primary message. Author: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> Discussion: https://postgr.es/m/CALj2ACV+cX1eM03GfcA=ZMLXh5fSn1X1auJLz3yuS1duPSb9QA@mail.gmail.com
This commit is contained in:
parent
042412879e
commit
2fed48f48f
@ -1265,7 +1265,7 @@ XLogInsertRecord(XLogRecData *rdata,
|
||||
|
||||
if (!debug_reader)
|
||||
{
|
||||
appendStringInfoString(&buf, "error decoding record: out of memory");
|
||||
appendStringInfoString(&buf, "error decoding record: out of memory while allocating a WAL reading processor");
|
||||
}
|
||||
else if (!DecodeXLogRecord(debug_reader, (XLogRecord *) recordBuf.data,
|
||||
&errormsg))
|
||||
|
@ -202,7 +202,8 @@ StartupDecodingContext(List *output_plugin_options,
|
||||
if (!ctx->reader)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_OUT_OF_MEMORY),
|
||||
errmsg("out of memory")));
|
||||
errmsg("out of memory"),
|
||||
errdetail("Failed while allocating a WAL reading processor.")));
|
||||
|
||||
ctx->reorder = ReorderBufferAllocate();
|
||||
ctx->snapshot_builder =
|
||||
|
@ -681,7 +681,8 @@ StartReplication(StartReplicationCmd *cmd)
|
||||
if (!xlogreader)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_OUT_OF_MEMORY),
|
||||
errmsg("out of memory")));
|
||||
errmsg("out of memory"),
|
||||
errdetail("Failed while allocating a WAL reading processor.")));
|
||||
|
||||
/*
|
||||
* We assume here that we're logging enough information in the WAL for
|
||||
|
@ -74,7 +74,7 @@ extractPageMap(const char *datadir, XLogRecPtr startpoint, int tliIndex,
|
||||
XL_ROUTINE(.page_read = &SimpleXLogPageRead),
|
||||
&private);
|
||||
if (xlogreader == NULL)
|
||||
pg_fatal("out of memory");
|
||||
pg_fatal("out of memory while allocating a WAL reading processor");
|
||||
|
||||
XLogBeginRead(xlogreader, startpoint);
|
||||
do
|
||||
@ -132,7 +132,7 @@ readOneRecord(const char *datadir, XLogRecPtr ptr, int tliIndex,
|
||||
XL_ROUTINE(.page_read = &SimpleXLogPageRead),
|
||||
&private);
|
||||
if (xlogreader == NULL)
|
||||
pg_fatal("out of memory");
|
||||
pg_fatal("out of memory while allocating a WAL reading processor");
|
||||
|
||||
XLogBeginRead(xlogreader, ptr);
|
||||
record = XLogReadRecord(xlogreader, &errormsg);
|
||||
@ -192,7 +192,7 @@ findLastCheckpoint(const char *datadir, XLogRecPtr forkptr, int tliIndex,
|
||||
XL_ROUTINE(.page_read = &SimpleXLogPageRead),
|
||||
&private);
|
||||
if (xlogreader == NULL)
|
||||
pg_fatal("out of memory");
|
||||
pg_fatal("out of memory while allocating a WAL reading processor");
|
||||
|
||||
searchptr = forkptr;
|
||||
for (;;)
|
||||
|
@ -1061,7 +1061,7 @@ main(int argc, char **argv)
|
||||
.segment_close = WALDumpCloseSegment),
|
||||
&private);
|
||||
if (!xlogreader_state)
|
||||
fatal_error("out of memory");
|
||||
fatal_error("out of memory while allocating a WAL reading processor");
|
||||
|
||||
/* first find a valid recptr to start from */
|
||||
first_record = XLogFindNextRecord(xlogreader_state, private.startptr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user