1
0
Commit Graph

419 Commits

Author SHA1 Message Date
Andrew Morgan
e64449b7be Merge commit '46613aaf7' into dinsic
* commit '46613aaf7': (27 commits)
  Incorporate review
  Lint
  Incorporate review bits
  Pre-populate the unread_count column
  Don't update the schema version
  Use attr instead of a dict
  Lint
  Test that a mark_unread action updates the right counter when using a slave store
  Remove debug logging
  Test that a mark_unread action updates the right counter
  Fix summary rotation
  Log for invalid values of notif
  Fix SQL
  Fix schema update
  Lint
  Save the count of unread messages to event_push_summary
  Actually act on mark_unread
  Appease mypy
  Lint
  Use temporary prefixes as per the MSC
  ...
2020-08-03 16:22:42 -07:00
Andrew Morgan
a7d49db74f Merge branch 'release-v1.15.0' of github.com:matrix-org/synapse into dinsic-release-v1.15.x
* 'release-v1.15.0' of github.com:matrix-org/synapse: (55 commits)
  1.15.0
  Fix some attributions
  Update CHANGES.md
  1.15.0rc1
  Revert "1.15.0rc1"
  1.15.0rc1
  Fix bug in account data replication stream. (#7656)
  Convert the registration handler to async/await. (#7649)
  Accept device information at the login fallback endpoint. (#7629)
  Convert user directory handler and related classes to async/await. (#7640)
  Add an option to disable autojoin for guest accounts (#6637)
  Clarifications to the admin api documentation (#7647)
  Update to the stable SSO prefix for UI Auth. (#7630)
  Fix type information on `assert_*_is_admin` methods (#7645)
  Remove some unused constants. (#7644)
  Typo fixes.
  Allow new users to be registered via the admin API even if the monthly active user limit has been reached (#7263)
  Add device management to admin API (#7481)
  Attempt to fix PhoneHomeStatsTestCase.test_performance_100 being flaky. (#7634)
  Support CS API v0.6.0 (#6585)
  ...
2020-06-24 12:07:41 +01:00
Brendan Abolivier
63d9a00bf1 Remove debug logging 2020-06-12 11:13:30 +01:00
Brendan Abolivier
2a07c5ded6 Test that a mark_unread action updates the right counter 2020-06-12 11:08:05 +01:00
Brendan Abolivier
476a89707a Fix tests 2020-06-10 17:55:03 +01:00
Andrew Morgan
cde3bda815 Merge branch 'release-v1.14.0' of github.com:matrix-org/synapse into dinsic-release-v1.14.x
* 'release-v1.14.0' of github.com:matrix-org/synapse: (108 commits)
  Fix typo in PR link
  Update debian changelog
  1.14.0
  Improve changelog wording
  1.14.0rc2
  Fix sample config docs error (#7581)
  Fix up comments
  Fix specifying cache factors via env vars with * in name. (#7580)
  Don't apply cache factor to event cache. (#7578)
  Ensure ReplicationStreamer is always started when replication enabled. (#7579)
  Remove the changes to the debian changelog
  Not full release yet, this is rc1
  Merge event persistence move changelog entries
  More changelog fix
  Changelog fixes
  1.14.0
  Replace device_27_unique_idx bg update with a fg one (#7562)
  Fix incorrect exception handling in KeyUploadServlet.on_POST (#7563)
  Fix recording of federation stream token (#7564)
  Simplify reap_monthly_active_users (#7558)
  ...
2020-06-10 17:26:48 +01:00
Andrew Morgan
e8a7a853f8 Merge branch 'release-v1.13.0' of github.com:matrix-org/synapse into dinsic-release-v1.14.x
* 'release-v1.13.0' of github.com:matrix-org/synapse: (257 commits)
  Update changelog based on feedback.
  Move warnings in the changelog and re-iterate changes to branches.
  1.13.0
  update dh-virtualenv (#7526)
  1.13.0rc3
  Hash passwords earlier in the registration process (#7523)
  1.13.0rc2
  1.13.0rc2
  Stop `get_joined_users` corruption from custom statuses (#7376)
  Do not validate that the client dict is stable during UI Auth. (#7483)
  Fix new flake8 errors (#7489)
  Don't UPGRADE database rows
  RST indenting
  Put rollback instructions in upgrade notes
  Fix changelog typo
  Oh yeah, RST
  Absolute URL it is then
  Fix upgrade notes link
  Provide summary of upgrade issues in changelog. Fix )
  Move next version notes from changelog to upgrade notes
  ...
2020-06-10 16:58:10 +01:00
Andrew Morgan
0188daf32c Replace instances of reactor pumping with get_success. (#7619)
Calls `self.get_success` on all deferred methods instead of abusing `self.pump()`. This has the benefit of working with coroutines, as well as checking that method execution completed successfully.

There are also a few small cleanups that I made in the process.
2020-06-03 16:39:30 +01:00
Richard van der Hoff
f4269694ce Optimise some references to hs.config (#7546)
These are surprisingly expensive, and we only really need to do them at startup.
2020-05-22 21:47:07 +01:00
Erik Johnston
1531b214fc Add ability to wait for replication streams (#7542)
The idea here is that if an instance persists an event via the replication HTTP API it can return before we receive that event over replication, which can lead to races where code assumes that persisting an event immediately updates various caches (e.g. current state of the room).

Most of Synapse doesn't hit such races, so we don't do the waiting automagically, instead we do so where necessary to avoid unnecessary delays. We may decide to change our minds here if it turns out there are a lot of subtle races going on.

People probably want to look at this commit by commit.
2020-05-22 14:21:54 +01:00
Richard van der Hoff
dede23ff1e Merge tag 'v1.13.0rc2' into develop
Synapse 1.13.0rc2 (2020-05-14)
==============================

Bugfixes
--------

- Fix a long-standing bug which could cause messages not to be sent over federation, when state events with state keys matching user IDs (such as custom user statuses) were received. ([\#7376](https://github.com/matrix-org/synapse/issues/7376))
- Restore compatibility with non-compliant clients during the user interactive authentication process, fixing a problem introduced in v1.13.0rc1. ([\#7483](https://github.com/matrix-org/synapse/issues/7483))

Internal Changes
----------------

- Fix linting errors in new version of Flake8. ([\#7470](https://github.com/matrix-org/synapse/issues/7470))
2020-05-14 11:46:38 +01:00
Richard van der Hoff
a0e063387d Stop get_joined_users corruption from custom statuses (#7376)
Fix a bug where the `get_joined_users` cache could be corrupted by custom
status events (or other state events with a state_key matching the user ID).

The bug was introduced by #2229, but has largely gone unnoticed since then.

Fixes #7099, #7373.
2020-05-14 10:07:54 +01:00
Erik Johnston
782e4e64df Shuffle persist event data store functions. (#7440)
The aim here is to get to a stage where we have a `PersistEventStore` that holds all the write methods used during event persistence, so that we can take that class out of the `DataStore` mixin and instansiate it separately. This will allow us to instansiate it on processes other than master, while also ensuring it is only available on processes that are configured to write to events stream.

This is a bit of an architectural change, where we end up with multiple classes per data store (rather than one per data store we have now). We end up having:

1. Storage classes that provide high level APIs that can talk to multiple data stores.
2. Data store modules that consist of classes that must point at the same database instance.
3. Classes in a data store that can be instantiated on processes depending on config.
2020-05-13 13:38:22 +01:00
Amber Brown
7cb8b4bc67 Allow configuration of Synapse's cache without using synctl or environment variables (#6391) 2020-05-11 18:45:23 +01:00
Manuel Stahl
a4a5ec4096 Add room details admin endpoint (#7317) 2020-05-07 15:33:07 -04:00
Erik Johnston
8123b2f909 Add MultiWriterIdGenerator. (#7281)
This will be used to coordinate stream IDs across multiple writers.

Functions as the equivalent of both `StreamIdGenerator` and
`SlavedIdTracker`.
2020-05-04 17:17:45 +01:00
Manuel Stahl
04dd7d182d Return total number of users and profile attributes in admin users endpoint (#6881)
Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de>
2020-04-28 18:19:36 +01:00
Richard van der Hoff
f31e65a749 bg update to clear out duplicate outbound_device_list_pokes (#7193)
We seem to have some duplicates, which could do with being cleared out.
2020-04-07 23:06:39 +01:00
Richard van der Hoff
b4c2234232 Make do_next_background_update return a bool
returning a None or an int that we don't use is confusing.
2020-03-31 17:43:58 +01:00
Richard van der Hoff
26d17b9bdc Make has_completed_background_updates async
(Almost) everywhere that uses it is happy with an awaitable.
2020-03-31 17:43:58 +01:00
Richard van der Hoff
cfe8c8ab8e Remove unused start_background_update
This was only used in a unit test, so let's just inline it in the test.
2020-03-31 17:24:06 +01:00
Andrew Morgan
62c75e6536 Improve get auth chain difference algorithm. (#7095)
* commit '4a17a647a':
  Improve get auth chain difference algorithm. (#7095)
2020-03-24 14:42:21 +00:00
Andrew Morgan
5dfd887245 Break down monthly active users by appservice_id (#7030)
* commit '1d66dce83':
  Break down monthly active users by appservice_id  (#7030)
2020-03-24 14:24:25 +00:00
Andrew Morgan
35d74a232c Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)
* commit '509e381af':
  Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)
  changelog
  Increase MAX_EVENTS_BEHIND for replication clients
2020-03-24 13:16:43 +00:00
Andrew Morgan
0818ea48e7 Merge pull request #6872 from matrix-org/rav/dictproperty
* commit '3f1cd1479':
  changelog
  Rewrite _EventInternalMetadata to back it with a _dict
  Replace _event_dict_property with DictProperty
2020-03-24 13:13:51 +00:00
Andrew Morgan
ae9e55b13c Add typing to SyncHandler (#6821)
* commit 'b9391c957':
  Add typing to SyncHandler (#6821)
2020-03-23 17:04:47 +00:00
Andrew Morgan
92ec7ba1fb Add rooms.room_version column (#6729)
* commit '8df862e45':
  Add `rooms.room_version` column (#6729)
2020-03-23 13:25:38 +00:00
Andrew Morgan
5a32d2941e Make 'event.redacts' never raise. (#6771)
* commit 'fa4d609e2':
  Make 'event.redacts' never raise. (#6771)
  Fixup changelog
  Fixup changelog
  Fixup changelog
2020-03-23 13:16:57 +00:00
Andrew Morgan
1e34631d1a Add local_current_membership table (#6655)
* commit '28c98e51f':
  Add `local_current_membership` table (#6655)
2020-03-23 11:34:19 +00:00
Andrew Morgan
35d1ec2c8f Allow admin users to create or modify users without a shared secret (#6495)
* commit 'd2906fe66':
  Allow admin users to create or modify users without a shared secret (#6495)
  Fixup changelog
2020-03-23 11:31:22 +00:00
Andrew Morgan
0fec900aab port BackgroundUpdateTestCase to HomeserverTestCase (#6653)
* commit 'd20c34654':
  port BackgroundUpdateTestCase to HomeserverTestCase (#6653)
  changelog
  Fix exceptions in log when rejected event is replicated
  async/await for SyncReplicationHandler.process_and_notify
  Clarify documentation on get_event* methods
2020-03-20 16:59:35 +00:00
Andrew Morgan
eb08accdba Merge pull request #6629 from matrix-org/rav/kill_event_reference_hashes
* commit '1807db5e7':
  changelog
  Remove unused get_latest_event_ids_and_hashes_in_room
  Remove unused get_prev_events_and_hashes_for_room
  Remove unused hashes and depths from _update_membership params
  Remove unused hashes and depths from create_event params
  Remove unused hashes and depths from create_new_client_event params
  replace get_prev_events_and_hashes_for_room with get_prev_events_for_room in create_new_client_event
  rename get_prev_events_for_room to get_prev_events_and_hashes_for_room
2020-03-20 16:59:26 +00:00
Andrew Morgan
02a2fd0f6a Split state groups into a separate data store (#6296)
* commit '75d8f26ac':
  Split state groups into a separate data store (#6296)
2020-03-20 15:01:31 +00:00
Andrew Morgan
032fed6f42 Add database config class (#6513)
* commit '2284eb3a5':
  Add database config class (#6513)
  too many parens
2020-03-20 14:39:41 +00:00
Andrew Morgan
9ccb061352 Fix race which caused deleted devices to reappear (#6514)
* commit '40eda8493':
  Fix race which caused deleted devices to reappear (#6514)
2020-03-19 17:47:40 +00:00
Andrew Morgan
5069b7fbe7 Back out perf regression from get_cross_signing_keys_from_cache. (#6494)
* commit 'adfdd82b2':
  Back out perf regression from get_cross_signing_keys_from_cache. (#6494)
  Fix comment
  Fix port db script
  Newsfile
  Fixup tests
  Move start up DB checks to main data store.
  Pass Database into the data store
  Move are_all_users_on_domain checks to main data store.
  Change DataStores to accept 'database' param.
2020-03-19 17:14:53 +00:00
Andrew Morgan
60baffdaa4 Merge pull request #6469 from matrix-org/erikj/make_database_class
* commit 'f3ea2f5a0':
  Remove unused var
  Fix DB scripts
  Newsfile
  Move background update handling out of store
  Comments
  Move DB pool and helper functions into dedicated Database class
2020-03-19 17:12:37 +00:00
Andrew Morgan
237f3fe187 Merge pull request #6464 from matrix-org/erikj/make_public_sql_base
* commit 'ddbbfc951':
  Newsfile
  Remove underscore from SQLBaseStore functions
  Don't call SQLBaseStore methods from outside stores
2020-03-19 16:28:41 +00:00
Erik Johnston
a319cb1dd1 Change device list streams to have one row per ID (#7010)
* Add 'device_lists_outbound_pokes' as extra table.

This makes sure we check all the relevant tables to get the current max
stream ID.

Currently not doing so isn't problematic as the max stream ID in
`device_lists_outbound_pokes` is the same as in `device_lists_stream`,
however that will change.

* Change device lists stream to have one row per id.

This will make it possible to process the streams more incrementally,
avoiding having to process large chunks at once.

* Change device list replication to match new semantics.

Instead of sending down batches of user ID/host tuples, send down a row
per entity (user ID or host).

* Newsfile

* Remove handling of multiple rows per ID

* Fix worker handling

* Comments from review
2020-03-19 11:36:53 +00:00
Andrew Morgan
d4ac2758dd Implementation of MSC2314 (#6176)
* commit '0f87b912a':
  Implementation of MSC2314 (#6176)
2020-03-18 17:53:47 +00:00
Andrew Morgan
8c493de8e3 add etag and count to key backup endpoints (#5858)
* commit '0d27aba90':
  add etag and count to key backup endpoints (#5858)
2020-03-18 17:48:53 +00:00
Erik Johnston
4a17a647a9 Improve get auth chain difference algorithm. (#7095)
It was originally implemented by pulling the full auth chain of all
state sets out of the database and doing set comparison. However, that
can take a lot work if the state and auth chains are large.

Instead, lets try and fetch the auth chains at the same time and
calculate the difference on the fly, allowing us to bail early if all
the auth chains converge. Assuming that the auth chains do converge more
often than not, this should improve performance. Hopefully.
2020-03-18 16:46:41 +00:00
Andrew Morgan
21fcaa872c Merge pull request #6295 from matrix-org/erikj/split_purge_history
* commit 'f713c01e2':
  Move type annotation into docstring
  Fix deleting state groups during room purge.
  Use correct type annotation
  Change to not require a state_groups.room_id index.
  Fix up comment
  Update log line to lie a little less
  Add state_groups.room_id index
  Docstrings
  Fix purge room API
  Newsfile
  Split purge API into events vs state
2020-03-18 16:14:17 +00:00
Andrew Morgan
55be059f91 Merge pull request #5727 from matrix-org/uhoreg/e2e_cross-signing2-part3
* commit '53d7680e3':
  Update synapse/storage/data_stores/main/devices.py
  rename get_devices_by_remote to get_device_updates_by_remote
  black
  apply changes as a result of PR review
  don't error if federation query doesn't have cross-signing keys
  move get_e2e_cross_signing_key to EndToEndKeyWorkerStore so it works with workers
  black
  vendor-prefix the EDU name until MSC1756 is merged into the spec
  fix unit test
  add news file
  update to work with newer code, and fix formatting
  add missing param
  make black happy
  don't crash if the user doesn't have cross-signing keys
  implement federation parts of cross-signing
2020-03-16 19:23:32 +00:00
Andrew Morgan
6d29b53424 Merge pull request #6294 from matrix-org/erikj/add_state_storage 2020-03-16 19:21:18 +00:00
Andrew Morgan
44b1bc5cc2 Merge pull request #6240 from matrix-org/erikj/split_out_persistence_store 2020-03-16 15:42:55 +00:00
Andrew Morgan
bf117c452a Merge pull request #6291 from matrix-org/erikj/fix_cache_descriptor 2020-03-16 15:36:57 +00:00
Andrew Morgan
97f1b92b56 Merge pull request #6253 from matrix-org/uhoreg/e2e_backup_delete_keys
* commit 'da78f6177':
  remove unneeded imports
  switch to using HomeserverTestCase
  remove some unnecessary lines
  add changelog
  delete keys when deleting backups
2020-03-16 15:31:19 +00:00
Andrew Morgan
bf1fad8462 Merge pull request #6231 from matrix-org/erikj/refactor_stores 2020-03-16 15:13:49 +00:00
Neil Johnson
1d66dce83e Break down monthly active users by appservice_id (#7030)
* Break down monthly active users by appservice_id and emit via prometheus.

Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
2020-03-06 18:14:19 +00:00