Neil Alexander
af46301970
Merge branch 'main' into neilalexander/purgeroom
2022-10-13 14:53:04 +01:00
Till
3c1474f68f
Fix /get_missing_events for rooms with joined/invited history_visibility ( #2787 )
...
Sytest was using a wrong `history_visibility` for `invited`
(https://github.com/matrix-org/sytest/pull/1303 ), so `invited` was
passing for the wrong reason (-> defaulted to `shared`, as `invite`
wasn't understood).
This change now handles missing events like Synapse, if a server isn't
allowed to see the event, it gets a redacted version of it, making the
`get_missing_events` tests pass.
2022-10-11 16:04:02 +02:00
Neil Alexander
5163cad239
Merge branch 'main' into neilalexander/purgeroom
2022-10-11 11:20:20 +01:00
Till
1ca3f3efb5
Fix issue with DMs shown as normal rooms ( #2776 )
...
Fixes #2121 , test added in
https://github.com/matrix-org/complement/pull/494
2022-10-07 16:00:12 +02:00
Neil Alexander
8e231130e9
Revert "tDatabase transaction tweaks in roomserver"
...
This reverts commit 8d8f4689a0 .
2022-10-07 14:05:06 +01:00
Neil Alexander
8d8f4689a0
tDatabase transaction tweaks in roomserver
2022-10-07 12:21:55 +01:00
Neil Alexander
3f82bceb70
Don't try to talk to ourselves when finding missing events
2022-10-06 10:51:06 +01:00
Neil Alexander
c85bc3434f
Optimise QuerySharedUsers so that we can only work on local users ( #2766 )
...
Otherwise the sync API key change consumer wastes a lot of time trying
to wake up the notifiers for non-local users.
2022-10-05 12:47:53 +01:00
Till
8c0c3441d8
Add RoomEventType nats.Header to avoid unneeded unmarshalling ( #2765 )
2022-10-05 12:12:42 +02:00
Neil Alexander
ae10aac456
Don't perform a federated join after invite if we are already joined to the room ( #2762 )
...
If we are already joined to the room then it shouldn't matter if you
were invited or not, so this looks like a bug.
2022-10-04 15:40:04 +01:00
Neil Alexander
abd6a6425a
Merge branch 'main' into neilalexander/purgeroom
2022-09-27 14:14:19 +01:00
Neil Alexander
f022fc1397
Remove origin field from PDUs ( #2737 )
...
This nukes the `origin` field from PDUs as per
matrix-org/matrix-spec#998 , matrix-org/gomatrixserverlib#341 .
2022-09-26 17:35:35 +01:00
Neil Alexander
40f00abd19
Merge branch 'main' into neilalexander/purgeroom
2022-09-20 10:09:40 +01:00
Neil Alexander
fc1d8e479b
Ensure that all state event IDs are included in the added section when rewriting state ( #2725 )
...
This should hopefully fix an entire class of problems where components
downstream from the roomserver (i.e. the sync API) could just lose a
whole bunch of state after a rewrite operation like a federated join.
The root of the bug is that we set `RewritesState` in the output event
which instructs downstream components to purge their copy of any room
state, but then didn't send the entire state snapshot in
`adds_state_event_ids` so the downstream state ends up being incomplete
as a result.
2022-09-16 10:35:32 +01:00
Neil Alexander
7f89fed1e4
Revert 482914aef4
2022-09-14 09:55:50 +01:00
Neil Alexander
482914aef4
Use AckNone on the ephemeral room input consumer
2022-09-13 15:25:02 +01:00
Neil Alexander
b05e028f7d
Tweak LoadMembershipAtEvent behaviour when state not known ( #2716 )
...
Previously `LoadMembershipAtEvent` would fail if the state before one of
the events was not known, i.e. because it was an outlier. This modifies
it so that it gracefully handles not knowing the state and returns no
memberships instead, so that history visibility doesn't freak out and
kill `/sync` requests dead.
2022-09-13 12:52:09 +01:00
Neil Alexander
1ca58ec9d1
Merge branch 'main' into neilalexander/purgeroom
2022-09-13 11:15:14 +01:00
Neil Alexander
3e55856254
Always resolve state in QueryStateAfterEvents
2022-09-13 09:37:38 +01:00
Till
100fa9b235
Check unique constraint errors when manually inserting migrations ( #2712 )
...
This should avoid unnecessary logging on startup if the migration (were
we need `InsertMigration`) was already executed.
This now checks for "unique constraint errors" for SQLite and Postgres
and fails the startup process if the migration couldn't be manually
inserted for some other reason.
2022-09-13 08:07:43 +02:00
Neil Alexander
31b71df1cd
Merge branch 'main' into neilalexander/purgeroom
2022-09-12 13:58:35 +01:00
Neil Alexander
2792d0490f
Fix missing signature check on the /get_missing_events response
2022-09-12 13:30:51 +01:00
Neil Alexander
47be521dd9
Merge branch 'main' into neilalexander/purgeroom
2022-09-11 20:42:32 +01:00
Neil Alexander
c0e17bbe1b
Fix transactions around assigning NIDs
2022-09-09 13:30:09 +01:00
Till
8196b29657
Change detection of already executed migrations ( #2665 )
...
This changes the detection of already executed migrations for the
roomserver state block and keychange refactor. It now uses schema tables
provided by the database engine to check if the column was already
removed. We now also store the migration in the migrations table.
This should stop e.g. Postgres from logging errors like `ERROR: column
"event_nid" does not exist at character 8`.
2022-09-09 13:14:52 +01:00
Neil Alexander
31f4ae8997
Use a single context instead
2022-09-07 16:24:43 +01:00
Neil Alexander
5014b35bd7
Update state reset capture to Sentry
2022-09-07 16:23:22 +01:00
Neil Alexander
049ebda94c
Merge branch 'main' into neilalexander/purgeroom
2022-09-07 13:50:07 +01:00
Neil Alexander
cd22ba22b0
Improve Sentry reporting
2022-09-05 17:25:11 +01:00
Neil Alexander
ecee5f10f4
Tweak logging for detected state resets
2022-09-05 17:08:54 +01:00
Neil Alexander
d1f87e63f1
Move SetLatestEvents call
2022-09-05 13:16:14 +01:00
Neil Alexander
ef0dcf6bee
Use background context, don't fall through
2022-08-25 14:38:19 +01:00
Neil Alexander
11856a502e
Merge branch 'main' into neilalexander/purgeroom
2022-08-25 12:11:15 +01:00
Neil Alexander
b7258dcc00
Let the roomserver work first
2022-08-25 12:11:00 +01:00
Neil Alexander
c1d6e18152
Lock the room during a purge operation to prevent other input events from populating mid-operation
2022-08-25 12:09:34 +01:00
Neil Alexander
8ff3f1a7c9
Remove a couple unnecessary Sentry captures from backfill
2022-08-25 11:01:07 +01:00
Neil Alexander
cd7fa34595
Tweak logging and Sentry reporting for roomserver input
2022-08-25 10:57:27 +01:00
Neil Alexander
295ba38937
Merge branch 'main' into neilalexander/purgeroom
2022-08-25 10:00:27 +01:00
Neil Alexander
16156b0b09
Fix 500s on /state, /state_ids when state not known ( #2672 )
...
This was due to bad error bubbling.
2022-08-25 09:51:36 +01:00
Neil Alexander
965f532bb0
Merge branch 'main' into neilalexander/purgeroom
2022-08-24 14:47:11 +01:00
Neil Alexander
522bd2999f
Allow un-rejecting events on reprocessing
2022-08-24 14:03:06 +01:00
Neil Alexander
14fea600bb
Detect types.MissingStateError in CheckServerAllowedToSeeEvent ( #2667 )
...
This will hopefully stop some 500 errors on `/event` where there is no state-before known.
2022-08-23 13:57:11 +01:00
Neil Alexander
e31469682d
Send the output event first
2022-08-22 14:14:29 +01:00
Neil Alexander
4e4fc400a2
Consolidate purge statements as they need to be prepared after other tables are created
2022-08-22 13:48:09 +01:00
Neil Alexander
cd81635cf4
Let us retry
2022-08-22 12:52:22 +01:00
Neil Alexander
c45bf118a8
Send output event for purge
2022-08-22 12:27:17 +01:00
Neil Alexander
4c4de0dfc6
Purge the room entry too
2022-08-22 12:05:38 +01:00
Neil Alexander
b56011514b
Fix a query
2022-08-22 12:01:23 +01:00
Neil Alexander
83c7984dba
Fix table name
2022-08-22 11:58:17 +01:00
Neil Alexander
6442aea104
Fix API trace
2022-08-22 11:57:00 +01:00