Skip to content

Commit

Permalink
Merge pull request #523 from vector-im/bwindels/clear-cache-after-515
Browse files Browse the repository at this point in the history
clear history cache to purge potential timeline corruption from #515
  • Loading branch information
bwindels authored Sep 30, 2021
2 parents f8f4bb4 + ccda93c commit 4cebe26
Showing 1 changed file with 28 additions and 1 deletion.
29 changes: 28 additions & 1 deletion src/matrix/storage/idb/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ export const schema: MigrationFunc[] = [
createTimelineRelationsStore,
fixMissingRoomsInUserIdentities,
changeSSSSKeyPrefix,
backupAndRestoreE2EEAccountToLocalStorage
backupAndRestoreE2EEAccountToLocalStorage,
clearAllStores
];
// TODO: how to deal with git merge conflicts of this array?

Expand Down Expand Up @@ -243,3 +244,29 @@ async function backupAndRestoreE2EEAccountToLocalStorage(db: IDBDatabase, txn: I
const restored = await sessionStore.tryRestoreE2EEIdentityFromLocalStorage(log);
log.set("restored", restored);
}
// v14 clear all stores apart from e2ee keys because of possible timeline corruption in #515, will trigger initial sync
async function clearAllStores(db: IDBDatabase, txn: IDBTransaction) {
for (const storeName of db.objectStoreNames) {
const store = txn.objectStore(storeName);
switch (storeName) {
case "inboundGroupSessions":
case "outboundGroupSessions":
case "olmSessions":
case "operations":
continue;
case "session": {
await iterateCursor(store.openCursor(), (value, key, cursor) => {
if (!(key as string).startsWith(SESSION_E2EE_KEY_PREFIX)) {
cursor.delete();
}
return NOT_DONE;
})
break;
}
default: {
store.clear();
break;
}
}
}
}

0 comments on commit 4cebe26

Please sign in to comment.