- 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>
-
- Jul 22, 2020
-
-
Patrick Cloke authored
-
- Jun 15, 2020
-
-
Patrick Cloke authored
-
- May 18, 2020
-
-
Richard van der Hoff authored
-
- May 15, 2020
-
-
Richard van der Hoff authored
Make sure that the AccountDataStream presents complete updates, in the right order. This is much the same fix as #7337 and #7358, but applied to a different stream.
-
- May 13, 2020
-
-
Erik Johnston authored
-
- May 05, 2020
-
-
Richard van der Hoff authored
looks like we managed to break this during the refactorathon.
-
- May 01, 2020
-
-
Erik Johnston authored
For in memory streams when fetching updates on workers we need to query the source of the stream, which currently is hard coded to be master. This PR threads through the source instance we received via `POSITION` through to the update function in each stream, which can then be passed to the replication client for in memory streams.
-
Erik Johnston authored
We move the processing of typing and federation replication traffic into their handlers so that `Stream.current_token()` points to a valid token. This allows us to remove `get_streams_to_replicate()` and `stream_positions()`.
-
- Apr 29, 2020
-
-
Erik Johnston authored
This is primarily for allowing us to send those commands from workers, but for now simply allows us to ignore echoed RDATA/POSITION commands that we sent (we get echoes of sent commands when using redis). Currently we log a WARNING on the master process every time we receive an echoed RDATA.
-
Erik Johnston authored
For direct TCP connections we need the master to relay REMOTE_SERVER_UP commands to the other connections so that all instances get notified about it. The old implementation just relayed to all connections, assuming that sending back to the original sender of the command was safe. This is not true for redis, where commands sent get echoed back to the sender, which was causing master to effectively infinite loop sending and then re-receiving REMOTE_SERVER_UP commands that it sent. The fix is to ensure that we only relay to *other* connections and not to the connection we received the notification from. Fixes #7334.
-
Richard van der Hoff authored
* Factor out functions for injecting events into database I want to add some more flexibility to the tools for injecting events into the database, and I don't want to clutter up HomeserverTestCase with them, so let's factor them out to a new file. * Rework TestReplicationDataHandler This wasn't very easy to work with: the mock wrapping was largely superfluous, and it's useful to be able to inspect the received rows, and clear out the received list. * Fix AssertionErrors being thrown by EventsStream Part of the problem was that there was an off-by-one error in the assertion, but also the limit logic was too simple. Fix it all up and add some tests.
-
- Apr 28, 2020
-
-
Erik Johnston authored
Specifically some tests for the typing stream, which means we test streams that fetch missing updates via HTTP (rather than via the DB). We also shuffle things around a bit so that we create two separate `HomeServer` objects, rather than trying to insert a slaved store into places. Note: `test_typing.py` is heavily inspired by `test_receipts.py`
-
- Apr 22, 2020
-
-
Richard van der Hoff authored
I messed this up last time I tried (#7239 / e13c6c7a).
-
- Apr 06, 2020
-
-
Erik Johnston authored
The aim here is to move the command handling out of the TCP protocol classes and to also merge the client and server command handling (so that we can reuse them for redis protocol). This PR simply moves the client paths to the new `ReplicationCommandHandler`, a future PR will move the server paths too.
-
- Mar 25, 2020
-
-
Erik Johnston authored
This changes the replication protocol so that the server does not send down `RDATA` for rows that happened before the client connected. Instead, the server will send a `POSITION` and clients then query the database (or master out of band) to get up to date.
-
- Mar 23, 2020
-
-
Richard van der Hoff authored
This just helps keep the rows closer to their streams, so that it's easier to see what the format of each stream is.
-
- Jan 16, 2020
-
-
Erik Johnston authored
* Port synapse.replication.tcp to async/await * Newsfile * Correctly document type of on_<FOO> functions as async * Don't be overenthusiastic with the asyncing....
-
- Nov 27, 2019
-
-
Amber Brown authored
-
- May 10, 2019
-
-
Amber Brown authored
-
- Mar 27, 2019
-
-
Richard van der Hoff authored
-
- Mar 25, 2019
-
-
Richard van der Hoff authored
Make sure that they are sent correctly over the replication stream. Fixes: #4898
-