aboutsummaryrefslogtreecommitdiff
path: root/roomserver
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2022-05-17 13:23:35 +0100
committerGitHub <noreply@github.com>2022-05-17 13:23:35 +0100
commit6de29c1cd23d218f04d2e570932db8967d6adc4f (patch)
treeb95fa478ef9ecd2c21963868a3626063bdff7cbc /roomserver
parentcd82460513d5abf04e56c01667d56499d4c354be (diff)
bugfix: E2EE device keys could sometimes not be sent to remote servers (#2466)
* Fix flakey sytest 'Local device key changes get to remote servers' * Debug logs * Remove internal/test and use /test only Remove a lot of ancient code too. * Use FederationRoomserverAPI in more places * Use more interfaces in federationapi; begin adding regression test * Linting * Add regression test * Unbreak tests * ALL THE LOGS * Fix a race condition which could cause events to not be sent to servers If a new room event which rewrites state arrives, we remove all joined hosts then re-calculate them. This wasn't done in a transaction so for a brief period we would have no joined hosts. During this interim, key change events which arrive would not be sent to destination servers. This would sporadically fail on sytest. * Unbreak new tests * Linting
Diffstat (limited to 'roomserver')
-rw-r--r--roomserver/api/api.go1
-rw-r--r--roomserver/internal/input/input_test.go4
-rw-r--r--roomserver/internal/query/query_test.go2
-rw-r--r--roomserver/storage/tables/events_table_test.go2
-rw-r--r--roomserver/storage/tables/previous_events_table_test.go2
-rw-r--r--roomserver/storage/tables/published_table_test.go2
-rw-r--r--roomserver/storage/tables/room_aliases_table_test.go2
-rw-r--r--roomserver/storage/tables/rooms_table_test.go2
8 files changed, 9 insertions, 8 deletions
diff --git a/roomserver/api/api.go b/roomserver/api/api.go
index cbb4cebc..80e7aed6 100644
--- a/roomserver/api/api.go
+++ b/roomserver/api/api.go
@@ -183,6 +183,7 @@ type FederationRoomserverAPI interface {
QueryMissingEvents(ctx context.Context, req *QueryMissingEventsRequest, res *QueryMissingEventsResponse) error
// Query whether a server is allowed to see an event
QueryServerAllowedToSeeEvent(ctx context.Context, req *QueryServerAllowedToSeeEventRequest, res *QueryServerAllowedToSeeEventResponse) error
+ QueryRoomsForUser(ctx context.Context, req *QueryRoomsForUserRequest, res *QueryRoomsForUserResponse) error
PerformInboundPeek(ctx context.Context, req *PerformInboundPeekRequest, res *PerformInboundPeekResponse) error
PerformInvite(ctx context.Context, req *PerformInviteRequest, res *PerformInviteResponse) error
// Query a given amount (or less) of events prior to a given set of events.
diff --git a/roomserver/internal/input/input_test.go b/roomserver/internal/input/input_test.go
index a95c1355..7c65f9ea 100644
--- a/roomserver/internal/input/input_test.go
+++ b/roomserver/internal/input/input_test.go
@@ -12,7 +12,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/storage"
"github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/dendrite/test"
+ "github.com/matrix-org/dendrite/test/testrig"
"github.com/matrix-org/gomatrixserverlib"
"github.com/nats-io/nats.go"
)
@@ -22,7 +22,7 @@ var jc *nats.Conn
func TestMain(m *testing.M) {
var b *base.BaseDendrite
- b, js, jc = test.Base(nil)
+ b, js, jc = testrig.Base(nil)
code := m.Run()
b.ShutdownDendrite()
b.WaitForComponentsToFinish()
diff --git a/roomserver/internal/query/query_test.go b/roomserver/internal/query/query_test.go
index ba5bb9f5..03627ea9 100644
--- a/roomserver/internal/query/query_test.go
+++ b/roomserver/internal/query/query_test.go
@@ -19,8 +19,8 @@ import (
"encoding/json"
"testing"
- "github.com/matrix-org/dendrite/internal/test"
"github.com/matrix-org/dendrite/roomserver/types"
+ "github.com/matrix-org/dendrite/test"
"github.com/matrix-org/gomatrixserverlib"
)
diff --git a/roomserver/storage/tables/events_table_test.go b/roomserver/storage/tables/events_table_test.go
index d5d699c4..6f72a59b 100644
--- a/roomserver/storage/tables/events_table_test.go
+++ b/roomserver/storage/tables/events_table_test.go
@@ -39,7 +39,7 @@ func mustCreateEventsTable(t *testing.T, dbType test.DBType) (tables.Events, fun
}
func Test_EventsTable(t *testing.T) {
- alice := test.NewUser()
+ alice := test.NewUser(t)
room := test.NewRoom(t, alice)
ctx := context.Background()
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
diff --git a/roomserver/storage/tables/previous_events_table_test.go b/roomserver/storage/tables/previous_events_table_test.go
index 96d7bfed..63d54069 100644
--- a/roomserver/storage/tables/previous_events_table_test.go
+++ b/roomserver/storage/tables/previous_events_table_test.go
@@ -38,7 +38,7 @@ func mustCreatePreviousEventsTable(t *testing.T, dbType test.DBType) (tab tables
func TestPreviousEventsTable(t *testing.T) {
ctx := context.Background()
- alice := test.NewUser()
+ alice := test.NewUser(t)
room := test.NewRoom(t, alice)
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
tab, close := mustCreatePreviousEventsTable(t, dbType)
diff --git a/roomserver/storage/tables/published_table_test.go b/roomserver/storage/tables/published_table_test.go
index 87662ed4..fff6dc18 100644
--- a/roomserver/storage/tables/published_table_test.go
+++ b/roomserver/storage/tables/published_table_test.go
@@ -38,7 +38,7 @@ func mustCreatePublishedTable(t *testing.T, dbType test.DBType) (tab tables.Publ
func TestPublishedTable(t *testing.T) {
ctx := context.Background()
- alice := test.NewUser()
+ alice := test.NewUser(t)
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
tab, close := mustCreatePublishedTable(t, dbType)
diff --git a/roomserver/storage/tables/room_aliases_table_test.go b/roomserver/storage/tables/room_aliases_table_test.go
index 8fb57d5a..624d92ae 100644
--- a/roomserver/storage/tables/room_aliases_table_test.go
+++ b/roomserver/storage/tables/room_aliases_table_test.go
@@ -36,7 +36,7 @@ func mustCreateRoomAliasesTable(t *testing.T, dbType test.DBType) (tab tables.Ro
}
func TestRoomAliasesTable(t *testing.T) {
- alice := test.NewUser()
+ alice := test.NewUser(t)
room := test.NewRoom(t, alice)
room2 := test.NewRoom(t, alice)
ctx := context.Background()
diff --git a/roomserver/storage/tables/rooms_table_test.go b/roomserver/storage/tables/rooms_table_test.go
index 9872fb80..0a02369a 100644
--- a/roomserver/storage/tables/rooms_table_test.go
+++ b/roomserver/storage/tables/rooms_table_test.go
@@ -38,7 +38,7 @@ func mustCreateRoomsTable(t *testing.T, dbType test.DBType) (tab tables.Rooms, c
}
func TestRoomsTable(t *testing.T) {
- alice := test.NewUser()
+ alice := test.NewUser(t)
room := test.NewRoom(t, alice)
ctx := context.Background()
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {