Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
5dd04603
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,发现更多精彩内容 >>
提交
5dd04603
编写于
3月 14, 2001
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Don't go belly-up if fork() fails for a routine checkpoint subprocess.
Just try again later.
上级
286d1fc3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
4 deletion
+20
-4
src/backend/postmaster/postmaster.c
src/backend/postmaster/postmaster.c
+20
-4
未找到文件。
src/backend/postmaster/postmaster.c
浏览文件 @
5dd04603
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.2
09 2001/03/13 01:17:05
tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.2
10 2001/03/14 17:58:46
tgl Exp $
*
*
* NOTES
* NOTES
*
*
...
@@ -804,6 +804,11 @@ ServerLoop(void)
...
@@ -804,6 +804,11 @@ ServerLoop(void)
{
{
/* Time to make the checkpoint... */
/* Time to make the checkpoint... */
CheckPointPID
=
CheckPointDataBase
();
CheckPointPID
=
CheckPointDataBase
();
/* if fork failed, schedule another try at 0.1 normal delay */
if
(
CheckPointPID
==
0
)
{
checkpointed
=
now
-
(
9
*
CheckPointTimeout
)
/
10
;
}
}
}
}
}
...
@@ -2124,6 +2129,7 @@ schedule_checkpoint(SIGNAL_ARGS)
...
@@ -2124,6 +2129,7 @@ schedule_checkpoint(SIGNAL_ARGS)
Shutdown
==
NoShutdown
&&
!
FatalError
)
Shutdown
==
NoShutdown
&&
!
FatalError
)
{
{
CheckPointPID
=
CheckPointDataBase
();
CheckPointPID
=
CheckPointDataBase
();
/* note: if fork fails, CheckPointPID stays 0; nothing happens */
}
}
errno
=
save_errno
;
errno
=
save_errno
;
...
@@ -2264,6 +2270,9 @@ InitSSL(void)
...
@@ -2264,6 +2270,9 @@ InitSSL(void)
/*
/*
* Fire off a subprocess for startup/shutdown/checkpoint.
* Fire off a subprocess for startup/shutdown/checkpoint.
*
* Return value is subprocess' PID, or 0 if failed to start subprocess
* (0 is returned only for checkpoint case).
*/
*/
static
pid_t
static
pid_t
SSDataBase
(
int
xlop
)
SSDataBase
(
int
xlop
)
...
@@ -2332,8 +2341,15 @@ SSDataBase(int xlop)
...
@@ -2332,8 +2341,15 @@ SSDataBase(int xlop)
fprintf
(
stderr
,
"%s Data Base: fork failed: %s
\n
"
,
fprintf
(
stderr
,
"%s Data Base: fork failed: %s
\n
"
,
((
xlop
==
BS_XLOG_STARTUP
)
?
"Startup"
:
((
xlop
==
BS_XLOG_STARTUP
)
?
"Startup"
:
((
xlop
==
BS_XLOG_CHECKPOINT
)
?
"CheckPoint"
:
((
xlop
==
BS_XLOG_CHECKPOINT
)
?
"CheckPoint"
:
"Shutdown"
)),
strerror
(
errno
));
"Shutdown"
)),
strerror
(
errno
));
/*
* fork failure is fatal during startup/shutdown, but there's
* no need to choke if a routine checkpoint fails.
*/
if
(
xlop
==
BS_XLOG_CHECKPOINT
)
return
0
;
ExitPostmaster
(
1
);
ExitPostmaster
(
1
);
}
}
...
@@ -2363,7 +2379,7 @@ SSDataBase(int xlop)
...
@@ -2363,7 +2379,7 @@ SSDataBase(int xlop)
TouchSocketLockFile
();
TouchSocketLockFile
();
}
}
return
(
pid
)
;
return
pid
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录