EventIndex: Handle invalid m.room.redaction events correctly.
Clients might send invalid redaction events, such events will not have a valid redacts field containing the event id of the associated event that was redacted. Skip such events instead of ending up looping over the checkpoint forever.pull/21833/head
parent
403a64bcc6
commit
58f0814530
|
@ -507,7 +507,14 @@ export default class EventIndex extends EventEmitter {
|
||||||
try {
|
try {
|
||||||
for (let i = 0; i < redactionEvents.length; i++) {
|
for (let i = 0; i < redactionEvents.length; i++) {
|
||||||
const ev = redactionEvents[i];
|
const ev = redactionEvents[i];
|
||||||
await indexManager.deleteEvent(ev.getAssociatedId());
|
const eventId = ev.getAssociatedId();
|
||||||
|
|
||||||
|
if (eventId) {
|
||||||
|
await indexManager.deleteEvent(eventId);
|
||||||
|
} else {
|
||||||
|
console.log("EventIndex: Redaction event doesn't contain a",
|
||||||
|
"valid associated event id", ev);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const eventsAlreadyAdded = await indexManager.addHistoricEvents(
|
const eventsAlreadyAdded = await indexManager.addHistoricEvents(
|
||||||
|
|
Loading…
Reference in New Issue