mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-01 03:03:10 -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
|
// now check if we can fill the gap. Look to see if we have state snapshot IDs for the earliest event
|
||||||
earliestNewEvent := newEvents[0]
|
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("") {
|
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
|
// 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
|
return newEvents, true, nil
|
||||||
|
|
|
||||||
|
|
@ -603,6 +603,8 @@ func (d *Database) storeEvent(
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
// We've already inserted the event so select the numeric event ID
|
// We've already inserted the event so select the numeric event ID
|
||||||
eventNID, stateNID, err = d.EventsTable.SelectEvent(ctx, txn, event.EventID())
|
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 {
|
if err != nil {
|
||||||
return fmt.Errorf("d.EventsTable.SelectEvent: %w", err)
|
return fmt.Errorf("d.EventsTable.SelectEvent: %w", err)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue