prefetch crashes intermittently when a snapshot exists

Former-commit-id: 4a2657023d5d8218c815ce77c2676fd53a634b3f
This commit is contained in:
John Sully 2021-09-23 17:44:06 +00:00
parent 938d318596
commit 0594060e75

View File

@ -3160,6 +3160,8 @@ void redisDbPersistentData::prefetchKeysAsync(client *c, parsed_command &command
if (command.argc >= 2) {
const char *cmd = szFromObj(command.argv[0]);
if (!strcasecmp(cmd, "set") || !strcasecmp(cmd, "get")) {
if (c->db->m_spdbSnapshotHOLDER != nullptr)
return; // this is dangerous enough without a snapshot around
auto h = dictSdsHash(szFromObj(command.argv[1]));
for (int iht = 0; iht < 2; ++iht) {
auto hT = h & c->db->m_pdict->ht[iht].sizemask;