Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
8063b99d
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8063b99d
编写于
5月 06, 2010
作者:
P
Pieter Noordhuis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
log error and quit when the AOF contains an unfinished MULTI
上级
98d2e23b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
0 deletion
+13
-0
redis.c
redis.c
+13
-0
未找到文件。
redis.c
浏览文件 @
8063b99d
...
...
@@ -8111,12 +8111,14 @@ static struct redisClient *createFakeClient(void) {
c
->
reply
=
listCreate
();
listSetFreeMethod
(
c
->
reply
,
decrRefCount
);
listSetDupMethod
(
c
->
reply
,
dupClientReplyValue
);
initClientMultiState
(
c
);
return
c
;
}
static
void
freeFakeClient
(
struct
redisClient
*
c
)
{
sdsfree
(
c
->
querybuf
);
listRelease
(
c
->
reply
);
freeClientMultiState
(
c
);
zfree
(
c
);
}
...
...
@@ -8128,6 +8130,7 @@ int loadAppendOnlyFile(char *filename) {
FILE
*
fp
=
fopen
(
filename
,
"r"
);
struct
redis_stat
sb
;
unsigned
long
long
loadedkeys
=
0
;
int
appendonly
=
server
.
appendonly
;
if
(
redis_fstat
(
fileno
(
fp
),
&
sb
)
!=
-
1
&&
sb
.
st_size
==
0
)
return
REDIS_ERR
;
...
...
@@ -8137,6 +8140,10 @@ int loadAppendOnlyFile(char *filename) {
exit
(
1
);
}
/* Temporarily disable AOF, to prevent EXEC from feeding a MULTI
* to the same file we're about to read. */
server
.
appendonly
=
0
;
fakeClient
=
createFakeClient
();
while
(
1
)
{
int
argc
,
j
;
...
...
@@ -8192,8 +8199,14 @@ int loadAppendOnlyFile(char *filename) {
}
}
}
/* This point can only be reached when EOF is reached without errors.
* If the client is in the middle of a MULTI/EXEC, log error and quit. */
if
(
fakeClient
->
flags
&
REDIS_MULTI
)
goto
readerr
;
fclose
(
fp
);
freeFakeClient
(
fakeClient
);
server
.
appendonly
=
appendonly
;
return
REDIS_OK
;
readerr:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录