Squashed commit of the following:

commit 2bd0daf4d61376d2dd56628eaff267b0bc63e116
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Wed Jun 1 09:55:54 2022 +0100

    Revert resolving old extremities as well as new

    This may no longer be needed with the new state fixes and probably just burns more CPU time than is strictly necessary.
This commit is contained in:
Neil Alexander 2022-06-01 10:09:27 +01:00
parent 70cd8c68c2
commit 02e5c74101
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -234,19 +234,12 @@ func (u *latestEventsUpdater) latestState() error {
} }
} }
// Take the old set of extremities and the new set of extremities and // Get a list of the current latest events. This may or may not
// mash them together into a list. This may or may not include the new event // include the new event from the input path, depending on whether
// from the input path, depending on whether it became a forward extremity // it is a forward extremity or not.
// or not. We'll then run state resolution across all of them to determine latestStateAtEvents := make([]types.StateAtEvent, len(u.latest))
// the new current state of the room. Including the old extremities here for i := range u.latest {
// ensures that new forward extremities with bad state snapshots (from latestStateAtEvents[i] = u.latest[i].StateAtEvent
// possible malicious actors) can't completely corrupt the room state
// away from what it was before.
combinedExtremities := types.StateAtEventAndReferences(append(u.oldLatest, u.latest...))
combinedExtremities = combinedExtremities[:util.SortAndUnique(combinedExtremities)]
latestStateAtEvents := make([]types.StateAtEvent, len(combinedExtremities))
for i := range combinedExtremities {
latestStateAtEvents[i] = combinedExtremities[i].StateAtEvent
} }
// Takes the NIDs of the latest events and creates a state snapshot // Takes the NIDs of the latest events and creates a state snapshot