Don't bail so quickly in fetchMissingStateEvents

This commit is contained in:
Neil Alexander 2020-12-09 15:04:39 +00:00
parent 851c02659a
commit 7c6691f95a
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -31,6 +31,7 @@ import (
"github.com/matrix-org/dendrite/syncapi/storage/tables" "github.com/matrix-org/dendrite/syncapi/storage/tables"
"github.com/matrix-org/dendrite/syncapi/types" "github.com/matrix-org/dendrite/syncapi/types"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
@ -514,25 +515,28 @@ func (d *Database) addPDUDeltaToResponse(
deltas, joinedRoomIDs, err = d.getStateDeltas( deltas, joinedRoomIDs, err = d.getStateDeltas(
ctx, &device, txn, r, device.UserID, &stateFilter, ctx, &device, txn, r, device.UserID, &stateFilter,
) )
if err != nil {
return nil, fmt.Errorf("d.getStateDeltas: %w", err)
}
} else { } else {
deltas, joinedRoomIDs, err = d.getStateDeltasForFullStateSync( deltas, joinedRoomIDs, err = d.getStateDeltasForFullStateSync(
ctx, &device, txn, r, device.UserID, &stateFilter, ctx, &device, txn, r, device.UserID, &stateFilter,
) )
}
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("d.getStateDeltasForFullStateSync: %w", err)
}
} }
for _, delta := range deltas { for _, delta := range deltas {
err = d.addRoomDeltaToResponse(ctx, &device, txn, r, delta, numRecentEventsPerRoom, res) err = d.addRoomDeltaToResponse(ctx, &device, txn, r, delta, numRecentEventsPerRoom, res)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("d.addRoomDeltaToResponse: %w", err)
} }
} }
// TODO: This should be done in getStateDeltas // TODO: This should be done in getStateDeltas
if err = d.addInvitesToResponse(ctx, txn, device.UserID, r, res); err != nil { if err = d.addInvitesToResponse(ctx, txn, device.UserID, r, res); err != nil {
return nil, err return nil, fmt.Errorf("d.addInvitesToResponse: %w", err)
} }
succeeded = true succeeded = true
@ -1126,7 +1130,8 @@ func (d *Database) fetchMissingStateEvents(
return nil, err return nil, err
} }
if len(stateEvents) != len(missing) { if len(stateEvents) != len(missing) {
return nil, fmt.Errorf("failed to map all event IDs to events: (got %d, wanted %d)", len(stateEvents), len(missing)) logrus.WithContext(ctx).Warnf("Failed to map all event IDs to events (got %d, wanted %d)", len(stateEvents), len(missing))
//return nil, fmt.Errorf("failed to map all event IDs to events: (got %d, wanted %d)", len(stateEvents), len(missing))
} }
events = append(events, stateEvents...) events = append(events, stateEvents...)
return events, nil return events, nil