-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Device list updates to be sent over federation will be skipped if there are too many at one time #11727
Comments
I wonder if this partly explains #8631? |
Seems it's not quite as simple as it looked to be at the start; the plot thickens. device_lists_stream doesn't have a unique index on That's all well and good, but if there are multiple rows for the same stream ID and you're paginating by stream ID (as is done currently, despite the fact that it always skips to the end) with a limit on the number of rows, that gets awkward. Annoyingly it looks like they do overlap in practice (or have done so in the past); querying LP.net: synapse=# select count(distinct stream_id) from device_lists_stream ;
count
--------
232366
(1 row)
synapse=# select count(stream_id) from device_lists_stream ;
count
--------
266670
(1 row) |
I notice that 'recent' entries in the table on LP.net don't seem to reuse
|
Rich kindly pointed me to #7010 — looks like the |
I assume this issue can be closed now that #11729 has been merged? |
This part always gets me — think it has to hit develop and then it'll close itself |
get_device_updates_by_remote
always returns the next stream position as the latest device stream token, even in cases where it is limited to a maximum number of rows to return.The effect of this is that any device updates that don't fit within one
limit
-sized batch will be skipped.Discovered whilst looking into #11719. Due to the nature of my fix to #11719, I'll likely fix them both at the same time.
The text was updated successfully, but these errors were encountered: