Skip to content
Snippets Groups Projects
  1. May 05, 2020
  2. May 01, 2020
  3. Apr 30, 2020
  4. Apr 29, 2020
    • Erik Johnston's avatar
      Add instance name to RDATA/POSITION commands (#7364) · 37f6823f
      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.
      Unverified
      37f6823f
    • Erik Johnston's avatar
      Don't relay REMOTE_SERVER_UP cmds to same conn. (#7352) · 3eab76ad
      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.
      Unverified
      3eab76ad
    • Richard van der Hoff's avatar
      Fix limit logic for EventsStream (#7358) · c2e1a211
      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.
      Unverified
      c2e1a211
  5. Apr 28, 2020
  6. Apr 23, 2020
  7. Apr 22, 2020
  8. Apr 16, 2020
  9. Apr 15, 2020
  10. Apr 14, 2020
  11. Apr 09, 2020
  12. Apr 07, 2020
  13. Apr 06, 2020
    • Erik Johnston's avatar
      Move client command handling out of TCP protocol (#7185) · 5016b162
      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.
      Unverified
      5016b162
  14. Apr 04, 2020
    • Brendan Abolivier's avatar
      Server notices: Dissociate room creation/lookup from invite (#7199) · d73bf18d
      Brendan Abolivier authored
      Fixes #6815
      
      Before figuring out whether we should alert a user on MAU, we call get_notice_room_for_user to get some info on the existing server notices room for this user. This function, if the room doesn't exist, creates it and invites the user in it. This means that, if we decide later that no server notice is needed, the user gets invited in a room with no message in it. This happens at every restart of the server, since the room ID returned by get_notice_room_for_user is cached.
      
      This PR fixes that by moving the inviting bit to a dedicated function, that's only called when the server actually needs to send a notice to the user. A potential issue with this approach is that the room that's created by get_notice_room_for_user doesn't match how that same function looks for an existing room (i.e. it creates a room that doesn't have an invite or a join for the current user in it, so it could lead to a new room being created each time a user syncs), but I'm not sure this is a problem given it's cached until the server restarts, so that function won't run very often.
      
      It also renames get_notice_room_for_user into get_or_create_notice_room_for_user to make what it does clearer.
      Unverified
      d73bf18d
  15. Apr 03, 2020
  16. Apr 01, 2020
  17. Mar 31, 2020
  18. Mar 30, 2020
  19. Mar 27, 2020
Loading