element-hq / element-hq/synapse
forward extremities are leaked when their successors are persisted as outliers and later de-outliered
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
This issue has been migrated from [#6607](https://github.com/matrix-org/synapse/issues/6607).
---
Consider a sequence of events
```
A <- B <- C <- D
```
Starting with A, it is the only forward extremity in the DAG.
Then, suppose we receive D, and for whatever reason, the missing-events algorithm ends up retrieving B and C, and B is persisted as an outlier. We now have two forward extremities: A and D.
[B can be an outlier even though we have all its predecessors and successors: it means that we haven't resolved the state at that point in the graph.]
Later, we might de-outlier B due to a backfill request. When this happens, A remains a forward extremity.
Contributor guide
Assessment
This issue has not been assessed yet.