Skip to content

Commit eb383c5

Browse files
warrick1016gd.zhou
authored andcommitted
[fix] bug of expiration
1 parent b9f1980 commit eb383c5

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/db.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,11 @@ kvobj *lookupKey(redisDb *db, robj *key, int flags, dictEntryLink *link) {
216216
expire_flags |= EXPIRE_AVOID_DELETE_EXPIRED;
217217
if (flags & LOOKUP_ACCESS_EXPIRED)
218218
expire_flags |= EXPIRE_ALLOW_ACCESS_EXPIRED;
219+
#ifdef ENABLE_SWAP
220+
if (expireIfNeeded(db, key, val, expire_flags) == KEY_DELETED) {
221+
#else
219222
if (expireIfNeeded(db, key, val, expire_flags) != KEY_VALID) {
223+
#endif
220224
/* The key is no longer valid. */
221225
val = NULL;
222226
if (link) *link = NULL;

tests/swap/unit/select.tcl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,17 @@ start_server {overrides {save ""} tags {"swap" "select"}} {
195195
$slave select 1
196196
assert_equal [$slave get key] db1
197197

198-
after 1000
198+
$slave select 0
199+
assert {[$slave pttl key] > 0}
200+
$slave select 1
201+
assert {[$slave pttl key] > 0}
202+
203+
after 1500
204+
205+
$slave select 0
206+
assert {[$slave pttl key] <= 0}
207+
$slave select 1
208+
assert {[$slave pttl key] <= 0}
199209

200210
$slave select 0
201211
assert_equal [$slave get key] {}

0 commit comments

Comments
 (0)