- Jan 18, 2021
-
-
Erik Johnston authored
-
- Jan 15, 2021
-
-
Erik Johnston authored
We do this by allowing a single iteration to process multiple rooms at a time, as there are often a lot of really tiny rooms, which can massively slow things down.
-
- Jan 14, 2021
-
-
Erik Johnston authored
-
- Jan 12, 2021
-
-
Dirk Klimpel authored
This only applies if the user's data is to be erased.
-
- Jan 11, 2021
-
-
Erik Johnston authored
-
- Jan 07, 2021
-
-
Patrick Cloke authored
This allows for efficiently finding which users ignore a particular user. Co-authored-by:
Erik Johnston <erik@matrix.org>
-
- Dec 18, 2020
-
-
Erik Johnston authored
If we see stale extremities while persisting events, and notice that they don't change the result of state resolution, we drop them.
-
- Dec 17, 2020
-
-
Brendan Abolivier authored
* Use the simple dictionary in fts for the user directory * Clarify naming
-
Dirk Klimpel authored
-
- Dec 11, 2020
-
-
Dirk Klimpel authored
-
- Dec 04, 2020
-
-
Erik Johnston authored
This is so that we can choose which algorithm to use based on the room ID.
-
- Dec 02, 2020
-
-
Richard van der Hoff authored
-
Patrick Cloke authored
Replaces the `federation_ip_range_blacklist` configuration setting with an `ip_range_blacklist` setting with wider scope. It now applies to: * Federation * Identity servers * Push notifications * Checking key validitity for third-party invite events The old `federation_ip_range_blacklist` setting is still honored if present, but with reduced scope (it only applies to federation and identity servers).
-
Erik Johnston authored
We do state res with unpersisted events when calculating the new current state of the room, so that should be the only thing impacted. I don't think this is tooooo big of a deal as: 1. the next time a state event happens in the room the current state should correct itself; 2. in the common case all the unpersisted events' auth events will be pulled in by other state, so will still return the correct result (or one which is sufficiently close to not affect the result); and 3. we mostly use the state at an event to do important operations, which isn't affected by this.
-
- Nov 25, 2020
-
-
Dirk Klimpel authored
These are now only available via `/_synapse/admin/v1`.
-
- Nov 17, 2020
-
-
Erik Johnston authored
-
- Nov 16, 2020
-
-
Richard van der Hoff authored
-
Richard van der Hoff authored
-
Richard van der Hoff authored
Some tests want to set some custom HTTP request headers, so provide a way to do that before calling requestReceived().
-
- Oct 29, 2020
-
-
Erik Johnston authored
We do it this way round so that only the "owner" can delete the access token (i.e. `/logout/all` by the "owner" also deletes that token, but `/logout/all` by the "target user" doesn't). A future PR will add an API for creating such a token. When the target user and authenticated entity are different the `Processed request` log line will be logged with a: `{@admin:server as @bob:server} ...`. I'm not convinced by that format (especially since it adds spaces in there, making it harder to use `cut -d ' '` to chop off the start of log lines). Suggestions welcome.
-
- Oct 27, 2020
-
-
Dan Callahan authored
This allows trailing commas in multi-line arg lists. Minor, but we might as well keep our formatting current with regard to our minimum supported Python version. Signed-off-by:
Dan Callahan <danc@element.io>
-
- Oct 26, 2020
- Oct 22, 2020
-
-
Erik Johnston authored
-
- Oct 21, 2020
-
-
Richard van der Hoff authored
-
- Oct 15, 2020
-
-
Will Hunt authored
Optionally sends typing, presence, and read receipt information to appservices.
-
- Oct 14, 2020
-
-
Richard van der Hoff authored
-
Richard van der Hoff authored
-
Richard van der Hoff authored
-
- Oct 13, 2020
-
-
Richard van der Hoff authored
Update `EventCreationHandler.create_event` to accept an auth_events param, and use it in `_locally_reject_invite` instead of reinventing the wheel.
-
- Oct 12, 2020
-
-
Erik Johnston authored
Currently background proccesses stream the events stream use the "minimum persisted position" (i.e. `get_current_token()`) rather than the vector clock style tokens. This is broadly fine as it doesn't matter if the background processes lag a small amount. However, in extreme cases (i.e. SyTests) where we only write to one event persister the background processes will never make progress. This PR changes it so that the `MultiWriterIDGenerator` keeps the current position of a given instance as up to date as possible (i.e using the latest token it sees if its not in the process of persisting anything), and then periodically announces that over replication. This then allows the "minimum persisted position" to advance, albeit with a small lag.
-
- Oct 07, 2020
-
-
Erik Johnston authored
We call `_update_stream_positions_table_txn` a lot, which is an UPSERT that can conflict in `REPEATABLE READ` isolation level. Instead of doing a transaction consisting of a single query we may as well run it outside of a transaction.
-
Erik Johnston authored
We call `_update_stream_positions_table_txn` a lot, which is an UPSERT that can conflict in `REPEATABLE READ` isolation level. Instead of doing a transaction consisting of a single query we may as well run it outside of a transaction.
-
- Oct 02, 2020
-
-
Erik Johnston authored
This is so we can tell what is going on when things are taking a while to start up. The main change here is to ensure that transactions that are created during startup get correctly logged like normal transactions.
-
- Sep 30, 2020
-
-
Erik Johnston authored
The idea is that in future tokens will encode a mapping of instance to position. However, we don't want to include the full instance name in the string representation, so instead we'll have a mapping between instance name and an immutable integer ID in the DB that we can use instead. We'll then do the lookup when we serialize/deserialize the token (we could alternatively pass around an `Instance` type that includes both the name and ID, but that turns out to be a lot more invasive).
-
Richard van der Hoff authored
This was a bit unweildy for what I wanted: in particular, I wanted to assign each measurement straight into a bucket, rather than storing an intermediate Counter which didn't do any bucketing at all. I've replaced it with something that is hopefully a bit easier to use. (I'm not entirely sure what the difference between a HistogramMetricFamily and a GaugeHistogramMetricFamily is, but given our counters can go down as well as up the latter *sounds* more accurate?)
-
- Sep 29, 2020
-
-
Erik Johnston authored
-
Erik Johnston authored
* Fix table scan of events on worker startup. This happened because we assumed "new" writers had an initial stream position of 0, so the replication code tried to fetch all events written by the instance between 0 and the current position. Instead, set the initial position of new writers to the current persisted up to position, on the assumption that new writers won't have written anything before that point. * Consider old writers coming back as "new". Otherwise we'd try and fetch entries between the old stale token and the current position, even though it won't have written any rows. Co-authored-by:
Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Co-authored-by:
Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
-
Will Hunt authored
This is an attempt to fix #8403.
-
- Sep 28, 2020
-
-
Erik Johnston authored
-