summary refs log tree commit diff
path: root/synapse/handlers/pagination.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Make token serializing/deserializing async (#8427)Erik Johnston2020-09-301-4/+4
| | | 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).
* Various clean ups to room stream tokens. (#8423)Erik Johnston2020-09-291-3/+2
|
* Fix a bad merge from release-v1.20.0. (#8354)Patrick Cloke2020-09-181-1/+1
|
* Merge tag 'v1.20.0rc5' into developPatrick Cloke2020-09-181-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.20.0rc5 (2020-09-18) ============================== In addition to the below, Synapse 1.20.0rc5 also includes the bug fix that was included in 1.19.3. Features -------- - Add flags to the `/versions` endpoint for whether new rooms default to using E2EE. ([\#8343](https://github.com/matrix-org/synapse/issues/8343)) Bugfixes -------- - Fix rate limiting of federation `/send` requests. ([\#8342](https://github.com/matrix-org/synapse/issues/8342)) - Fix a longstanding bug where back pagination over federation could get stuck if it failed to handle a received event. ([\#8349](https://github.com/matrix-org/synapse/issues/8349)) Internal Changes ---------------- - Blacklist [MSC2753](https://github.com/matrix-org/matrix-doc/pull/2753) SyTests until it is implemented. ([\#8285](https://github.com/matrix-org/synapse/issues/8285))
| * Intelligently select extremities used in backfill. (#8349)Erik Johnston2020-09-181-4/+4
| | | | | | | | | | | | | | | | | | Instead of just using the most recent extremities let's pick the ones that will give us results that the pagination request cares about, i.e. pick extremities only if they have a smaller depth than the pagination token. This is useful when we fail to backfill an extremity, as we no longer get stuck requesting that same extremity repeatedly.
* | Make `StreamToken.room_key` be a `RoomStreamToken` instance. (#8281)Erik Johnston2020-09-111-2/+2
| |
* | Fix mypy error on develop (#8282)Erik Johnston2020-09-081-3/+6
| |
* | Clean up types for PaginationConfig (#8250)Erik Johnston2020-09-081-20/+22
|/ | | This removes `SourcePaginationConfig` and `get_pagination_rows`. The reasoning behind this is that these generic classes/functions erased the types of the IDs it used (i.e. instead of passing around `StreamToken` it'd pass in e.g. `token.room_key`, which don't have uniform types).
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-2/+2
|
* Add type hints to more handlers (#8244)Erik Johnston2020-09-031-24/+32
|
* Convert ReadWriteLock to async/await. (#8202)Patrick Cloke2020-08-281-23/+26
|
* Allow capping a room's retention policy (#8104)Brendan Abolivier2020-08-241-7/+29
|
* Convert streams to async. (#8014)Patrick Cloke2020-08-041-1/+1
|
* Convert the device message and pagination handlers to async/await. (#7678)Patrick Cloke2020-06-161-16/+8
|
* Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-151-3/+1
|
* Merge pull request #6949 from matrix-org/rav/list_room_aliases_peekableRichard van der Hoff2020-02-191-1/+3
|\ | | | | Make room alias lists peekable
| * Add `allow_departed_users` param to `check_in_room_or_world_readable`Richard van der Hoff2020-02-191-1/+3
| | | | | | | | | | | | | | ... and set it everywhere it's called. while we're here, rename it for consistency with `check_user_in_room` (and to help check that I haven't missed any instances)
* | Fix log in message retention purge jobsBrendan Abolivier2020-02-181-1/+1
|/
* s/get_room_version/get_room_version_id/Richard van der Hoff2020-01-311-1/+1
| | | | | ... to make way for a forthcoming get_room_version which returns a RoomVersion object.
* Add more logging around message retention policies support (#6717)Brendan Abolivier2020-01-171-0/+13
| | | So we can debug issues like #6683 more easily
* Fix instantiation of message retention purge jobsBrendan Abolivier2020-01-151-1/+1
| | | | | | | | | | | | | | | | When figuring out which topological token to start a purge job at, we need to do the following: 1. Figure out a timestamp before which events will be purged 2. Select the first stream ordering after that timestamp 3. Select info about the first event after that stream ordering 4. Build a topological token from that info In some situations (e.g. quiet rooms with a short max_lifetime), there might not be an event after the stream ordering at step 3, therefore we abort the purge with the error `No event found`. To mitigate that, this patch fetches the first event _before_ the stream ordering, instead of after.
* Convert federation backfill to asyncRichard van der Hoff2019-12-111-14/+13
| | | | | | | | | PaginationHandler.get_messages is only called by RoomMessageListRestServlet, which is async. Chase the code path down from there: - FederationHandler.maybe_backfill (and nested try_backfill) - FederationHandler.backfill
* Merge branch 'develop' into babolivier/message_retentionBrendan Abolivier2019-11-261-2/+4
|\
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-11-041-7/+6
| |\ | | | | | | | | | erikj/split_purge_history
| * \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-311-2/+3
| |\ \ | | | | | | | | | | | | erikj/split_purge_history
| * | | Split purge API into events vs stateErik Johnston2019-10-301-2/+5
| | | |
* | | | LintBrendan Abolivier2019-11-191-11/+6
| | | |
* | | | Implement per-room message retention policiesBrendan Abolivier2019-11-041-0/+111
| |_|/ |/| |
* | | Update black to 19.10b0 (#6304)Amber Brown2019-11-011-7/+6
| |/ |/| | | * update version of black and also fix the mypy config being overridden
* | Port to use state storageErik Johnston2019-10-301-2/+4
|/
* Servlet to purge old rooms (#5845)Richard van der Hoff2019-08-221-0/+17
|
* Replace returnValue with return (#5736)Amber Brown2019-07-231-8/+6
|
* Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-1/+1
|
* Fix /messages on workers when no from param specified.Erik Johnston2019-06-241-3/+1
| | | | | | | If no `from` param is specified we calculate and use the "current token" that inlcuded typing, presence, etc. These are unused during pagination and are not available on workers, so we simply don't calculate them.
* Run Black. (#5482)Amber Brown2019-06-201-38/+30
|
* Allow client event serialization to be asyncErik Johnston2019-05-141-9/+13
|
* Log tracebacks correctlyErik Johnston2019-02-251-1/+5
|
* Merge pull request #4263 from rkfg/developErik Johnston2019-02-211-1/+1
|\ | | | | Prevent crash on pagination.
| * Prevent crash on pagination.rkfg2018-12-061-1/+1
| |
* | fix NPE in /messages by checking if all events were filtered out (#4330)Matthew Hodgson2019-01-021-10/+11
|/
* Refactor state group lookup to reduce DB hits (#4011)Erik Johnston2018-10-251-8/+7
| | | | | | | | Currently when fetching state groups from the data store we make two hits two the database: once for members and once for non-members (unless request is filtered to one or the other). This adds needless load to the datbase, so this PR refactors the lookup to make only a single database hit.
* don't filter membership events based on history visibility (#3874)Matthew Hodgson2018-09-141-8/+1
| | | | | | | | don't filter membership events based on history visibility as we will already have filtered the messages in the timeline, and state events are always visible. and because @erikjohnston said so.
* lazyload aware /messages (#3589)Matthew Hodgson2018-08-161-1/+34
|
* Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678)Amber Brown2018-08-101-1/+1
|
* Move PaginationHandler to its own fileErik Johnston2018-07-201-0/+265