Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
45b0f6fb
Commit
45b0f6fb
authored
Apr 22, 2011
by
Pieter Noordhuis
Browse files
Use correct argc/argv for cleanup when loading AOF
parent
d8b6ae3c
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/aof.c
View file @
45b0f6fb
...
...
@@ -284,9 +284,11 @@ int loadAppendOnlyFile(char *filename) {
/* The fake client should not have a reply */
redisAssert
(
fakeClient
->
bufpos
==
0
&&
listLength
(
fakeClient
->
reply
)
==
0
);
/* Clean up, ready for the next command */
for
(
j
=
0
;
j
<
argc
;
j
++
)
decrRefCount
(
argv
[
j
]);
zfree
(
argv
);
/* Clean up. Command code may have changed argv/argc so we use the
* argv/argc of the client instead of the local variables. */
for
(
j
=
0
;
j
<
fakeClient
->
argc
;
j
++
)
decrRefCount
(
fakeClient
->
argv
[
j
]);
zfree
(
fakeClient
->
argv
);
}
/* This point can only be reached when EOF is reached without errors.
...
...
tests/integration/aof.tcl
View file @
45b0f6fb
...
...
@@ -83,4 +83,22 @@ tags {"aof"} {
assert_equal
""
[
$client
get bar
]
}
}
## Test that SPOP
(
that modifies the client its argc/argv
)
is correctly free'd
create_aof
{
append_to_aof
[
formatCommand sadd set foo
]
append_to_aof
[
formatCommand sadd set bar
]
append_to_aof
[
formatCommand spop set
]
}
start_server_aof
[
list dir $server_path
]
{
test
"AOF+SPOP: Server should have been started"
{
assert_equal 1
[
is_alive $srv
]
}
test
"AOF+SPOP: Set should have 1 member"
{
set client
[
redis
[
dict get $srv host
]
[
dict get $srv port
]]
assert_equal 1
[
$client
scard set
]
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment