diff options
author | reivilibre <38398653+reivilibre@users.noreply.github.com> | 2020-09-04 15:06:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-04 15:06:51 +0100 |
commit | 17fa4c7ca79b45baebb84d49adbcd1a2a9ea3f09 (patch) | |
tree | a85bb2c427db4568f1a628d38bc93929aaee160c /synapse/federation | |
parent | Catch-up after Federation Outage (split, 1) (#8230) (diff) | |
download | synapse-17fa4c7ca79b45baebb84d49adbcd1a2a9ea3f09.tar.xz |
Catch up after Federation Outage (split, 2): Track last successful stream ordering after transmission (#8247)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Diffstat (limited to 'synapse/federation')
-rw-r--r-- | synapse/federation/sender/per_destination_queue.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/synapse/federation/sender/per_destination_queue.py b/synapse/federation/sender/per_destination_queue.py index defc228c23..9f0852b4a2 100644 --- a/synapse/federation/sender/per_destination_queue.py +++ b/synapse/federation/sender/per_destination_queue.py @@ -325,6 +325,17 @@ class PerDestinationQueue: self._last_device_stream_id = device_stream_id self._last_device_list_stream_id = dev_list_id + + if pending_pdus: + # we sent some PDUs and it was successful, so update our + # last_successful_stream_ordering in the destinations table. + final_pdu = pending_pdus[-1] + last_successful_stream_ordering = ( + final_pdu.internal_metadata.stream_ordering + ) + await self._store.set_destination_last_successful_stream_ordering( + self._destination, last_successful_stream_ordering + ) else: break except NotRetryingDestination as e: |