From df95d3aec216f3ee73b162677ca2fca9c30289b4 Mon Sep 17 00:00:00 2001 From: Sean Quah <8349537+squahtx@users.noreply.github.com> Date: Wed, 20 Oct 2021 11:05:29 +0100 Subject: [PATCH 1/3] Revert change to counting of deactivated users towards the monthly active users limit (#11127) Temporarily revert "Add functionality to remove deactivated users from the monthly_active_users table (#10947)". This reverts commit eda8c88b84ee7506379a71ac2a7a88c08b759d43. --- changelog.d/11127.bugfix | 1 + synapse/handlers/deactivate_account.py | 4 -- .../databases/main/monthly_active_users.py | 24 ------------ tests/test_mau.py | 37 ++----------------- 4 files changed, 4 insertions(+), 62 deletions(-) create mode 100644 changelog.d/11127.bugfix diff --git a/changelog.d/11127.bugfix b/changelog.d/11127.bugfix new file mode 100644 index 000000000..54417a997 --- /dev/null +++ b/changelog.d/11127.bugfix @@ -0,0 +1 @@ +Revert change to counting of deactivated users towards the monthly active users limit ([\#10947](https://github.com/matrix-org/synapse/issues/10947)). diff --git a/synapse/handlers/deactivate_account.py b/synapse/handlers/deactivate_account.py index e88c3c27c..bee62cf36 100644 --- a/synapse/handlers/deactivate_account.py +++ b/synapse/handlers/deactivate_account.py @@ -131,10 +131,6 @@ class DeactivateAccountHandler: # delete from user directory await self.user_directory_handler.handle_local_user_deactivated(user_id) - # If the user is present in the monthly active users table - # remove them - await self.store.remove_deactivated_user_from_mau_table(user_id) - # Mark the user as erased, if they asked for that if erase_data: user = UserID.from_string(user_id) diff --git a/synapse/storage/databases/main/monthly_active_users.py b/synapse/storage/databases/main/monthly_active_users.py index ec4d47a56..a14ac03d4 100644 --- a/synapse/storage/databases/main/monthly_active_users.py +++ b/synapse/storage/databases/main/monthly_active_users.py @@ -354,27 +354,3 @@ class MonthlyActiveUsersStore(MonthlyActiveUsersWorkerStore): await self.upsert_monthly_active_user(user_id) elif now - last_seen_timestamp > LAST_SEEN_GRANULARITY: await self.upsert_monthly_active_user(user_id) - - async def remove_deactivated_user_from_mau_table(self, user_id: str) -> None: - """ - Removes a deactivated user from the monthly active user - table and resets affected caches. - - Args: - user_id(str): the user_id to remove - """ - - rows_deleted = await self.db_pool.simple_delete( - table="monthly_active_users", - keyvalues={"user_id": user_id}, - desc="simple_delete", - ) - - if rows_deleted != 0: - await self.invalidate_cache_and_stream( - "user_last_seen_monthly_active", (user_id,) - ) - await self.invalidate_cache_and_stream("get_monthly_active_count", ()) - await self.invalidate_cache_and_stream( - "get_monthly_active_count_by_service", () - ) diff --git a/tests/test_mau.py b/tests/test_mau.py index c683c8937..80ab40e25 100644 --- a/tests/test_mau.py +++ b/tests/test_mau.py @@ -13,11 +13,11 @@ # limitations under the License. """Tests REST events for /rooms paths.""" -import synapse.rest.admin + from synapse.api.constants import APP_SERVICE_REGISTRATION_TYPE, LoginType from synapse.api.errors import Codes, HttpResponseException, SynapseError from synapse.appservice import ApplicationService -from synapse.rest.client import login, profile, register, sync +from synapse.rest.client import register, sync from tests import unittest from tests.unittest import override_config @@ -26,13 +26,7 @@ from tests.utils import default_config class TestMauLimit(unittest.HomeserverTestCase): - servlets = [ - register.register_servlets, - sync.register_servlets, - synapse.rest.admin.register_servlets_for_client_rest_resource, - profile.register_servlets, - login.register_servlets, - ] + servlets = [register.register_servlets, sync.register_servlets] def default_config(self): config = default_config("test") @@ -235,31 +229,6 @@ class TestMauLimit(unittest.HomeserverTestCase): self.reactor.advance(100) self.assertEqual(2, self.successResultOf(count)) - def test_deactivated_users_dont_count_towards_mau(self): - user1 = self.register_user("madonna", "password") - self.register_user("prince", "password2") - self.register_user("frodo", "onering", True) - - token1 = self.login("madonna", "password") - token2 = self.login("prince", "password2") - admin_token = self.login("frodo", "onering") - - self.do_sync_for_user(token1) - self.do_sync_for_user(token2) - - # Check that mau count is what we expect - count = self.get_success(self.store.get_monthly_active_count()) - self.assertEqual(count, 2) - - # Deactivate user1 - url = "/_synapse/admin/v1/deactivate/%s" % user1 - channel = self.make_request("POST", url, access_token=admin_token) - self.assertIn("success", channel.json_body["id_server_unbind_result"]) - - # Check that deactivated user is no longer counted - count = self.get_success(self.store.get_monthly_active_count()) - self.assertEqual(count, 1) - def create_user(self, localpart, token=None, appservice=False): request_data = { "username": localpart, From 522489fbcdfd4f52f1ebbbf5670c474cbf3e29be Mon Sep 17 00:00:00 2001 From: Sean Quah Date: Wed, 20 Oct 2021 12:00:03 +0100 Subject: [PATCH 2/3] 1.45.1 --- CHANGES.md | 9 +++++++++ changelog.d/11127.bugfix | 1 - debian/changelog | 6 ++++++ synapse/__init__.py | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) delete mode 100644 changelog.d/11127.bugfix diff --git a/CHANGES.md b/CHANGES.md index 435387d7b..4b7dd69c9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,12 @@ +Synapse 1.45.1 (2021-10-20) +=========================== + +Bugfixes +-------- + +- Revert change to counting of deactivated users towards the monthly active users limit, introduced in 1.45.0rc1 ([\#10947](https://github.com/matrix-org/synapse/issues/10947)). ([\#11127](https://github.com/matrix-org/synapse/issues/11127)) + + Synapse 1.45.0 (2021-10-19) =========================== diff --git a/changelog.d/11127.bugfix b/changelog.d/11127.bugfix deleted file mode 100644 index 54417a997..000000000 --- a/changelog.d/11127.bugfix +++ /dev/null @@ -1 +0,0 @@ -Revert change to counting of deactivated users towards the monthly active users limit ([\#10947](https://github.com/matrix-org/synapse/issues/10947)). diff --git a/debian/changelog b/debian/changelog index 5fefb2f2a..1ee81f2a3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +matrix-synapse-py3 (1.45.1) stable; urgency=medium + + * New synapse release 1.45.1. + + -- Synapse Packaging team Wed, 20 Oct 2021 11:58:27 +0100 + matrix-synapse-py3 (1.45.0) stable; urgency=medium * New synapse release 1.45.0. diff --git a/synapse/__init__.py b/synapse/__init__.py index 97452f34f..2687d932e 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -47,7 +47,7 @@ try: except ImportError: pass -__version__ = "1.45.0" +__version__ = "1.45.1" if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)): # We import here so that we don't have to install a bunch of deps when From 9b016a0fb4e8b48c19ffa1c1aee5bbbe95f6aad0 Mon Sep 17 00:00:00 2001 From: Sean Quah Date: Wed, 20 Oct 2021 12:04:20 +0100 Subject: [PATCH 3/3] Remove link to #10947 from changelog --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 4b7dd69c9..92e6c6873 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,7 +4,7 @@ Synapse 1.45.1 (2021-10-20) Bugfixes -------- -- Revert change to counting of deactivated users towards the monthly active users limit, introduced in 1.45.0rc1 ([\#10947](https://github.com/matrix-org/synapse/issues/10947)). ([\#11127](https://github.com/matrix-org/synapse/issues/11127)) +- Revert change to counting of deactivated users towards the monthly active users limit, introduced in 1.45.0rc1. ([\#11127](https://github.com/matrix-org/synapse/issues/11127)) Synapse 1.45.0 (2021-10-19)