Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Commit

Permalink
Merge tag 'v1.45.1' into babolivier/dinsic_1.48.0
Browse files Browse the repository at this point in the history
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. ([\#11127](matrix-org/synapse#11127))
  • Loading branch information
babolivier committed Dec 6, 2021
2 parents 22630d3 + 9b016a0 commit 21d74d5
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 63 deletions.
9 changes: 9 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -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. ([\#11127](https://github.com/matrix-org/synapse/issues/11127))


Synapse 1.45.0 (2021-10-19)
===========================

Expand Down
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
matrix-synapse-py3 (1.45.1) stable; urgency=medium

* New synapse release 1.45.1.

-- Synapse Packaging team <[email protected]> Wed, 20 Oct 2021 11:58:27 +0100

matrix-synapse-py3 (1.45.0) stable; urgency=medium

* New synapse release 1.45.0.
Expand Down
2 changes: 1 addition & 1 deletion synapse/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
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
Expand Down
4 changes: 0 additions & 4 deletions synapse/handlers/deactivate_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,6 @@ async def deactivate_account(
# 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)
Expand Down
24 changes: 0 additions & 24 deletions synapse/storage/databases/main/monthly_active_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,27 +354,3 @@ async def populate_monthly_active_users(self, user_id):
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", ()
)
37 changes: 3 additions & 34 deletions tests/test_mau.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -26,13 +26,7 @@

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")
Expand Down Expand Up @@ -235,31 +229,6 @@ def test_tracked_but_not_limited(self):
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,
Expand Down

0 comments on commit 21d74d5

Please sign in to comment.