Merge branch 'release-v1.45' of github.com:matrix-org/synapse into matrix-org-hotfixes
This commit is contained in:
commit
c59b9711f3
56
CHANGES.md
56
CHANGES.md
|
@ -1,9 +1,61 @@
|
|||
Synapse 1.45.0 (2021-10-19)
|
||||
===========================
|
||||
|
||||
No functional changes since Synapse 1.45.0rc2.
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- A suspected [performance regression](https://github.com/matrix-org/synapse/issues/11049) which was first reported after the release of 1.44.0 remains unresolved.
|
||||
|
||||
We have not been able to identify a probable cause. Affected users report that setting up a federation sender worker appears to alleviate symptoms of the regression.
|
||||
|
||||
Improved Documentation
|
||||
----------------------
|
||||
|
||||
- Reword changelog to clarify concerns about a suspected performance regression in 1.44.0. ([\#11117](https://github.com/matrix-org/synapse/issues/11117))
|
||||
|
||||
|
||||
Synapse 1.45.0rc2 (2021-10-14)
|
||||
==============================
|
||||
|
||||
This release candidate [fixes](https://github.com/matrix-org/synapse/issues/11053) a user directory [bug](https://github.com/matrix-org/synapse/issues/11025) present in 1.45.0rc1.
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- A suspected [performance regression](https://github.com/matrix-org/synapse/issues/11049) which was first reported after the release of 1.44.0 remains unresolved.
|
||||
|
||||
We have not been able to identify a probable cause. Affected users report that setting up a federation sender worker appears to alleviate symptoms of the regression.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix a long-standing bug when using multiple event persister workers where events were not correctly sent down `/sync` due to a race. ([\#11045](https://github.com/matrix-org/synapse/issues/11045))
|
||||
- Fix a bug introduced in Synapse 1.45.0rc1 where the user directory would stop updating if it processed an event from a
|
||||
user not in the `users` table. ([\#11053](https://github.com/matrix-org/synapse/issues/11053))
|
||||
- Fix a bug introduced in Synapse 1.44.0 when logging errors during oEmbed processing. ([\#11061](https://github.com/matrix-org/synapse/issues/11061))
|
||||
|
||||
|
||||
Internal Changes
|
||||
----------------
|
||||
|
||||
- Add an 'approximate difference' method to `StateFilter`. ([\#10825](https://github.com/matrix-org/synapse/issues/10825))
|
||||
- Fix inconsistent behavior of `get_last_client_by_ip` when reporting data that has not been stored in the database yet. ([\#10970](https://github.com/matrix-org/synapse/issues/10970))
|
||||
- Fix a bug introduced in Synapse 1.21.0 that causes opentracing and Prometheus metrics for replication requests to be measured incorrectly. ([\#10996](https://github.com/matrix-org/synapse/issues/10996))
|
||||
- Ensure that cache config tests do not share state. ([\#11036](https://github.com/matrix-org/synapse/issues/11036))
|
||||
|
||||
|
||||
Synapse 1.45.0rc1 (2021-10-12)
|
||||
==============================
|
||||
|
||||
**Note:** We are aware of [a performance issue](https://github.com/matrix-org/synapse/issues/11049) introduced in Synapse v1.44.0, as well as [a bug](https://github.com/matrix-org/synapse/issues/11025) with the user directory when using application services. While this release candidate doesn't fix either of those issues, a second release candidate is expected to come out in a few days to address them.
|
||||
**Note:** Media storage providers module that read from Synapse's configuration need changes as of this version, see the [upgrade notes](https://matrix-org.github.io/synapse/develop/upgrade#upgrading-to-v1450) for more information.
|
||||
|
||||
Media storage providers module that read from Synapse's configuration need changes as of this version, see the [upgrade notes](https://matrix-org.github.io/synapse/develop/upgrade#upgrading-to-v1450) for more information.
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- We are investigating [a performance issue](https://github.com/matrix-org/synapse/issues/11049) which was reported after the release of 1.44.0.
|
||||
- We are aware of [a bug](https://github.com/matrix-org/synapse/issues/11025) with the user directory when using application services. A second release candidate is expected which will resolve this.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Add an 'approximate difference' method to `StateFilter`.
|
|
@ -1 +0,0 @@
|
|||
Fix inconsistent behavior of `get_last_client_by_ip` when reporting data that has not been stored in the database yet.
|
|
@ -1 +0,0 @@
|
|||
Fix a bug introduced in Synapse 1.21.0 that causes opentracing and Prometheus metrics for replication requests to be measured incorrectly.
|
|
@ -1 +0,0 @@
|
|||
Ensure that cache config tests do not share state.
|
|
@ -1 +0,0 @@
|
|||
Fix a long-standing bug when using multiple event persister workers where events were not correctly sent down `/sync` due to a race.
|
|
@ -1,2 +0,0 @@
|
|||
Fix a bug introduced in Synapse 1.45.0rc1 where the user directory would stop updating if it processed an event from a
|
||||
user not in the `users` table.
|
|
@ -1 +0,0 @@
|
|||
Fix a bug introduced in Synapse v1.44.0 when logging errors during oEmbed processing.
|
1
changelog.d/11127.bugfix
Normal file
1
changelog.d/11127.bugfix
Normal file
|
@ -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)).
|
12
debian/changelog
vendored
12
debian/changelog
vendored
|
@ -1,3 +1,15 @@
|
|||
matrix-synapse-py3 (1.45.0) stable; urgency=medium
|
||||
|
||||
* New synapse release 1.45.0.
|
||||
|
||||
-- Synapse Packaging team <packages@matrix.org> Tue, 19 Oct 2021 11:18:53 +0100
|
||||
|
||||
matrix-synapse-py3 (1.45.0~rc2) stable; urgency=medium
|
||||
|
||||
* New synapse release 1.45.0~rc2.
|
||||
|
||||
-- Synapse Packaging team <packages@matrix.org> Thu, 14 Oct 2021 10:58:24 +0100
|
||||
|
||||
matrix-synapse-py3 (1.45.0~rc1) stable; urgency=medium
|
||||
|
||||
[ Nick @ Beeper ]
|
||||
|
|
|
@ -47,7 +47,7 @@ try:
|
|||
except ImportError:
|
||||
pass
|
||||
|
||||
__version__ = "1.45.0rc1"
|
||||
__version__ = "1.45.0"
|
||||
|
||||
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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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", ()
|
||||
)
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue