diff options
author | huangzhw <hzweveryday@126.com> | 2020-07-10 13:29:44 +0800 |
---|---|---|
committer | Oran Agra <oran@redislabs.com> | 2020-10-27 08:49:22 +0200 |
commit | 918c9aa58c2985cb8e0682e24177d71af3d6f815 (patch) | |
tree | 552f9244ba8819d9381fb0c8605889c9874b3516 | |
parent | 8cc66985673ce1cd1194f4c01d297b3fd39ae4ea (diff) | |
download | redis-918c9aa58c2985cb8e0682e24177d71af3d6f815.tar.gz |
defrag.c activeDefragSdsListAndDict when defrag sdsele, We can't use (#7492)
it to calculate hash, we should use newsds.
(cherry picked from commit d6180c8c8674ffdae3d6efa5f946d85fe9163464)
(cherry picked from commit 7b21b8c3fbf288f379f489c3861fa05e04fe770c)
-rw-r--r-- | src/defrag.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/defrag.c b/src/defrag.c index ecf0255dc..ea44b2386 100644 --- a/src/defrag.c +++ b/src/defrag.c @@ -355,7 +355,7 @@ long activeDefragSdsListAndDict(list *l, dict *d, int dict_val_type) { sdsele = ln->value; if ((newsds = activeDefragSds(sdsele))) { /* When defragging an sds value, we need to update the dict key */ - uint64_t hash = dictGetHash(d, sdsele); + uint64_t hash = dictGetHash(d, newsds); replaceSateliteDictKeyPtrAndOrDefragDictEntry(d, sdsele, newsds, hash, &defragged); ln->value = newsds; defragged++; |