mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-08-01 13:52:46 +00:00
Ensure only one transaction is used for RS input per room (#2178)
* Ensure the input API only uses a single transaction * Remove more of the dead query API call * Tidy up * Fix tests hopefully * Don't do unnecessary work for rooms that don't exist * Improve error, fix another case where transaction wasn't used properly * Add a unit test for checking single transaction on RS input API * Fix logic oops when deciding whether to use a transaction in storeEvent
This commit is contained in:
parent
a4e7d471af
commit
5106cc807c
13 changed files with 211 additions and 214 deletions
|
@ -83,13 +83,6 @@ type RoomserverInternalAPI interface {
|
|||
response *QueryStateAfterEventsResponse,
|
||||
) error
|
||||
|
||||
// Query whether the roomserver is missing any auth or prev events.
|
||||
QueryMissingAuthPrevEvents(
|
||||
ctx context.Context,
|
||||
request *QueryMissingAuthPrevEventsRequest,
|
||||
response *QueryMissingAuthPrevEventsResponse,
|
||||
) error
|
||||
|
||||
// Query a list of events by event ID.
|
||||
QueryEventsByID(
|
||||
ctx context.Context,
|
||||
|
|
|
@ -129,16 +129,6 @@ func (t *RoomserverInternalAPITrace) QueryStateAfterEvents(
|
|||
return err
|
||||
}
|
||||
|
||||
func (t *RoomserverInternalAPITrace) QueryMissingAuthPrevEvents(
|
||||
ctx context.Context,
|
||||
req *QueryMissingAuthPrevEventsRequest,
|
||||
res *QueryMissingAuthPrevEventsResponse,
|
||||
) error {
|
||||
err := t.Impl.QueryMissingAuthPrevEvents(ctx, req, res)
|
||||
util.GetLogger(ctx).WithError(err).Infof("QueryMissingAuthPrevEvents req=%+v res=%+v", js(req), js(res))
|
||||
return err
|
||||
}
|
||||
|
||||
func (t *RoomserverInternalAPITrace) QueryEventsByID(
|
||||
ctx context.Context,
|
||||
req *QueryEventsByIDRequest,
|
||||
|
|
|
@ -83,27 +83,6 @@ type QueryStateAfterEventsResponse struct {
|
|||
StateEvents []*gomatrixserverlib.HeaderedEvent `json:"state_events"`
|
||||
}
|
||||
|
||||
type QueryMissingAuthPrevEventsRequest struct {
|
||||
// The room ID to query the state in.
|
||||
RoomID string `json:"room_id"`
|
||||
// The list of auth events to check the existence of.
|
||||
AuthEventIDs []string `json:"auth_event_ids"`
|
||||
// The list of previous events to check the existence of.
|
||||
PrevEventIDs []string `json:"prev_event_ids"`
|
||||
}
|
||||
|
||||
type QueryMissingAuthPrevEventsResponse struct {
|
||||
// Does the room exist on this roomserver?
|
||||
// If the room doesn't exist all other fields will be empty.
|
||||
RoomExists bool `json:"room_exists"`
|
||||
// The room version of the room.
|
||||
RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
|
||||
// The event IDs of the auth events that we don't know locally.
|
||||
MissingAuthEventIDs []string `json:"missing_auth_event_ids"`
|
||||
// The event IDs of the previous events that we don't know locally.
|
||||
MissingPrevEventIDs []string `json:"missing_prev_event_ids"`
|
||||
}
|
||||
|
||||
// QueryEventsByIDRequest is a request to QueryEventsByID
|
||||
type QueryEventsByIDRequest struct {
|
||||
// The event IDs to look up.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue