diff options
author | Matthew Hodgson <matthew@matrix.org> | 2016-12-30 01:05:26 +0000 |
---|---|---|
committer | Matthew Hodgson <matthew@matrix.org> | 2016-12-30 01:05:26 +0000 |
commit | 68f5cadcba27bbf75ff7d0f9abcb9e78ddb559c4 (patch) | |
tree | 1b44c3879b0e0b9900f24d17564d2b42e6526fd4 | |
parent | Bump changelog and version (diff) | |
download | synapse-github/matthew/logging-memleak.tar.xz |
avoid leaking twisted log events by routing them to python's logging instead github/matthew/logging-memleak matthew/logging-memleak
-rwxr-xr-x | synapse/app/homeserver.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py index 54f35900f8..26425f21c4 100755 --- a/synapse/app/homeserver.py +++ b/synapse/app/homeserver.py @@ -38,6 +38,8 @@ from twisted.application import service from twisted.web.resource import Resource, EncodingResourceWrapper from twisted.web.static import File from twisted.web.server import GzipEncoderFactory +from twisted.logger import globalLogBeginner, STDLibLogObserver + from synapse.http.server import RootRedirect from synapse.rest.media.v0.content_repository import ContentRepoResource from synapse.rest.media.v1.media_repository import MediaRepositoryResource @@ -474,6 +476,16 @@ def run(hs): def main(): + + # it's critical to point twisted's internal logging somewhere, otherwise it + # stacks up and leaks; see: https://twistedmatrix.com/trac/ticket/8164 + # + # XXX: however, routing it to python.logging is apparently a perf problem + # as python.logging is a blocking API - see + # https://twistedmatrix.com/documents/current/core/howto/logger.html + # filed as https://github.com/matrix-org/synapse/issues/1727 + globalLogBeginner.beginLoggingTo([STDLibLogObserver()]) + with LoggingContext("main"): # check base requirements check_requirements() |