summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2020-10-26 13:16:32 +0000
committerGitHub <noreply@github.com>2020-10-26 13:16:32 +0000
commit437a99fb99f42e64a0488ffe0a394cbc60921254 (patch)
tree00b737506bf394dab1e5a49f6cb690186752229e
parentFixup changelog even more (diff)
downloadsynapse-437a99fb99f42e64a0488ffe0a394cbc60921254.tar.xz
Fix user_daily_visits to not have duplicate rows for UA. (#8654)
* Fix user_daily_visits to not have duplicate rows for UA.

Fixes #8641.

* Newsfile

* Fix typo.

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
-rw-r--r--changelog.d/8654.bugfix1
-rw-r--r--synapse/storage/databases/main/metrics.py9
2 files changed, 6 insertions, 4 deletions
diff --git a/changelog.d/8654.bugfix b/changelog.d/8654.bugfix
new file mode 100644
index 0000000000..91d3265b7f
--- /dev/null
+++ b/changelog.d/8654.bugfix
@@ -0,0 +1 @@
+Fix `user_daily_visits` to not have duplicate rows for UA. Broke in v1.22.0rc1.
diff --git a/synapse/storage/databases/main/metrics.py b/synapse/storage/databases/main/metrics.py
index 79b01d16f9..ab18cc4d79 100644
--- a/synapse/storage/databases/main/metrics.py
+++ b/synapse/storage/databases/main/metrics.py
@@ -282,9 +282,10 @@ class ServerMetricsStore(EventPushActionsWorkerStore, SQLBaseStore):
             now = self._clock.time_msec()
 
             # A note on user_agent. Technically a given device can have multiple
-            # user agents, so we need to decide which one to pick. We could have handled this
-            # in number of ways, but given that we don't _that_ much have gone for MAX()
-            # For more details of the other options considered see
+            # user agents, so we need to decide which one to pick. We could have
+            # handled this in number of ways, but given that we don't care
+            # _that_ much we have gone for MAX(). For more details of the other
+            # options considered see
             # https://github.com/matrix-org/synapse/pull/8503#discussion_r502306111
             sql = """
                 INSERT INTO user_daily_visits (user_id, device_id, timestamp, user_agent)
@@ -299,7 +300,7 @@ class ServerMetricsStore(EventPushActionsWorkerStore, SQLBaseStore):
                     WHERE last_seen > ? AND last_seen <= ?
                     AND udv.timestamp IS NULL AND users.is_guest=0
                     AND users.appservice_id IS NULL
-                    GROUP BY u.user_id, u.device_id, u.user_agent
+                    GROUP BY u.user_id, u.device_id
             """
 
             # This means that the day has rolled over but there could still