mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-11-25 09:33:11 -05:00
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`](
|
||
|---|---|---|
| .. | ||
| controllers | ||
| databases | ||
| engines | ||
| schema | ||
| util | ||
| __init__.py | ||
| _base.py | ||
| background_updates.py | ||
| database.py | ||
| keys.py | ||
| prepare_database.py | ||
| push_rule.py | ||
| roommember.py | ||
| state.py | ||
| types.py | ||