summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/handlers/stats.py9
-rw-r--r--synapse/storage/stats.py5
2 files changed, 6 insertions, 8 deletions
diff --git a/synapse/handlers/stats.py b/synapse/handlers/stats.py
index 6341c3244e..572da0a344 100644
--- a/synapse/handlers/stats.py
+++ b/synapse/handlers/stats.py
@@ -159,12 +159,9 @@ class StatsHandler(StateDeltasHandler):
                 if event:
                     event_content = event.content or {}
 
-            # We use stream_pos here rather than fetch by event_id as event_id
-            # may be None
-            stream_timestamp = yield self.store.get_received_ts_by_stream_pos(
-                stream_pos
-            )
-            stream_timestamp = int(stream_timestamp)
+            # We can't afford for this time to stray into the past, so we count
+            # it as now.
+            stream_timestamp = int(self.clock.time_msec())
 
             # All the values in this dict are deltas (RELATIVE changes)
             room_stats_delta = {}
diff --git a/synapse/storage/stats.py b/synapse/storage/stats.py
index 7bf729c9d8..c022f620fc 100644
--- a/synapse/storage/stats.py
+++ b/synapse/storage/stats.py
@@ -948,10 +948,11 @@ class StatsStore(StateDeltasStore):
             src_row = self._simple_select_one_txn(
                 txn, src_table, keyvalues, copy_columns
             )
+            all_dest_keyvalues = {**keyvalues, **extra_dst_keyvalues}
             dest_current_row = self._simple_select_one_txn(
                 txn,
                 into_table,
-                keyvalues={ **keyvalues, **extra_dst_keyvalues },
+                keyvalues=all_dest_keyvalues,
                 retcols=list(chain(additive_relatives.keys(), copy_columns)),
                 allow_none=True,
             )
@@ -968,7 +969,7 @@ class StatsStore(StateDeltasStore):
             else:
                 for (key, val) in additive_relatives.items():
                     src_row[key] = dest_current_row[key] + val
-                self._simple_update_txn(txn, into_table, keyvalues, src_row)
+                self._simple_update_txn(txn, into_table, all_dest_keyvalues, src_row)
 
     def incremental_update_room_total_events_and_bytes(self, in_positions):
         """