forked-synapse/synapse/storage
Erik Johnston 30848c0fcd Ignore incoming events for rooms that we have left
When synapse receives an event for a room its not in over federation, it
double checks with the remote server to see if it is in fact in the
room. This is done so that if the server has forgotten about the room
(usually as a result of the database being dropped) it can recover from
it.

However, in the presence of state resets in large rooms, this can cause
a lot of work for servers that have legitimately left. As a hacky
solution that supports both cases we drop incoming events for rooms that
we have explicitly left.

This means that we no longer support the case of servers having
forgotten that they've rejoined a room, but that is sufficiently rare
that we're not going to support it for now.
2017-10-03 11:18:21 +01:00
..
engines Optionally make committing to postgres asynchronous. 2016-06-20 17:53:38 +01:00
schema Add old indices 2017-09-28 14:10:33 +01:00
util Fix assertion to stop transaction queue getting wedged 2017-03-15 12:16:55 +00:00
__init__.py Fix up client ips to read from pending data 2017-06-27 14:46:12 +01:00
_base.py Define CACHE_SIZE_FACTOR once 2017-07-04 09:56:44 +01:00
account_data.py Perf: Don't filter events for push 2017-07-07 14:04:40 +01:00
appservice.py Initialise exclusive_user_regex 2017-06-21 14:19:33 +01:00
background_updates.py Don't create event_search index on sqlite 2017-05-11 12:46:55 +01:00
client_ips.py Merge pull request #2309 from matrix-org/erikj/user_ip_repl 2017-07-06 14:33:14 +01:00
deviceinbox.py Deduplicate new deviceinbox rows for replication 2017-04-04 16:21:21 +01:00
devices.py When pruning, delete from device_lists_outbound_last_success 2017-06-07 11:20:47 +01:00
directory.py Add shutdown room API 2017-06-19 12:37:27 +01:00
end_to_end_keys.py Remove redundant invalidation 2017-05-23 09:46:59 +01:00
event_federation.py Add background task to clear out old event_auth 2017-05-24 15:23:34 +01:00
event_push_actions.py User Cursor.__iter__ instead of fetchall 2017-03-23 17:53:49 +00:00
events.py Make into list 2017-06-29 15:47:37 +01:00
filtering.py replaced json.dumps with encode_canonical_json 2017-06-21 14:48:12 +02:00
keys.py Invalidate signing key cache when we gat an update 2017-09-20 01:32:42 +01:00
media_repository.py Up the limits on number of url cache entries to delete at one time 2017-09-28 14:27:27 +01:00
openid.py Add an openidish mechanism for proving to third parties that you own a given user_id 2016-05-05 13:42:44 +01:00
prepare_database.py Delete expired url cache data 2017-09-28 12:18:06 +01:00
presence.py Actually call invalidate 2017-03-24 13:28:20 +00:00
profile.py Add the create_profile method back since the tests use it 2016-06-17 19:20:47 +01:00
push_rule.py Increase size of push rule caches 2017-05-18 17:17:53 +01:00
pusher.py Fix up docs 2017-03-31 11:19:24 +01:00
receipts.py Fix invalidation of get_users_with_read_receipts_in_room 2017-05-19 14:38:50 +01:00
registration.py Add some more stats 2017-06-15 09:39:39 +01:00
rejections.py copyrights 2016-01-07 04:26:29 +00:00
room.py Handle thumbnail urls 2017-06-19 17:48:28 +01:00
roommember.py Ignore incoming events for rooms that we have left 2017-10-03 11:18:21 +01:00
search.py Remove spurious comment 2016-11-03 15:04:32 +00:00
signatures.py User Cursor.__iter__ instead of fetchall 2017-03-23 17:53:49 +00:00
state.py Prefill forward extrems and event to state groups 2017-06-29 15:38:48 +01:00
stream.py Assume rooms likely haven't changed 2017-03-13 09:50:10 +00:00
tags.py User Cursor.__iter__ instead of fetchall 2017-03-23 17:53:49 +00:00
transactions.py Fix tests and flake8 2016-11-22 18:18:31 +00:00
user_directory.py Add desc 2017-06-22 10:03:48 +01:00