Expire entry needs to be resorted after a subkey expires

Former-commit-id: b357803362728c26a1169e3cec279c693b86205b
This commit is contained in:
John Sully 2020-03-25 01:06:40 -04:00
parent b057a9cd7a
commit 70faf2f375

View File

@ -135,6 +135,15 @@ void activeExpireCycleExpire(redisDb *db, expireEntry &e, long long now) {
if (deleted)
{
if (!pfat->FEmpty())
{
// We need to resort the expire entry since it may no longer be in the correct position
auto itr = db->setexpire->find(e.key());
expireEntry eT = std::move(e);
db->setexpire->erase(itr);
db->setexpire->insert(eT);
}
robj objT;
switch (val->type)
{