diff options
-rw-r--r-- | synapse/handlers/stats.py | 9 | ||||
-rw-r--r-- | synapse/storage/stats.py | 5 |
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): """ |