Browse Source

Use full GitHub links instead of bare issue numbers. (#16637)

tags/v1.97.0rc1
Patrick Cloke 5 months ago
committed by GitHub
parent
commit
f2f2c7c1f0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 94 additions and 70 deletions
  1. +6
    -6
      .git-blame-ignore-revs
  2. +1
    -0
      changelog.d/16637.misc
  3. +1
    -1
      debian/changelog
  4. +5
    -4
      pyproject.toml
  5. +2
    -2
      synapse/app/generic_worker.py
  6. +2
    -2
      synapse/federation/sender/__init__.py
  7. +1
    -1
      synapse/handlers/federation_event.py
  8. +1
    -1
      synapse/handlers/presence.py
  9. +2
    -2
      synapse/handlers/sync.py
  10. +4
    -4
      synapse/handlers/user_directory.py
  11. +8
    -6
      synapse/http/matrixfederationclient.py
  12. +2
    -1
      synapse/module_api/callbacks/third_party_event_rules_callbacks.py
  13. +1
    -1
      synapse/storage/databases/__init__.py
  14. +2
    -2
      synapse/storage/databases/main/events_bg_updates.py
  15. +4
    -2
      synapse/storage/databases/main/events_worker.py
  16. +1
    -1
      synapse/storage/databases/main/monthly_active_users.py
  17. +1
    -1
      synapse/storage/databases/main/purge_events.py
  18. +2
    -1
      synapse/storage/engines/postgres.py
  19. +2
    -1
      synapse/storage/schema/__init__.py
  20. +1
    -0
      synapse/storage/schema/main/delta/54/delete_forward_extremities.sql
  21. +2
    -0
      synapse/storage/schema/main/delta/56/remove_tombstoned_rooms_from_directory.sql
  22. +2
    -0
      synapse/storage/schema/main/delta/70/01clean_table_purged_rooms.sql
  23. +2
    -1
      synapse/util/check_dependencies.py
  24. +1
    -1
      sytest-blacklist
  25. +1
    -1
      tests/federation/test_federation_sender.py
  26. +3
    -3
      tests/handlers/test_federation.py
  27. +2
    -1
      tests/http/test_matrixfederationclient.py
  28. +1
    -1
      tests/push/test_bulk_push_rule_evaluator.py
  29. +1
    -1
      tests/replication/tcp/streams/test_to_device.py
  30. +1
    -1
      tests/rest/admin/test_user.py
  31. +1
    -1
      tests/rest/client/test_events.py
  32. +4
    -2
      tests/rest/client/test_profile.py
  33. +2
    -1
      tests/rest/client/test_rooms.py
  34. +1
    -1
      tests/rest/client/test_sync.py
  35. +9
    -9
      tests/storage/databases/main/test_lock.py
  36. +3
    -2
      tests/storage/test_database.py
  37. +1
    -1
      tests/storage/test_event_federation.py
  38. +1
    -1
      tests/storage/test_room_search.py
  39. +7
    -3
      tests/util/test_check_dependencies.py

+ 6
- 6
.git-blame-ignore-revs View File

@@ -8,21 +8,21 @@
# If ignoring a pull request that was not squash merged, only the merge # If ignoring a pull request that was not squash merged, only the merge
# commit needs to be put here. Child commits will be resolved from it. # commit needs to be put here. Child commits will be resolved from it.


# Run black (#3679).
# Run black (https://github.com/matrix-org/synapse/pull/3679).
8b3d9b6b199abb87246f982d5db356f1966db925 8b3d9b6b199abb87246f982d5db356f1966db925


# Black reformatting (#5482).
# Black reformatting (https://github.com/matrix-org/synapse/pull/5482).
32e7c9e7f20b57dd081023ac42d6931a8da9b3a3 32e7c9e7f20b57dd081023ac42d6931a8da9b3a3


# Target Python 3.5 with black (#8664).
# Target Python 3.5 with black (https://github.com/matrix-org/synapse/pull/8664).
aff1eb7c671b0a3813407321d2702ec46c71fa56 aff1eb7c671b0a3813407321d2702ec46c71fa56


# Update black to 20.8b1 (#9381).
# Update black to 20.8b1 (https://github.com/matrix-org/synapse/pull/9381).
0a00b7ff14890987f09112a2ae696c61001e6cf1 0a00b7ff14890987f09112a2ae696c61001e6cf1


# Convert tests/rest/admin/test_room.py to unix file endings (#7953).
# Convert tests/rest/admin/test_room.py to unix file endings (https://github.com/matrix-org/synapse/pull/7953).
c4268e3da64f1abb5b31deaeb5769adb6510c0a7 c4268e3da64f1abb5b31deaeb5769adb6510c0a7


# Update black to 23.1.0 (#15103)
# Update black to 23.1.0 (https://github.com/matrix-org/synapse/pull/15103)
9bb2eac71962970d02842bca441f4bcdbbf93a11 9bb2eac71962970d02842bca441f4bcdbbf93a11



+ 1
- 0
changelog.d/16637.misc View File

@@ -0,0 +1 @@
Improve references to GitHub issues.

+ 1
- 1
debian/changelog View File

@@ -1637,7 +1637,7 @@ matrix-synapse-py3 (0.99.3.1) stable; urgency=medium
matrix-synapse-py3 (0.99.3) stable; urgency=medium matrix-synapse-py3 (0.99.3) stable; urgency=medium


[ Richard van der Hoff ] [ Richard van der Hoff ]
* Fix warning during preconfiguration. (Fixes: #4819)
* Fix warning during preconfiguration. (Fixes: https://github.com/matrix-org/synapse/issues/4819)


[ Synapse Packaging team ] [ Synapse Packaging team ]
* New synapse release 0.99.3. * New synapse release 0.99.3.


+ 5
- 4
pyproject.toml View File

@@ -192,7 +192,7 @@ phonenumbers = ">=8.2.0"
# we use GaugeHistogramMetric, which was added in prom-client 0.4.0. # we use GaugeHistogramMetric, which was added in prom-client 0.4.0.
prometheus-client = ">=0.4.0" prometheus-client = ">=0.4.0"
# we use `order`, which arrived in attrs 19.2.0. # we use `order`, which arrived in attrs 19.2.0.
# Note: 21.1.0 broke `/sync`, see #9936
# Note: 21.1.0 broke `/sync`, see https://github.com/matrix-org/synapse/issues/9936
attrs = ">=19.2.0,!=21.1.0" attrs = ">=19.2.0,!=21.1.0"
netaddr = ">=0.7.18" netaddr = ">=0.7.18"
# Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not # Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not
@@ -357,7 +357,7 @@ commonmark = ">=0.9.1"
pygithub = ">=1.55" pygithub = ">=1.55"
# The following are executed as commands by the release script. # The following are executed as commands by the release script.
twine = "*" twine = "*"
# Towncrier min version comes from #3425. Rationale unclear.
# Towncrier min version comes from https://github.com/matrix-org/synapse/pull/3425. Rationale unclear.
towncrier = ">=18.6.0rc1" towncrier = ">=18.6.0rc1"


# Used for checking the Poetry lockfile # Used for checking the Poetry lockfile
@@ -377,8 +377,9 @@ furo = ">=2022.12.7,<2024.0.0"


[build-system] [build-system]
# The upper bounds here are defensive, intended to prevent situations like # The upper bounds here are defensive, intended to prevent situations like
# #13849 and #14079 where we see buildtime or runtime errors caused by build
# system changes.
# https://github.com/matrix-org/synapse/issues/13849 and
# https://github.com/matrix-org/synapse/issues/14079 where we see buildtime or
# runtime errors caused by build system changes.
# We are happy to raise these upper bounds upon request, # We are happy to raise these upper bounds upon request,
# provided we check that it's safe to do so (i.e. that CI passes). # provided we check that it's safe to do so (i.e. that CI passes).
requires = ["poetry-core>=1.1.0,<=1.7.0", "setuptools_rust>=1.3,<=1.8.1"] requires = ["poetry-core>=1.1.0,<=1.7.0", "setuptools_rust>=1.3,<=1.8.1"]


+ 2
- 2
synapse/app/generic_worker.py View File

@@ -104,8 +104,8 @@ logger = logging.getLogger("synapse.app.generic_worker")




class GenericWorkerStore( class GenericWorkerStore(
# FIXME(#3714): We need to add UserDirectoryStore as we write directly
# rather than going via the correct worker.
# FIXME(https://github.com/matrix-org/synapse/issues/3714): We need to add
# UserDirectoryStore as we write directly rather than going via the correct worker.
UserDirectoryStore, UserDirectoryStore,
StatsStore, StatsStore,
UIAuthWorkerStore, UIAuthWorkerStore,


+ 2
- 2
synapse/federation/sender/__init__.py View File

@@ -581,14 +581,14 @@ class FederationSender(AbstractFederationSender):
"get_joined_hosts", str(sg) "get_joined_hosts", str(sg)
) )
if destinations is None: if destinations is None:
# Add logging to help track down #13444
# Add logging to help track down https://github.com/matrix-org/synapse/issues/13444
logger.info( logger.info(
"Unexpectedly did not have cached destinations for %s / %s", "Unexpectedly did not have cached destinations for %s / %s",
sg, sg,
event.event_id, event.event_id,
) )
else: else:
# Add logging to help track down #13444
# Add logging to help track down https://github.com/matrix-org/synapse/issues/13444
logger.info( logger.info(
"Unexpectedly did not have cached prev group for %s", "Unexpectedly did not have cached prev group for %s",
event.event_id, event.event_id,


+ 1
- 1
synapse/handlers/federation_event.py View File

@@ -748,7 +748,7 @@ class FederationEventHandler:
# fetching fresh state for the room if the missing event # fetching fresh state for the room if the missing event
# can't be found, which slightly reduces our security. # can't be found, which slightly reduces our security.
# it may also increase our DAG extremity count for the room, # it may also increase our DAG extremity count for the room,
# causing additional state resolution? See #1760.
# causing additional state resolution? See https://github.com/matrix-org/synapse/issues/1760.
# However, fetching state doesn't hold the linearizer lock # However, fetching state doesn't hold the linearizer lock
# apparently. # apparently.
# #


+ 1
- 1
synapse/handlers/presence.py View File

@@ -1816,7 +1816,7 @@ class PresenceEventSource(EventSource[int, UserPresenceState]):
# the same token repeatedly. # the same token repeatedly.
# #
# Hence this guard where we just return nothing so that the sync # Hence this guard where we just return nothing so that the sync
# doesn't return. C.f. #5503.
# doesn't return. C.f. https://github.com/matrix-org/synapse/issues/5503.
return [], max_token return [], max_token


# Figure out which other users this user should explicitly receive # Figure out which other users this user should explicitly receive


+ 2
- 2
synapse/handlers/sync.py View File

@@ -399,7 +399,7 @@ class SyncHandler:
# #
# If that happens, we mustn't cache it, so that when the client comes back # If that happens, we mustn't cache it, so that when the client comes back
# with the same cache token, we don't immediately return the same empty # with the same cache token, we don't immediately return the same empty
# result, causing a tightloop. (#8518)
# result, causing a tightloop. (https://github.com/matrix-org/synapse/issues/8518)
if result.next_batch == since_token: if result.next_batch == since_token:
cache_context.should_cache = False cache_context.should_cache = False


@@ -1003,7 +1003,7 @@ class SyncHandler:
# always make sure we LL ourselves so we know we're in the room # always make sure we LL ourselves so we know we're in the room
# (if we are) to fix https://github.com/vector-im/riot-web/issues/7209 # (if we are) to fix https://github.com/vector-im/riot-web/issues/7209
# We only need apply this on full state syncs given we disabled # We only need apply this on full state syncs given we disabled
# LL for incr syncs in #3840.
# LL for incr syncs in https://github.com/matrix-org/synapse/pull/3840.
# We don't insert ourselves into `members_to_fetch`, because in some # We don't insert ourselves into `members_to_fetch`, because in some
# rare cases (an empty event batch with a now_token after the user's # rare cases (an empty event batch with a now_token after the user's
# leave in a partial state room which another local user has # leave in a partial state room which another local user has


+ 4
- 4
synapse/handlers/user_directory.py View File

@@ -184,8 +184,8 @@ class UserDirectoryHandler(StateDeltasHandler):
"""Called to update index of our local user profiles when they change """Called to update index of our local user profiles when they change
irrespective of any rooms the user may be in. irrespective of any rooms the user may be in.
""" """
# FIXME(#3714): We should probably do this in the same worker as all
# the other changes.
# FIXME(https://github.com/matrix-org/synapse/issues/3714): We should
# probably do this in the same worker as all the other changes.


if await self.store.should_include_local_user_in_dir(user_id): if await self.store.should_include_local_user_in_dir(user_id):
await self.store.update_profile_in_user_dir( await self.store.update_profile_in_user_dir(
@@ -194,8 +194,8 @@ class UserDirectoryHandler(StateDeltasHandler):


async def handle_local_user_deactivated(self, user_id: str) -> None: async def handle_local_user_deactivated(self, user_id: str) -> None:
"""Called when a user ID is deactivated""" """Called when a user ID is deactivated"""
# FIXME(#3714): We should probably do this in the same worker as all
# the other changes.
# FIXME(https://github.com/matrix-org/synapse/issues/3714): We should
# probably do this in the same worker as all the other changes.
await self.store.remove_from_user_dir(user_id) await self.store.remove_from_user_dir(user_id)


async def _unsafe_process(self) -> None: async def _unsafe_process(self) -> None:


+ 8
- 6
synapse/http/matrixfederationclient.py View File

@@ -465,7 +465,7 @@ class MatrixFederationHttpClient:
"""Wrapper for _send_request which can optionally retry the request """Wrapper for _send_request which can optionally retry the request
upon receiving a combination of a 400 HTTP response code and a upon receiving a combination of a 400 HTTP response code and a
'M_UNRECOGNIZED' errcode. This is a workaround for Synapse <= v0.99.3 'M_UNRECOGNIZED' errcode. This is a workaround for Synapse <= v0.99.3
due to #3622.
due to https://github.com/matrix-org/synapse/issues/3622.


Args: Args:
request: details of request to be sent request: details of request to be sent
@@ -958,9 +958,9 @@ class MatrixFederationHttpClient:
requests). requests).
try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
response we should try appending a trailing slash to the end response we should try appending a trailing slash to the end
of the request. Workaround for #3622 in Synapse <= v0.99.3. This
will be attempted before backing off if backing off has been
enabled.
of the request. Workaround for https://github.com/matrix-org/synapse/issues/3622
in Synapse <= v0.99.3. This will be attempted before backing off if
backing off has been enabled.
parser: The parser to use to decode the response. Defaults to parser: The parser to use to decode the response. Defaults to
parsing as JSON. parsing as JSON.
backoff_on_all_error_codes: Back off if we get any error response backoff_on_all_error_codes: Back off if we get any error response
@@ -1155,7 +1155,8 @@ class MatrixFederationHttpClient:


try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
response we should try appending a trailing slash to the end of response we should try appending a trailing slash to the end of
the request. Workaround for #3622 in Synapse <= v0.99.3.
the request. Workaround for https://github.com/matrix-org/synapse/issues/3622
in Synapse <= v0.99.3.


parser: The parser to use to decode the response. Defaults to parser: The parser to use to decode the response. Defaults to
parsing as JSON. parsing as JSON.
@@ -1250,7 +1251,8 @@ class MatrixFederationHttpClient:


try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED try_trailing_slash_on_400: True if on a 400 M_UNRECOGNIZED
response we should try appending a trailing slash to the end of response we should try appending a trailing slash to the end of
the request. Workaround for #3622 in Synapse <= v0.99.3.
the request. Workaround for https://github.com/matrix-org/synapse/issues/3622
in Synapse <= v0.99.3.


parser: The parser to use to decode the response. Defaults to parser: The parser to use to decode the response. Defaults to
parsing as JSON. parsing as JSON.


+ 2
- 1
synapse/module_api/callbacks/third_party_event_rules_callbacks.py View File

@@ -295,7 +295,8 @@ class ThirdPartyEventRulesModuleApiCallbacks:
raise raise
except SynapseError as e: except SynapseError as e:
# FIXME: Being able to throw SynapseErrors is relied upon by # FIXME: Being able to throw SynapseErrors is relied upon by
# some modules. PR #10386 accidentally broke this ability.
# some modules. PR https://github.com/matrix-org/synapse/pull/10386
# accidentally broke this ability.
# That said, we aren't keen on exposing this implementation detail # That said, we aren't keen on exposing this implementation detail
# to modules and we should one day have a proper way to do what # to modules and we should one day have a proper way to do what
# is wanted. # is wanted.


+ 1
- 1
synapse/storage/databases/__init__.py View File

@@ -45,7 +45,7 @@ class Databases(Generic[DataStoreT]):
""" """


databases: List[DatabasePool] databases: List[DatabasePool]
main: "DataStore" # FIXME: #11165: actually an instance of `main_store_class`
main: "DataStore" # FIXME: https://github.com/matrix-org/synapse/issues/11165: actually an instance of `main_store_class`
state: StateGroupDataStore state: StateGroupDataStore
persist_events: Optional[PersistEventsStore] persist_events: Optional[PersistEventsStore]




+ 2
- 2
synapse/storage/databases/main/events_bg_updates.py View File

@@ -425,7 +425,7 @@ class EventsBackgroundUpdatesStore(SQLBaseStore):
"""Background update to clean out extremities that should have been """Background update to clean out extremities that should have been
deleted previously. deleted previously.


Mainly used to deal with the aftermath of #5269.
Mainly used to deal with the aftermath of https://github.com/matrix-org/synapse/issues/5269.
""" """


# This works by first copying all existing forward extremities into the # This works by first copying all existing forward extremities into the
@@ -558,7 +558,7 @@ class EventsBackgroundUpdatesStore(SQLBaseStore):
) )


logger.info( logger.info(
"Deleted %d forward extremities of %d checked, to clean up #5269",
"Deleted %d forward extremities of %d checked, to clean up matrix-org/synapse#5269",
deleted, deleted,
len(original_set), len(original_set),
) )


+ 4
- 2
synapse/storage/databases/main/events_worker.py View File

@@ -1312,7 +1312,8 @@ class EventsWorkerStore(SQLBaseStore):
room_version: Optional[RoomVersion] room_version: Optional[RoomVersion]
if not room_version_id: if not room_version_id:
# this should only happen for out-of-band membership events which # this should only happen for out-of-band membership events which
# arrived before #6983 landed. For all other events, we should have
# arrived before https://github.com/matrix-org/synapse/issues/6983
# landed. For all other events, we should have
# an entry in the 'rooms' table. # an entry in the 'rooms' table.
# #
# However, the 'out_of_band_membership' flag is unreliable for older # However, the 'out_of_band_membership' flag is unreliable for older
@@ -1323,7 +1324,8 @@ class EventsWorkerStore(SQLBaseStore):
"Room %s for event %s is unknown" % (d["room_id"], event_id) "Room %s for event %s is unknown" % (d["room_id"], event_id)
) )


# so, assuming this is an out-of-band-invite that arrived before #6983
# so, assuming this is an out-of-band-invite that arrived before
# https://github.com/matrix-org/synapse/issues/6983
# landed, we know that the room version must be v5 or earlier (because # landed, we know that the room version must be v5 or earlier (because
# v6 hadn't been invented at that point, so invites from such rooms # v6 hadn't been invented at that point, so invites from such rooms
# would have been rejected.) # would have been rejected.)


+ 1
- 1
synapse/storage/databases/main/monthly_active_users.py View File

@@ -317,7 +317,7 @@ class MonthlyActiveUsersWorkerStore(RegistrationWorkerStore):
if user_id: if user_id:
is_support = self.is_support_user_txn(txn, user_id) is_support = self.is_support_user_txn(txn, user_id)
if not is_support: if not is_support:
# We do this manually here to avoid hitting #6791
# We do this manually here to avoid hitting https://github.com/matrix-org/synapse/issues/6791
self.db_pool.simple_upsert_txn( self.db_pool.simple_upsert_txn(
txn, txn,
table="monthly_active_users", table="monthly_active_users",


+ 1
- 1
synapse/storage/databases/main/purge_events.py View File

@@ -494,7 +494,7 @@ class PurgeEventsStore(StateGroupWorkerStore, CacheInvalidationWorkerStore):
# - room_tags_revisions # - room_tags_revisions
# The problem with these is that they are largeish and there is no room_id # The problem with these is that they are largeish and there is no room_id
# index on them. In any case we should be clearing out 'stream' tables # index on them. In any case we should be clearing out 'stream' tables
# periodically anyway (#5888)
# periodically anyway (https://github.com/matrix-org/synapse/issues/5888)


self._invalidate_caches_for_room_and_stream(txn, room_id) self._invalidate_caches_for_room_and_stream(txn, room_id)




+ 2
- 1
synapse/storage/engines/postgres.py View File

@@ -38,7 +38,8 @@ class PostgresEngine(
super().__init__(psycopg2, database_config) super().__init__(psycopg2, database_config)
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE) psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)


# Disables passing `bytes` to txn.execute, c.f. #6186. If you do
# Disables passing `bytes` to txn.execute, c.f.
# https://github.com/matrix-org/synapse/issues/6186. If you do
# actually want to use bytes than wrap it in `bytearray`. # actually want to use bytes than wrap it in `bytearray`.
def _disable_bytes_adapter(_: bytes) -> NoReturn: def _disable_bytes_adapter(_: bytes) -> NoReturn:
raise Exception("Passing bytes to DB is disabled.") raise Exception("Passing bytes to DB is disabled.")


+ 2
- 1
synapse/storage/schema/__init__.py View File

@@ -109,7 +109,8 @@ Changes in SCHEMA_VERSION = 78


Changes in SCHEMA_VERSION = 79 Changes in SCHEMA_VERSION = 79
- Add tables to handle in DB read-write locks. - Add tables to handle in DB read-write locks.
- Add some mitigations for a painful race between foreground and background updates, cf #15677.
- Add some mitigations for a painful race between foreground and background updates, cf
https://github.com/matrix-org/synapse/issues/15677.


Changes in SCHEMA_VERSION = 80 Changes in SCHEMA_VERSION = 80
- The event_txn_id_device_id is always written to for new events. - The event_txn_id_device_id is always written to for new events.


+ 1
- 0
synapse/storage/schema/main/delta/54/delete_forward_extremities.sql View File

@@ -14,7 +14,7 @@
*/ */


-- Start a background job to cleanup extremities that were incorrectly added -- Start a background job to cleanup extremities that were incorrectly added
-- by bug https://github.com/matrix-org/synapse/issues/5269.
INSERT INTO background_updates (update_name, progress_json) VALUES INSERT INTO background_updates (update_name, progress_json) VALUES
('delete_soft_failed_extremities', '{}'); ('delete_soft_failed_extremities', '{}');




+ 2
- 0
synapse/storage/schema/main/delta/56/remove_tombstoned_rooms_from_directory.sql View File

@@ -13,6 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */


-- Now that https://github.com/matrix-org/synapse/pull/6232 is a thing, we can
-- remove old rooms from the directory.
INSERT INTO background_updates (update_name, progress_json) VALUES INSERT INTO background_updates (update_name, progress_json) VALUES
('remove_tombstoned_rooms_from_directory', '{}'); ('remove_tombstoned_rooms_from_directory', '{}');

+ 2
- 0
synapse/storage/schema/main/delta/70/01clean_table_purged_rooms.sql View File

@@ -13,7 +13,8 @@
* limitations under the License. * limitations under the License.
*/ */


-- Clean up left over rows from bug https://github.com/matrix-org/synapse/issues/11833,
-- which was fixed in https://github.com/matrix-org/synapse/pull/12770.
DELETE FROM federation_inbound_events_staging WHERE room_id not in ( DELETE FROM federation_inbound_events_staging WHERE room_id not in (
SELECT room_id FROM rooms SELECT room_id FROM rooms
); );

+ 2
- 1
synapse/util/check_dependencies.py View File

@@ -189,7 +189,8 @@ def check_requirements(extra: Optional[str] = None) -> None:
errors.append(_not_installed(requirement, extra)) errors.append(_not_installed(requirement, extra))
else: else:
if dist.version is None: if dist.version is None:
# This shouldn't happen---it suggests a borked virtualenv. (See #12223)
# This shouldn't happen---it suggests a borked virtualenv. (See
# https://github.com/matrix-org/synapse/issues/12223)
# Try to give a vaguely helpful error message anyway. # Try to give a vaguely helpful error message anyway.
# Type-ignore: the annotations don't reflect reality: see # Type-ignore: the annotations don't reflect reality: see
# https://github.com/python/typeshed/issues/7513 # https://github.com/python/typeshed/issues/7513


+ 1
- 1
sytest-blacklist View File

@@ -29,5 +29,5 @@ We can't peek into rooms with joined history_visibility
Local users can peek by room alias Local users can peek by room alias
Peeked rooms only turn up in the sync for the device who peeked them Peeked rooms only turn up in the sync for the device who peeked them


# Validation needs to be added to Synapse: #10554
# Validation needs to be added to Synapse: https://github.com/matrix-org/synapse/issues/10554
Rejects invalid device keys Rejects invalid device keys

+ 1
- 1
tests/federation/test_federation_sender.py View File

@@ -478,7 +478,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# expect two edus, in one or two transactions. We don't know what order the # expect two edus, in one or two transactions. We don't know what order the
# devices will be updated. # devices will be updated.
self.assertEqual(len(self.edus), 2) self.assertEqual(len(self.edus), 2)
stream_id = None # FIXME: there is a discontinuity in the stream IDs: see #7142
stream_id = None # FIXME: there is a discontinuity in the stream IDs: see https://github.com/matrix-org/synapse/issues/7142
for edu in self.edus: for edu in self.edus:
self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE) self.assertEqual(edu["edu_type"], EduTypes.DEVICE_LIST_UPDATE)
c = edu["content"] c = edu["content"]


+ 3
- 3
tests/handlers/test_federation.py View File

@@ -112,7 +112,7 @@ class FederationTestCase(unittest.FederatingHomeserverTestCase):
""" """
Check that we store the state group correctly for rejected non-state events. Check that we store the state group correctly for rejected non-state events.


Regression test for #6289.
Regression test for https://github.com/matrix-org/synapse/issues/6289.
""" """
OTHER_SERVER = "otherserver" OTHER_SERVER = "otherserver"
OTHER_USER = "@otheruser:" + OTHER_SERVER OTHER_USER = "@otheruser:" + OTHER_SERVER
@@ -165,7 +165,7 @@ class FederationTestCase(unittest.FederatingHomeserverTestCase):
""" """
Check that we store the state group correctly for rejected state events. Check that we store the state group correctly for rejected state events.


Regression test for #6289.
Regression test for https://github.com/matrix-org/synapse/issues/6289.
""" """
OTHER_SERVER = "otherserver" OTHER_SERVER = "otherserver"
OTHER_USER = "@otheruser:" + OTHER_SERVER OTHER_USER = "@otheruser:" + OTHER_SERVER
@@ -222,7 +222,7 @@ class FederationTestCase(unittest.FederatingHomeserverTestCase):
of backwards extremities(the magic number is more than 5), of backwards extremities(the magic number is more than 5),
no errors are thrown. no errors are thrown.


Regression test, see #11027
Regression test, see https://github.com/matrix-org/synapse/pull/11027
""" """
# create the room # create the room
user_id = self.register_user("kermit", "test") user_id = self.register_user("kermit", "test")


+ 2
- 1
tests/http/test_matrixfederationclient.py View File

@@ -368,7 +368,8 @@ class FederationClientTests(HomeserverTestCase):
""" """
If a connection is made to a client but the client rejects it due to If a connection is made to a client but the client rejects it due to
requiring a trailing slash. We need to retry the request with a requiring a trailing slash. We need to retry the request with a
trailing slash. Workaround for Synapse <= v0.99.3, explained in #3622.
trailing slash. Workaround for Synapse <= v0.99.3, explained in
https://github.com/matrix-org/synapse/issues/3622.
""" """
d = defer.ensureDeferred( d = defer.ensureDeferred(
self.cl.get_json("testserv:8008", "foo/bar", try_trailing_slash_on_400=True) self.cl.get_json("testserv:8008", "foo/bar", try_trailing_slash_on_400=True)


+ 1
- 1
tests/push/test_bulk_push_rule_evaluator.py View File

@@ -92,7 +92,7 @@ class TestBulkPushRuleEvaluator(HomeserverTestCase):
- the bad power level value for "room", before JSON serisalistion - the bad power level value for "room", before JSON serisalistion
- whether Bob should expect the message to be highlighted - whether Bob should expect the message to be highlighted


Reproduces #14060.
Reproduces https://github.com/matrix-org/synapse/issues/14060.


A lack of validation: the gift that keeps on giving. A lack of validation: the gift that keeps on giving.
""" """


+ 1
- 1
tests/replication/tcp/streams/test_to_device.py View File

@@ -62,7 +62,7 @@ class ToDeviceStreamTestCase(BaseStreamTestCase):
) )


# add one more message, for user2 this time # add one more message, for user2 this time
# this message would be dropped before fixing #15335
# this message would be dropped before fixing https://github.com/matrix-org/synapse/issues/15335
msg["content"] = {"device": {}} msg["content"] = {"device": {}}
messages = {user2: {"device": msg}} messages = {user2: {"device": msg}}




+ 1
- 1
tests/rest/admin/test_user.py View File

@@ -1478,7 +1478,7 @@ class DeactivateAccountTestCase(unittest.HomeserverTestCase):
def test_deactivate_user_erase_true_avatar_nonnull_but_empty(self) -> None: def test_deactivate_user_erase_true_avatar_nonnull_but_empty(self) -> None:
"""Check we can erase a user whose avatar is the empty string. """Check we can erase a user whose avatar is the empty string.


Reproduces #12257.
Reproduces https://github.com/matrix-org/synapse/issues/12257.
""" """
# Patch `self.other_user` to have an empty string as their avatar. # Patch `self.other_user` to have an empty string as their avatar.
self.get_success( self.get_success(


+ 1
- 1
tests/rest/client/test_events.py View File

@@ -64,7 +64,7 @@ class EventStreamPermissionsTestCase(unittest.HomeserverTestCase):
# 403. However, since the v1 spec no longer exists and the v1 # 403. However, since the v1 spec no longer exists and the v1
# implementation is now part of the r0 implementation, the newer # implementation is now part of the r0 implementation, the newer
# behaviour is used instead to be consistent with the r0 spec. # behaviour is used instead to be consistent with the r0 spec.
# see issue #2602
# see issue https://github.com/matrix-org/synapse/issues/2602
channel = self.make_request( channel = self.make_request(
"GET", "/events?access_token=%s" % ("invalid" + self.token,) "GET", "/events?access_token=%s" % ("invalid" + self.token,)
) )


+ 4
- 2
tests/rest/client/test_profile.py View File

@@ -170,7 +170,8 @@ class ProfileTestCase(unittest.HomeserverTestCase):
) )
self.assertEqual(channel.code, 200, channel.result) self.assertEqual(channel.code, 200, channel.result)
# FIXME: If a user has no displayname set, Synapse returns 200 and omits a # FIXME: If a user has no displayname set, Synapse returns 200 and omits a
# displayname from the response. This contradicts the spec, see #13137.
# displayname from the response. This contradicts the spec, see
# https://github.com/matrix-org/synapse/issues/13137.
return channel.json_body.get("displayname") return channel.json_body.get("displayname")


def _get_avatar_url(self, name: Optional[str] = None) -> Optional[str]: def _get_avatar_url(self, name: Optional[str] = None) -> Optional[str]:
@@ -179,7 +180,8 @@ class ProfileTestCase(unittest.HomeserverTestCase):
) )
self.assertEqual(channel.code, 200, channel.result) self.assertEqual(channel.code, 200, channel.result)
# FIXME: If a user has no avatar set, Synapse returns 200 and omits an # FIXME: If a user has no avatar set, Synapse returns 200 and omits an
# avatar_url from the response. This contradicts the spec, see #13137.
# avatar_url from the response. This contradicts the spec, see
# https://github.com/matrix-org/synapse/issues/13137.
return channel.json_body.get("avatar_url") return channel.json_body.get("avatar_url")


@unittest.override_config({"max_avatar_size": 50}) @unittest.override_config({"max_avatar_size": 50})


+ 2
- 1
tests/rest/client/test_rooms.py View File

@@ -888,7 +888,8 @@ class RoomsCreateTestCase(RoomBase):
) )
def test_room_creation_ratelimiting(self) -> None: def test_room_creation_ratelimiting(self) -> None:
""" """
Regression test for #14312, where ratelimiting was made too strict.
Regression test for https://github.com/matrix-org/synapse/issues/14312,
where ratelimiting was made too strict.
Clients should be able to create 10 rooms in a row Clients should be able to create 10 rooms in a row
without hitting rate limits, using default rate limit config. without hitting rate limits, using default rate limit config.
(We override rate limiting config back to its default value.) (We override rate limiting config back to its default value.)


+ 1
- 1
tests/rest/client/test_sync.py View File

@@ -642,7 +642,7 @@ class SyncCacheTestCase(unittest.HomeserverTestCase):
def test_noop_sync_does_not_tightloop(self) -> None: def test_noop_sync_does_not_tightloop(self) -> None:
"""If the sync times out, we shouldn't cache the result """If the sync times out, we shouldn't cache the result


Essentially a regression test for #8518.
Essentially a regression test for https://github.com/matrix-org/synapse/issues/8518.
""" """
self.user_id = self.register_user("kermit", "monkey") self.user_id = self.register_user("kermit", "monkey")
self.tok = self.login("kermit", "monkey") self.tok = self.login("kermit", "monkey")


+ 9
- 9
tests/storage/databases/main/test_lock.py View File

@@ -66,9 +66,9 @@ class LockTestCase(unittest.HomeserverTestCase):


# Run the tasks to completion. # Run the tasks to completion.
# To work around `Linearizer`s using a different reactor to sleep when # To work around `Linearizer`s using a different reactor to sleep when
# contended (#12841), we call `runUntilCurrent` on
# `twisted.internet.reactor`, which is a different reactor to that used
# by the homeserver.
# contended (https://github.com/matrix-org/synapse/issues/12841), we call
# `runUntilCurrent` on `twisted.internet.reactor`, which is a different
# reactor to that used by the homeserver.
assert isinstance(reactor, ReactorBase) assert isinstance(reactor, ReactorBase)
self.get_success(task1) self.get_success(task1)
reactor.runUntilCurrent() reactor.runUntilCurrent()
@@ -217,9 +217,9 @@ class ReadWriteLockTestCase(unittest.HomeserverTestCase):


# Run the tasks to completion. # Run the tasks to completion.
# To work around `Linearizer`s using a different reactor to sleep when # To work around `Linearizer`s using a different reactor to sleep when
# contended (#12841), we call `runUntilCurrent` on
# `twisted.internet.reactor`, which is a different reactor to that used
# by the homeserver.
# contended (https://github.com/matrix-org/synapse/issues/12841), we call
# `runUntilCurrent` on `twisted.internet.reactor`, which is a different
# reactor to that used by the homeserver.
assert isinstance(reactor, ReactorBase) assert isinstance(reactor, ReactorBase)
self.get_success(task1) self.get_success(task1)
reactor.runUntilCurrent() reactor.runUntilCurrent()
@@ -269,9 +269,9 @@ class ReadWriteLockTestCase(unittest.HomeserverTestCase):


# Run the tasks to completion. # Run the tasks to completion.
# To work around `Linearizer`s using a different reactor to sleep when # To work around `Linearizer`s using a different reactor to sleep when
# contended (#12841), we call `runUntilCurrent` on
# `twisted.internet.reactor`, which is a different reactor to that used
# by the homeserver.
# contended (https://github.com/matrix-org/synapse/issues/12841), we call
# `runUntilCurrent` on `twisted.internet.reactor`, which is a different
# reactor to that used by the homeserver.
assert isinstance(reactor, ReactorBase) assert isinstance(reactor, ReactorBase)
self.get_success(task1) self.get_success(task1)
reactor.runUntilCurrent() reactor.runUntilCurrent()


+ 3
- 2
tests/storage/test_database.py View File

@@ -214,7 +214,8 @@ class CallbacksTestCase(unittest.HomeserverTestCase):
after_callback, exception_callback = self._run_interaction(_test_txn) after_callback, exception_callback = self._run_interaction(_test_txn)


# Calling both `after_callback`s when the first attempt failed is rather # Calling both `after_callback`s when the first attempt failed is rather
# surprising (#12184). Let's document the behaviour in a test.
# surprising (https://github.com/matrix-org/synapse/issues/12184).
# Let's document the behaviour in a test.
after_callback.assert_has_calls( after_callback.assert_has_calls(
[ [
call(123, 456, extra=789), call(123, 456, extra=789),
@@ -293,7 +294,7 @@ class PostgresReplicaIdentityTestCase(unittest.HomeserverTestCase):
def test_all_tables_have_postgres_replica_identity(self) -> None: def test_all_tables_have_postgres_replica_identity(self) -> None:
""" """
Tests that all tables have a Postgres REPLICA IDENTITY. Tests that all tables have a Postgres REPLICA IDENTITY.
(See #16224).
(See https://github.com/matrix-org/synapse/issues/16224).


Tables with a PRIMARY KEY have an implied REPLICA IDENTITY and are fine. Tables with a PRIMARY KEY have an implied REPLICA IDENTITY and are fine.
Other tables need them to be set with `ALTER TABLE`. Other tables need them to be set with `ALTER TABLE`.


+ 1
- 1
tests/storage/test_event_federation.py View File

@@ -1060,7 +1060,7 @@ class EventFederationWorkerStoreTestCase(tests.unittest.HomeserverTestCase):
self, self,
) -> None: ) -> None:
""" """
A test that reproduces #13929 (Postgres only).
A test that reproduces https://github.com/matrix-org/synapse/issues/13929 (Postgres only).


Test to make sure we can still get backfill points after many failed pull Test to make sure we can still get backfill points after many failed pull
attempts that cause us to backoff to the limit. Even if the backoff formula attempts that cause us to backoff to the limit. Even if the backoff formula


+ 1
- 1
tests/storage/test_room_search.py View File

@@ -93,7 +93,7 @@ class EventSearchInsertionTest(HomeserverTestCase):
both strings and integers. When using Postgres, integers are automatically both strings and integers. When using Postgres, integers are automatically
converted to strings. converted to strings.


Regression test for #11918.
Regression test for https://github.com/matrix-org/synapse/issues/11918.
""" """
store = self.hs.get_datastores().main store = self.hs.get_datastores().main




+ 7
- 3
tests/util/test_check_dependencies.py View File

@@ -89,7 +89,8 @@ class TestDependencyChecker(TestCase):
def test_version_reported_as_none(self) -> None: def test_version_reported_as_none(self) -> None:
"""Complain if importlib.metadata.version() returns None. """Complain if importlib.metadata.version() returns None.


This shouldn't normally happen, but it was seen in the wild (#12223).
This shouldn't normally happen, but it was seen in the wild
(https://github.com/matrix-org/synapse/issues/12223).
""" """
with patch( with patch(
"synapse.util.check_dependencies.metadata.requires", "synapse.util.check_dependencies.metadata.requires",
@@ -148,7 +149,7 @@ class TestDependencyChecker(TestCase):
""" """
Tests that release candidates count as far as satisfying a dependency Tests that release candidates count as far as satisfying a dependency
is concerned. is concerned.
(Regression test, see #12176.)
(Regression test, see https://github.com/matrix-org/synapse/issues/12176.)
""" """
with patch( with patch(
"synapse.util.check_dependencies.metadata.requires", "synapse.util.check_dependencies.metadata.requires",
@@ -162,7 +163,10 @@ class TestDependencyChecker(TestCase):
check_requirements() check_requirements()


def test_setuptools_rust_ignored(self) -> None: def test_setuptools_rust_ignored(self) -> None:
"""Test a workaround for a `poetry build` problem. Reproduces #13926."""
"""
Test a workaround for a `poetry build` problem. Reproduces
https://github.com/matrix-org/synapse/issues/13926.
"""
with patch( with patch(
"synapse.util.check_dependencies.metadata.requires", "synapse.util.check_dependencies.metadata.requires",
return_value=["setuptools_rust >= 1.3"], return_value=["setuptools_rust >= 1.3"],


Loading…
Cancel
Save