You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 26, 2024. It is now read-only.
When using the experimental MSC2716/batch_send endpoint, we're using a fake prev_event to make the chain of historical state and messages float off on their own in the DAG and nudges federated homeservers to ask for the state at the start of the chunk that we generated.
Each time one of these fake prev_events is processed by the homeserver, it's seen as a backward extremity which we attempt to fetch when trying to do backfill federation things but will never resolve. This is problematic as we will have thousands of batches per room to backfill a big room for Gitter and will have to deal with thousands of backward extremities here. Since we use get_oldest_event_ids_with_depth_in_room and oldest backward extremities will always be our historical events. Assuming we're paginating from the bottom (where current_depth > historical extremity depth), we will always pick the 5 unresolvable fake events in the room to backfill from. This would stop us from backfilling any other events in the room.
Potential solutions
Ignore fake event ID's and never put as a backward extremity
I don't know how we do this for remote homeservers though.
Back-off backfilling a certain event when they fail to fetch
Can we just have no prev_events for a given event? How does the first event in the room work?