We returned too early and didn't set the mvcc
Former-commit-id: d8e2ffe538a6b237529c37cb142a7076dd4836f8
This commit is contained in:
parent
0d6cab75fc
commit
caff59ed65
@ -1601,23 +1601,22 @@ robj *deserializeStoredStringObject(const char *data, size_t cb)
|
|||||||
newObject = createObject(OBJ_STRING, nullptr);
|
newObject = createObject(OBJ_STRING, nullptr);
|
||||||
newObject->encoding = oT->encoding;
|
newObject->encoding = oT->encoding;
|
||||||
newObject->m_ptr = oT->m_ptr;
|
newObject->m_ptr = oT->m_ptr;
|
||||||
return newObject;
|
break;
|
||||||
|
|
||||||
case OBJ_ENCODING_EMBSTR:
|
case OBJ_ENCODING_EMBSTR:
|
||||||
newObject = createEmbeddedStringObject(szFromObj(oT), sdslen(szFromObj(oT)));
|
newObject = createEmbeddedStringObject(szFromObj(oT), sdslen(szFromObj(oT)));
|
||||||
return newObject;
|
break;
|
||||||
|
|
||||||
case OBJ_ENCODING_RAW:
|
case OBJ_ENCODING_RAW:
|
||||||
newObject = createObject(OBJ_STRING, sdsnewlen(SDS_NOINIT,cb-sizeof(robj)-sizeof(uint64_t)));
|
newObject = createObject(OBJ_STRING, sdsnewlen(SDS_NOINIT,cb-sizeof(robj)-sizeof(uint64_t)));
|
||||||
newObject->lru = oT->lru;
|
newObject->lru = oT->lru;
|
||||||
memcpy(newObject->m_ptr, data+sizeof(robj)+sizeof(mvcc), cb-sizeof(robj)-sizeof(mvcc));
|
memcpy(newObject->m_ptr, data+sizeof(robj)+sizeof(mvcc), cb-sizeof(robj)-sizeof(mvcc));
|
||||||
return newObject;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
serverPanic("Unknown string object encoding from storage");
|
serverPanic("Unknown string object encoding from storage");
|
||||||
}
|
}
|
||||||
setMvccTstamp(newObject, mvcc);
|
setMvccTstamp(newObject, mvcc);
|
||||||
newObject->setrefcount(1);
|
|
||||||
|
|
||||||
return newObject;
|
return newObject;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user