Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
400916b6
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
400916b6
编写于
6月 28, 2010
作者:
R
Robert Haas
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
emode_for_corrupt_record shouldn't reduce LOG messages to WARNING.
In non-interactive sessions, WARNING sorts below LOG.
上级
ee37fb57
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
28 deletion
+9
-28
src/backend/access/transam/xlog.c
src/backend/access/transam/xlog.c
+9
-28
未找到文件。
src/backend/access/transam/xlog.c
浏览文件 @
400916b6
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.42
6 2010/06/17 17:37:23 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.42
7 2010/06/28 19:46:19 rhaas
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -9542,8 +9542,13 @@ triggered:
...
@@ -9542,8 +9542,13 @@ triggered:
* in the current WAL page, previously read by XLogPageRead().
* in the current WAL page, previously read by XLogPageRead().
*
*
* 'emode' is the error mode that would be used to report a file-not-found
* 'emode' is the error mode that would be used to report a file-not-found
* or legitimate end-of-WAL situation. It is upgraded to WARNING or PANIC
* or legitimate end-of-WAL situation. Generally, we use it as-is, but if
* if a corrupt record is not expected at this point.
* we're retrying the exact same record that we've tried previously, only
* complain the first time to keep the noise down. However, we only do when
* reading from pg_xlog, because we don't expect any invalid records in archive
* or in records streamed from master. Files in the archive should be complete,
* and we should never hit the end of WAL because we stop and wait for more WAL
* to arrive before replaying it.
*
*
* NOTE: This function remembers the RecPtr value it was last called with,
* NOTE: This function remembers the RecPtr value it was last called with,
* to suppress repeated messages about the same record. Only call this when
* to suppress repeated messages about the same record. Only call this when
...
@@ -9555,31 +9560,7 @@ emode_for_corrupt_record(int emode, XLogRecPtr RecPtr)
...
@@ -9555,31 +9560,7 @@ emode_for_corrupt_record(int emode, XLogRecPtr RecPtr)
{
{
static
XLogRecPtr
lastComplaint
=
{
0
,
0
};
static
XLogRecPtr
lastComplaint
=
{
0
,
0
};
/*
if
(
readSource
==
XLOG_FROM_PG_XLOG
&&
emode
==
LOG
)
* We don't expect any invalid records in archive or in records streamed
* from master. Files in the archive should be complete, and we should
* never hit the end of WAL because we stop and wait for more WAL to
* arrive before replaying it.
*
* In standby mode, throw a WARNING and keep retrying. If we're lucky
* it's a transient error and will go away by itself, and in any case
* it's better to keep the standby open for any possible read-only
* queries. We throw WARNING in PITR as well, which causes the recovery
* to end. That's questionable, you probably would want to abort the
* recovery if the archive is corrupt and investigate the situation.
* But that's the behavior we've always had, and it does make sense
* for tools like pg_standby that implement a standby mode externally.
*/
if
(
readSource
==
XLOG_FROM_STREAM
||
readSource
==
XLOG_FROM_ARCHIVE
)
{
if
(
emode
<
WARNING
)
emode
=
WARNING
;
}
/*
* If we retry reading a record in pg_xlog, only complain on the first
* time to keep the noise down.
*/
else
if
(
emode
==
LOG
)
{
{
if
(
XLByteEQ
(
RecPtr
,
lastComplaint
))
if
(
XLByteEQ
(
RecPtr
,
lastComplaint
))
emode
=
DEBUG1
;
emode
=
DEBUG1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录