mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-22 17:46:08 +03:00
Bugfixes
-------- - Fix bug in v0.33.3rc1 which caused infinite loops and OOMs ([\#3723](https://github.com/matrix-org/synapse/issues/3723)) -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEIQBQJ4l+yK4dlKkFIwi0edOSShEFAlt6/yMACgkQIwi0edOS ShFrzAgAhLA74fClydGLfhPNCXIw12Amv2ASA6+r0ukqjYQ/9MZ0CRsL+PMZJTk6 Z75PK3TkX38zSpPaUx9HdMQO/yE+rpI99ZxlBM+8jzsf1jyF8ljqxSfixXUlaXX9 698PQQ3f+IDoSs59NKrHvoWhUThaBpf/1GwRxG5mUcm2oKJItNMHk/uLurNCaIIZ YSwWcxvZdluOMX0WrlF/S524DqtgULcRf3E9x3mumobkVGxI3UH73hXgGUcPi7XV ttLuy7fVbV2Cun/wvjBqD7kc8LNbKwSaT9y+/xS0D5QYjph4rpQiTG7S5rtPLPMU Z2lL1C5ggBCkD43g3orDvehbNWCL5g== =0vEe -----END PGP SIGNATURE----- Merge tag 'v0.33.3rc2' into develop Bugfixes -------- - Fix bug in v0.33.3rc1 which caused infinite loops and OOMs ([\#3723](https://github.com/matrix-org/synapse/issues/3723))
This commit is contained in:
commit
a52f276990
46 changed files with 91 additions and 46 deletions
73
CHANGES.md
73
CHANGES.md
|
@ -1,3 +1,76 @@
|
|||
Synapse 0.33.3rc2 (2018-08-21)
|
||||
==============================
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix bug in v0.33.3rc1 which caused infinite loops and OOMs ([\#3723](https://github.com/matrix-org/synapse/issues/3723))
|
||||
|
||||
|
||||
Synapse 0.33.3rc1 (2018-08-21)
|
||||
==============================
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
- Add support for the SNI extension to federation TLS connections ([\#1491](https://github.com/matrix-org/synapse/issues/1491))
|
||||
- Add /_media/r0/config ([\#3184](https://github.com/matrix-org/synapse/issues/3184))
|
||||
- speed up /members API and add `at` and `membership` params as per MSC1227 ([\#3568](https://github.com/matrix-org/synapse/issues/3568))
|
||||
- implement `summary` block in /sync response as per MSC688 ([\#3574](https://github.com/matrix-org/synapse/issues/3574))
|
||||
- Add lazy-loading support to /messages as per MSC1227 ([\#3589](https://github.com/matrix-org/synapse/issues/3589))
|
||||
- Add ability to limit number of monthly active users on the server ([\#3633](https://github.com/matrix-org/synapse/issues/3633))
|
||||
- Support more federation endpoints on workers ([\#3653](https://github.com/matrix-org/synapse/issues/3653))
|
||||
- Basic support for room versioning ([\#3654](https://github.com/matrix-org/synapse/issues/3654))
|
||||
- Ability to disable client/server Synapse via conf toggle ([\#3655](https://github.com/matrix-org/synapse/issues/3655))
|
||||
- Ability to whitelist specific threepids against monthly active user limiting ([\#3662](https://github.com/matrix-org/synapse/issues/3662))
|
||||
- Add some metrics for the appservice and federation event sending loops ([\#3664](https://github.com/matrix-org/synapse/issues/3664))
|
||||
- Where server is disabled, block ability for locked out users to read new messages ([\#3670](https://github.com/matrix-org/synapse/issues/3670))
|
||||
- set admin uri via config, to be used in error messages where the user should contact the administrator ([\#3687](https://github.com/matrix-org/synapse/issues/3687))
|
||||
- Synapse's presence functionality can now be disabled with the "use_presence" configuration option. ([\#3694](https://github.com/matrix-org/synapse/issues/3694))
|
||||
- For resource limit blocked users, prevent writing into rooms ([\#3708](https://github.com/matrix-org/synapse/issues/3708))
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix occasional glitches in the synapse_event_persisted_position metric ([\#3658](https://github.com/matrix-org/synapse/issues/3658))
|
||||
- Fix bug on deleting 3pid when using identity servers that don't support unbind API ([\#3661](https://github.com/matrix-org/synapse/issues/3661))
|
||||
- Make the tests pass on Twisted < 18.7.0 ([\#3676](https://github.com/matrix-org/synapse/issues/3676))
|
||||
- Don’t ship recaptcha_ajax.js, use it directly from Google ([\#3677](https://github.com/matrix-org/synapse/issues/3677))
|
||||
- Fixes test_reap_monthly_active_users so it passes under postgres ([\#3681](https://github.com/matrix-org/synapse/issues/3681))
|
||||
- Fix mau blocking calulation bug on login ([\#3689](https://github.com/matrix-org/synapse/issues/3689))
|
||||
- Fix missing yield in synapse.storage.monthly_active_users.initialise_reserved_users ([\#3692](https://github.com/matrix-org/synapse/issues/3692))
|
||||
- Improve HTTP request logging to include all requests ([\#3700](https://github.com/matrix-org/synapse/issues/3700))
|
||||
- Avoid timing out requests while we are streaming back the response ([\#3701](https://github.com/matrix-org/synapse/issues/3701))
|
||||
- Support more federation endpoints on workers ([\#3705](https://github.com/matrix-org/synapse/issues/3705), [\#3713](https://github.com/matrix-org/synapse/issues/3713))
|
||||
- Fix "Starting db txn 'get_all_updated_receipts' from sentinel context" warning ([\#3710](https://github.com/matrix-org/synapse/issues/3710))
|
||||
- Fix bug where `state_cache` cache factor ignored environment variables ([\#3719](https://github.com/matrix-org/synapse/issues/3719))
|
||||
|
||||
|
||||
Deprecations and Removals
|
||||
-------------------------
|
||||
|
||||
- The Shared-Secret registration method of the legacy v1/register REST endpoint has been removed. For a replacement, please see [the admin/register API documentation](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/register_api.rst). ([\#3703](https://github.com/matrix-org/synapse/issues/3703))
|
||||
|
||||
|
||||
Internal Changes
|
||||
----------------
|
||||
|
||||
- The test suite now can run under PostgreSQL. ([\#3423](https://github.com/matrix-org/synapse/issues/3423))
|
||||
- Refactor HTTP replication endpoints to reduce code duplication ([\#3632](https://github.com/matrix-org/synapse/issues/3632))
|
||||
- Tests now correctly execute on Python 3. ([\#3647](https://github.com/matrix-org/synapse/issues/3647))
|
||||
- Sytests can now be run inside a Docker container. ([\#3660](https://github.com/matrix-org/synapse/issues/3660))
|
||||
- Port over enough to Python 3 to allow the sytests to start. ([\#3668](https://github.com/matrix-org/synapse/issues/3668))
|
||||
- Update docker base image from alpine 3.7 to 3.8. ([\#3669](https://github.com/matrix-org/synapse/issues/3669))
|
||||
- Rename synapse.util.async to synapse.util.async_helpers to mitigate async becoming a keyword on Python 3.7. ([\#3678](https://github.com/matrix-org/synapse/issues/3678))
|
||||
- Synapse's tests are now formatted with the black autoformatter. ([\#3679](https://github.com/matrix-org/synapse/issues/3679))
|
||||
- Implemented a new testing base class to reduce test boilerplate. ([\#3684](https://github.com/matrix-org/synapse/issues/3684))
|
||||
- Rename MAU prometheus metrics ([\#3690](https://github.com/matrix-org/synapse/issues/3690))
|
||||
- add new error type ResourceLimit ([\#3707](https://github.com/matrix-org/synapse/issues/3707))
|
||||
- Logcontexts for replication command handlers ([\#3709](https://github.com/matrix-org/synapse/issues/3709))
|
||||
- Update admin register API documentation to reference a real user ID. ([\#3712](https://github.com/matrix-org/synapse/issues/3712))
|
||||
|
||||
|
||||
Synapse 0.33.2 (2018-08-09)
|
||||
===========================
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Add support for the SNI extension to federation TLS connections
|
|
@ -1 +0,0 @@
|
|||
Add /_media/r0/config
|
|
@ -1 +0,0 @@
|
|||
The test suite now can run under PostgreSQL.
|
|
@ -1 +0,0 @@
|
|||
speed up /members API and add `at` and `membership` params as per MSC1227
|
|
@ -1 +0,0 @@
|
|||
implement `summary` block in /sync response as per MSC688
|
|
@ -1 +0,0 @@
|
|||
Add lazy-loading support to /messages as per MSC1227
|
|
@ -1 +0,0 @@
|
|||
Refactor HTTP replication endpoints to reduce code duplication
|
|
@ -1 +0,0 @@
|
|||
Add ability to limit number of monthly active users on the server
|
|
@ -1 +0,0 @@
|
|||
Tests now correctly execute on Python 3.
|
|
@ -1 +0,0 @@
|
|||
Support more federation endpoints on workers
|
|
@ -1 +0,0 @@
|
|||
Basic support for room versioning
|
|
@ -1 +0,0 @@
|
|||
Ability to disable client/server Synapse via conf toggle
|
|
@ -1 +0,0 @@
|
|||
Fix occasional glitches in the synapse_event_persisted_position metric
|
|
@ -1 +0,0 @@
|
|||
Sytests can now be run inside a Docker container.
|
|
@ -1 +0,0 @@
|
|||
Fix bug on deleting 3pid when using identity servers that don't support unbind API
|
|
@ -1 +0,0 @@
|
|||
Ability to whitelist specific threepids against monthly active user limiting
|
|
@ -1 +0,0 @@
|
|||
Add some metrics for the appservice and federation event sending loops
|
|
@ -1 +0,0 @@
|
|||
Port over enough to Python 3 to allow the sytests to start.
|
|
@ -1 +0,0 @@
|
|||
Update docker base image from alpine 3.7 to 3.8.
|
|
@ -1 +0,0 @@
|
|||
Where server is disabled, block ability for locked out users to read new messages
|
|
@ -1 +0,0 @@
|
|||
Make the tests pass on Twisted < 18.7.0
|
|
@ -1 +0,0 @@
|
|||
Don’t ship recaptcha_ajax.js, use it directly from Google
|
|
@ -1 +0,0 @@
|
|||
Rename synapse.util.async to synapse.util.async_helpers to mitigate async becoming a keyword on Python 3.7.
|
|
@ -1 +0,0 @@
|
|||
Synapse's tests are now formatted with the black autoformatter.
|
|
@ -1 +0,0 @@
|
|||
Fixes test_reap_monthly_active_users so it passes under postgres
|
|
@ -1 +0,0 @@
|
|||
Implemented a new testing base class to reduce test boilerplate.
|
|
@ -1 +0,0 @@
|
|||
set admin uri via config, to be used in error messages where the user should contact the administrator
|
|
@ -1 +0,0 @@
|
|||
Fix mau blocking calulation bug on login
|
|
@ -1 +0,0 @@
|
|||
Rename MAU prometheus metrics
|
|
@ -1 +0,0 @@
|
|||
Fix missing yield in synapse.storage.monthly_active_users.initialise_reserved_users
|
|
@ -1 +0,0 @@
|
|||
Synapse's presence functionality can now be disabled with the "use_presence" configuration option.
|
|
@ -1 +0,0 @@
|
|||
Improve HTTP request logging to include all requests
|
|
@ -1 +0,0 @@
|
|||
Avoid timing out requests while we are streaming back the response
|
|
@ -1 +0,0 @@
|
|||
The Shared-Secret registration method of the legacy v1/register REST endpoint has been removed. For a replacement, please see [the admin/register API documentation](https://github.com/matrix-org/synapse/blob/master/docs/admin_api/register_api.rst).
|
|
@ -1 +0,0 @@
|
|||
Support more federation endpoints on workers
|
|
@ -1 +0,0 @@
|
|||
add new error type ResourceLimit
|
|
@ -1 +0,0 @@
|
|||
For resource limit blocked users, prevent writing into rooms
|
|
@ -1 +0,0 @@
|
|||
Logcontexts for replication command handlers
|
|
@ -1 +0,0 @@
|
|||
Fix "Starting db txn 'get_all_updated_receipts' from sentinel context" warning
|
|
@ -1 +0,0 @@
|
|||
Update admin register API documentation to reference a real user ID.
|
|
@ -1 +0,0 @@
|
|||
Support more federation endpoints on workers
|
|
@ -1 +0,0 @@
|
|||
Fix bug where `state_cache` cache factor ignored environment variables
|
|
@ -17,4 +17,4 @@
|
|||
""" This is a reference implementation of a Matrix home server.
|
||||
"""
|
||||
|
||||
__version__ = "0.33.2"
|
||||
__version__ = "0.33.3rc2"
|
||||
|
|
|
@ -182,7 +182,7 @@ class SynapseRequest(Request):
|
|||
# the client disconnects.
|
||||
with PreserveLoggingContext(self.logcontext):
|
||||
logger.warn(
|
||||
"Error processing request: %s %s", reason.type, reason.value,
|
||||
"Error processing request %r: %s %s", self, reason.type, reason.value,
|
||||
)
|
||||
|
||||
if not self._is_processing:
|
||||
|
@ -219,6 +219,12 @@ class SynapseRequest(Request):
|
|||
"""Log the completion of this request and update the metrics
|
||||
"""
|
||||
|
||||
if self.logcontext is None:
|
||||
# this can happen if the connection closed before we read the
|
||||
# headers (so render was never called). In that case we'll already
|
||||
# have logged a warning, so just bail out.
|
||||
return
|
||||
|
||||
usage = self.logcontext.get_resource_usage()
|
||||
|
||||
if self._processing_finished_time is None:
|
||||
|
|
|
@ -385,7 +385,13 @@ class LoggingContextFilter(logging.Filter):
|
|||
context = LoggingContext.current_context()
|
||||
for key, value in self.defaults.items():
|
||||
setattr(record, key, value)
|
||||
context.copy_to(record)
|
||||
|
||||
# context should never be None, but if it somehow ends up being, then
|
||||
# we end up in a death spiral of infinite loops, so let's check, for
|
||||
# robustness' sake.
|
||||
if context is not None:
|
||||
context.copy_to(record)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
@ -396,7 +402,9 @@ class PreserveLoggingContext(object):
|
|||
|
||||
__slots__ = ["current_context", "new_context", "has_parent"]
|
||||
|
||||
def __init__(self, new_context=LoggingContext.sentinel):
|
||||
def __init__(self, new_context=None):
|
||||
if new_context is None:
|
||||
new_context = LoggingContext.sentinel
|
||||
self.new_context = new_context
|
||||
|
||||
def __enter__(self):
|
||||
|
|
Loading…
Reference in a new issue