Skip to content
Snippets Groups Projects
Unverified Commit dc37b68a authored by Quentin Gliech's avatar Quentin Gliech Committed by GitHub
Browse files

Parse SYNAPSE_ASYNC_IO_REACTOR env variable & log the reactor on startup (#14092)

parent 8faf7245
No related branches found
No related tags found
No related merge requests found
Run the integration test suites with the asyncio reactor enabled in CI.
...@@ -21,6 +21,7 @@ import os ...@@ -21,6 +21,7 @@ import os
import sys import sys
from synapse.util.rust import check_rust_lib_up_to_date from synapse.util.rust import check_rust_lib_up_to_date
from synapse.util.stringutils import strtobool
# Check that we're not running on an unsupported Python version. # Check that we're not running on an unsupported Python version.
if sys.version_info < (3, 7): if sys.version_info < (3, 7):
...@@ -28,25 +29,22 @@ if sys.version_info < (3, 7): ...@@ -28,25 +29,22 @@ if sys.version_info < (3, 7):
sys.exit(1) sys.exit(1)
# Allow using the asyncio reactor via env var. # Allow using the asyncio reactor via env var.
if bool(os.environ.get("SYNAPSE_ASYNC_IO_REACTOR", False)): if strtobool(os.environ.get("SYNAPSE_ASYNC_IO_REACTOR", "0")):
try: from incremental import Version
from incremental import Version
import twisted import twisted
# We need a bugfix that is included in Twisted 21.2.0: # We need a bugfix that is included in Twisted 21.2.0:
# https://twistedmatrix.com/trac/ticket/9787 # https://twistedmatrix.com/trac/ticket/9787
if twisted.version < Version("Twisted", 21, 2, 0): if twisted.version < Version("Twisted", 21, 2, 0):
print("Using asyncio reactor requires Twisted>=21.2.0") print("Using asyncio reactor requires Twisted>=21.2.0")
sys.exit(1) sys.exit(1)
import asyncio import asyncio
from twisted.internet import asyncioreactor from twisted.internet import asyncioreactor
asyncioreactor.install(asyncio.get_event_loop()) asyncioreactor.install(asyncio.get_event_loop())
except ImportError:
pass
# Twisted and canonicaljson will fail to import when this file is executed to # Twisted and canonicaljson will fail to import when this file is executed to
# get the __version__ during a fresh install. That's OK and subsequent calls to # get the __version__ during a fresh install. That's OK and subsequent calls to
......
...@@ -326,6 +326,8 @@ def setup_logging( ...@@ -326,6 +326,8 @@ def setup_logging(
logBeginner: The Twisted logBeginner to use. logBeginner: The Twisted logBeginner to use.
""" """
from twisted.internet import reactor
log_config_path = ( log_config_path = (
config.worker.worker_log_config config.worker.worker_log_config
if use_worker_options if use_worker_options
...@@ -348,3 +350,4 @@ def setup_logging( ...@@ -348,3 +350,4 @@ def setup_logging(
) )
logging.info("Server hostname: %s", config.server.server_name) logging.info("Server hostname: %s", config.server.server_name)
logging.info("Instance name: %s", hs.get_instance_name()) logging.info("Instance name: %s", hs.get_instance_name())
logging.info("Twisted reactor: %s", type(reactor).__name__)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment