mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-29 17:53:09 -06:00
Check that we have a populated state snapshot when determining if we closed the gap
This commit is contained in:
parent
2771d93748
commit
92494e1f61
|
|
@ -486,7 +486,7 @@ Event:
|
|||
|
||||
// now check if we can fill the gap. Look to see if we have state snapshot IDs for the earliest event
|
||||
earliestNewEvent := newEvents[0]
|
||||
if state, err := t.db.StateAtEventIDs(ctx, []string{earliestNewEvent.EventID()}); err != nil || len(state) == 0 {
|
||||
if state, err := t.db.StateAtEventIDs(ctx, []string{earliestNewEvent.EventID()}); err != nil || len(state) == 0 || state[0].BeforeStateSnapshotNID == 0 {
|
||||
if earliestNewEvent.Type() == gomatrixserverlib.MRoomCreate && earliestNewEvent.StateKeyEquals("") {
|
||||
// we got to the beginning of the room so there will be no state! It's all good we can process this
|
||||
return newEvents, true, nil
|
||||
|
|
|
|||
|
|
@ -603,6 +603,8 @@ func (d *Database) storeEvent(
|
|||
if err == sql.ErrNoRows {
|
||||
// We've already inserted the event so select the numeric event ID
|
||||
eventNID, stateNID, err = d.EventsTable.SelectEvent(ctx, txn, event.EventID())
|
||||
} else if err != nil {
|
||||
return fmt.Errorf("d.EventsTable.InsertEvent: %w", err)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("d.EventsTable.SelectEvent: %w", err)
|
||||
|
|
|
|||
Loading…
Reference in a new issue