Shay
e78d4f61fc
Refuse to start if DB has an unsafe locale ( #12262 )
2022-03-23 10:23:05 -07:00
Dirk Klimpel
9d21ecf7ce
Add type hints to tests files. ( #12256 )
2022-03-21 09:43:16 -04:00
Sean Quah
6121056740
Handle cancellation in DatabasePool.runInteraction() ( #12199 )
...
To handle cancellation, we ensure that `after_callback`s and
`exception_callback`s are always run, since the transaction will
complete on another thread regardless of cancellation.
We also wait until everything is done before releasing the
`CancelledError`, so that logging contexts won't get used after they
have been finished.
Signed-off-by: Sean Quah <seanq@element.io >
2022-03-16 15:07:41 +00:00
Patrick Cloke
dda9b7fc4d
Use the ignored_users table to test event visibility & sync. ( #12225 )
...
Instead of fetching the raw account data and re-parsing it. The
ignored_users table is a denormalised version of the account data
for quick searching.
2022-03-15 14:06:05 -04:00
Sean Quah
dea577998f
Add tests for database transaction callbacks ( #12198 )
...
Signed-off-by: Sean Quah <seanq@element.io >
2022-03-15 15:40:34 +00:00
Shay
ef3619e61d
Add config settings for background update parameters ( #11980 )
2022-03-11 10:46:45 -08:00
Patrick Cloke
ea27528b5d
Support stable identifiers for MSC3440: Threading ( #12151 )
...
The unstable identifiers are still supported if the experimental configuration
flag is enabled. The unstable identifiers will be removed in a future release.
2022-03-10 15:36:13 +00:00
Sean Quah
a4c1fdb44a
Remove dead code in tests/storage/test_database.py ( #12197 )
...
Signed-off-by: Sean Quah <seanq@element.io >
2022-03-09 18:45:21 +00:00
Shay
26211fec24
Fix a bug in background updates wherein background updates are never run using the default batch size ( #12157 )
2022-03-07 09:44:33 -08:00
reivilibre
c7b2f1ccdc
Back out in-flight state caching changes. ( #12126 )
2022-03-02 10:37:04 +00:00
reivilibre
c893632319
Order in-flight state group queries in biggest-first order ( #11610 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com >
2022-03-01 13:41:57 +00:00
Patrick Cloke
02d708568b
Replace assertEquals and friends with non-deprecated versions. ( #12092 )
2022-02-28 07:12:29 -05:00
reivilibre
2cc5ea933d
Add support for MSC3202: sending one-time key counts and fallback key usage states to Application Services. ( #11617 )
...
Co-authored-by: Erik Johnston <erik@matrix.org >
2022-02-24 17:55:45 +00:00
Sean Quah
41cf4c2cf6
Fix non-strings in the event_search table ( #12037 )
...
Don't attempt to add non-string `value`s to `event_search` and add a
background update to clear out bad rows from `event_search` when
using sqlite.
Signed-off-by: Sean Quah <seanq@element.io >
2022-02-24 11:52:28 +00:00
Richard van der Hoff
e24ff8ebe3
Remove HomeServer.get_datastore() ( #12031 )
...
The presence of this method was confusing, and mostly present for backwards
compatibility. Let's get rid of it.
Part of #11733
2022-02-23 11:04:02 +00:00
reivilibre
dcb6a37837
Cap the number of in-flight requests for state from a single group ( #11608 )
2022-02-22 14:24:31 +00:00
reivilibre
546b9c9e64
Add more tests for in-flight state query duplication. ( #12033 )
2022-02-22 11:44:11 +00:00
reivilibre
284ea2025a
Track and deduplicate in-flight requests to _get_state_for_groups. ( #10870 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com >
2022-02-18 17:23:31 +00:00
reivilibre
eb609c65d0
Fix bug in StateFilter.return_expanded() and add some tests. ( #12016 )
2022-02-18 14:54:31 +00:00
Erik Johnston
dc9fe61050
Fix incorrect get_rooms_for_user for remote user ( #11999 )
...
When the server leaves a room the `get_rooms_for_user` cache is not
correctly invalidated for the remote users in the room. This means that
subsequent calls to `get_rooms_for_user` for the remote users would
incorrectly include the room (it shouldn't be included because the
server no longer knows anything about the room).
2022-02-15 14:26:28 +00:00
Richard van der Hoff
63c46349c4
Implement MSC3706: partial state in /send_join response ( #11967 )
...
* Make `get_auth_chain_ids` return a Set
It has a set internally, and a set is often useful where it gets used, so let's
avoid converting to an intermediate list.
* Minor refactors in `on_send_join_request`
A little bit of non-functional groundwork
* Implement MSC3706: partial state in /send_join response
2022-02-12 10:44:16 +00:00
reivilibre
513913cc6b
Expose the registered device ID from the register_appservice_user test helper. ( #11615 )
2022-02-02 09:59:55 +00:00
Andrew Morgan
64ec45fc1b
Send to-device messages to application services ( #11215 )
...
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com >
2022-02-01 14:13:38 +00:00
Andrew Morgan
c3040dd5cc
Merge tag 'v1.51.0rc2' into develop
...
Synapse 1.51.0rc2 (2022-01-24)
==============================
Bugfixes
--------
- Fix a bug introduced in Synapse 1.40.0 that caused Synapse to fail to process incoming federation traffic after handling a large amount of events in a v1 room. ([\#11806](https://github.com/matrix-org/synapse/issues/11806 ))
2022-01-24 13:55:03 +00:00
Andrew Morgan
dc671d3ea7
Fix logic for dropping old events in fed queue ( #11806 )
...
Co-authored-by: Brendan Abolivier <babolivier@matrix.org >
Co-authored-by: Richard van der Hoff <richard@matrix.org >
2022-01-24 12:20:01 +00:00
Richard van der Hoff
2aa37a4250
Add state_key and rejection_reason to events ( #11792 )
...
... and start populating them for new events
2022-01-21 12:21:28 +00:00
Olivier Wilkinson (reivilibre)
e7da1ced24
Merge branch 'release-v1.50' into develop
2022-01-14 15:25:16 +00:00
Patrick Cloke
3e0536cd2a
Replace uses of simple_insert_many with simple_insert_many_values. ( #11742 )
...
This should be (slightly) more efficient and it is simpler
to have a single method for inserting multiple values.
2022-01-13 19:44:18 -05:00
reivilibre
b602ba194b
Fix a bug introduced in Synapse v1.50.0rc1 whereby outbound federation could fail because too many EDUs were produced for device updates. ( #11730 )
...
Co-authored-by: David Robertson <davidr@element.io >
2022-01-13 18:12:18 +00:00
reivilibre
22abfca8d9
Fix a bug introduced in Synapse v1.0.0 whereby device list updates would not be sent to remote homeservers if there were too many to send at once. ( #11729 )
...
Co-authored-by: Brendan Abolivier <babolivier@matrix.org >
2022-01-12 15:21:13 +00:00
reivilibre
2c7f5e74e5
Fix a type annotation in test_account_data.py and remove it from the Mypy exclusion list. ( #11657 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com >
2021-12-29 15:12:30 +00:00
reivilibre
e6897e7383
Refactor tests.util.setup_test_homeserver and tests.server.setup_test_homeserver. ( #11503 )
2021-12-21 16:12:05 +00:00
Patrick Cloke
b6102230a7
Add type hints to event_push_actions. ( #11594 )
2021-12-21 13:25:34 +00:00
V02460
7a7ca8f226
Use mock from standard library ( #11588 )
...
Instead of the backported version.
2021-12-20 10:34:46 -05:00
Sean Quah
ecfcd9bbbe
Add type hints to synapse/storage/databases/main/e2e_room_keys.py ( #11549 )
2021-12-14 17:46:47 +00:00
Sean Quah
a4dce5b53d
Remove redundant COALESCE()s around COUNT()s in database queries ( #11570 )
...
`COUNT()` never returns `NULL`. A `COUNT(*)` over 0 rows is 0 and a
`COUNT(NULL)` is also 0.
2021-12-14 12:34:30 +00:00
Olivier Wilkinson (reivilibre)
8cd68b8102
Revert accidental commits to develop.
2021-12-03 12:31:28 +00:00
Olivier Wilkinson (reivilibre)
b3fd99b74a
Move tests.utils.setup_test_homeserver to tests.server
...
It had no users.
We have just taken the identity of a previous function but don't provide the same
behaviour, so we need to fix this in the next commit...
2021-12-03 11:38:14 +00:00
reivilibre
f91624a595
Clean up tests.storage.test_appservice ( #11492 )
2021-12-02 18:43:33 +00:00
reivilibre
16d39a5490
Clean up tests.storage.test_main to remove use of legacy code. ( #11493 )
2021-12-02 18:13:43 +00:00
reivilibre
435f044807
Add type annotations to tests.storage.test_appservice. ( #11488 )
2021-12-02 15:30:05 +00:00
Patrick Cloke
ed635d3285
Add a license header and comment. ( #11479 )
2021-12-01 12:51:14 -05:00
Erik Johnston
d08ef6f155
Make background updates controllable via a plugin ( #11306 )
...
Co-authored-by: Brendan Abolivier <babolivier@matrix.org >
2021-11-29 17:57:06 +01:00
Sean Quah
c675a18071
Track ongoing event fetches correctly (again) ( #11376 )
...
The previous fix for the ongoing event fetches counter
(8eec25a1d9 ) was both insufficient and
incorrect.
When the database is unreachable, `_do_fetch` never gets run and so
`_event_fetch_ongoing` is never decremented.
The previous fix also moved the `_event_fetch_ongoing` decrement outside
of the `_event_fetch_lock` which allowed race conditions to corrupt the
counter.
2021-11-26 13:47:24 +00:00
Brendan Abolivier
0d88c4f903
Improve performance of remove_{hidden,deleted}_devices_from_device_inbox ( #11421 )
...
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com >
2021-11-25 15:14:54 +00:00
Brendan Abolivier
7f9841bdec
Lower minumum batch size to 1 for background updates ( #11422 )
...
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com >
2021-11-24 19:21:44 +00:00
Patrick Cloke
319dcb955e
Fix incorrect return value in tests. ( #11359 )
2021-11-16 16:36:46 +00:00
David Robertson
0caf20883c
Merge tag 'v1.47.0rc3' into develop
...
Synapse 1.47.0rc3 (2021-11-16)
==============================
Bugfixes
--------
- Fix a bug introduced in 1.47.0rc1 which caused worker processes to not halt startup in the presence of outstanding database migrations. ([\#11346](https://github.com/matrix-org/synapse/issues/11346 ))
- Fix a bug introduced in 1.47.0rc1 which prevented the 'remove deleted devices from `device_inbox` column' background process from running when updating from a recent Synapse version. ([\#11303](https://github.com/matrix-org/synapse/issues/11303 ), [\#11353](https://github.com/matrix-org/synapse/issues/11353 ))
2021-11-16 15:46:45 +00:00
Andrew Morgan
9c59e117db
Run _upgrade_existing_database on workers if at current schema_version ( #11346 )
...
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com >
2021-11-15 17:34:15 +00:00
David Robertson
e605e4b8f2
Database storage profile passes mypy ( #11342 )
...
It already seems to pass mypy. I wonder what changed, given that it was
on the exclusion list. So this commit consists of me ensuring
`--disallow-untyped-defs` passes and a minor fixup to a function that
returned either `True` or `None`.
2021-11-15 12:59:33 +00:00