mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-15 03:53:52 +01:00
0f971ca68e
Update `get_pdu` to return the untouched, pristine `EventBase` as it was originally seen over federation (no metadata added). Previously, we returned the same `event` reference that we stored in the cache which downstream code modified in place and added metadata like setting it as an `outlier` and essentially poisoned our cache. Now we always return a copy of the `event` so the original can stay pristine in our cache and re-used for the next cache call.
Split out from https://github.com/matrix-org/synapse/pull/13205
As discussed at:
- https://github.com/matrix-org/synapse/pull/13205#discussion_r918365746
- https://github.com/matrix-org/synapse/pull/13205#discussion_r918366125
Related to https://github.com/matrix-org/synapse/issues/12584. This PR doesn't fix that issue because it hits [`get_event` which exists from the local database before it tries to `get_pdu`](
|
||
---|---|---|
.. | ||
transport | ||
__init__.py | ||
test_complexity.py | ||
test_federation_catch_up.py | ||
test_federation_client.py | ||
test_federation_sender.py | ||
test_federation_server.py |