Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 01c88a0

Browse files
authored
Use direct references for some configuration variables (#10798)
Instead of proxying through the magic getter of the RootConfig object. This should be more performant (and is more explicit).
1 parent 9f11107 commit 01c88a0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+152
-133
lines changed

changelog.d/10798.misc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Use direct references to config flags.

synapse/api/urls.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ def __init__(self, hs_config):
4141
"""
4242
if hs_config.form_secret is None:
4343
raise ConfigError("form_secret not set in config")
44-
if hs_config.public_baseurl is None:
44+
if hs_config.server.public_baseurl is None:
4545
raise ConfigError("public_baseurl not set in config")
4646

4747
self._hmac_secret = hs_config.form_secret.encode("utf-8")
48-
self._public_baseurl = hs_config.public_baseurl
48+
self._public_baseurl = hs_config.server.public_baseurl
4949

5050
def build_user_consent_uri(self, user_id):
5151
"""Build a URI which we can give to the user to do their privacy

synapse/app/_base.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def start_worker_reactor(appname, config, run_command=reactor.run):
8282
run_command (Callable[]): callable that actually runs the reactor
8383
"""
8484

85-
logger = logging.getLogger(config.worker_app)
85+
logger = logging.getLogger(config.worker.worker_app)
8686

8787
start_reactor(
8888
appname,
@@ -398,7 +398,7 @@ def run_sighup(*args, **kwargs):
398398

399399
# If background tasks are running on the main process, start collecting the
400400
# phone home stats.
401-
if hs.config.run_background_tasks:
401+
if hs.config.worker.run_background_tasks:
402402
start_phone_stats_home(hs)
403403

404404
# We now freeze all allocated objects in the hopes that (almost)
@@ -433,9 +433,13 @@ def setup_sentry(hs):
433433

434434
# We set some default tags that give some context to this instance
435435
with sentry_sdk.configure_scope() as scope:
436-
scope.set_tag("matrix_server_name", hs.config.server_name)
436+
scope.set_tag("matrix_server_name", hs.config.server.server_name)
437437

438-
app = hs.config.worker_app if hs.config.worker_app else "synapse.app.homeserver"
438+
app = (
439+
hs.config.worker.worker_app
440+
if hs.config.worker.worker_app
441+
else "synapse.app.homeserver"
442+
)
439443
name = hs.get_instance_name()
440444
scope.set_tag("worker_app", app)
441445
scope.set_tag("worker_name", name)

synapse/app/admin_cmd.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,12 @@ def start(config_options):
178178
sys.stderr.write("\n" + str(e) + "\n")
179179
sys.exit(1)
180180

181-
if config.worker_app is not None:
182-
assert config.worker_app == "synapse.app.admin_cmd"
181+
if config.worker.worker_app is not None:
182+
assert config.worker.worker_app == "synapse.app.admin_cmd"
183183

184184
# Update the config with some basic overrides so that don't have to specify
185185
# a full worker config.
186-
config.worker_app = "synapse.app.admin_cmd"
186+
config.worker.worker_app = "synapse.app.admin_cmd"
187187

188188
if (
189189
not config.worker_daemonize
@@ -196,7 +196,7 @@ def start(config_options):
196196

197197
# Explicitly disable background processes
198198
config.update_user_directory = False
199-
config.run_background_tasks = False
199+
config.worker.run_background_tasks = False
200200
config.start_pushers = False
201201
config.pusher_shard_config.instances = []
202202
config.send_federation = False
@@ -205,7 +205,7 @@ def start(config_options):
205205
synapse.events.USE_FROZEN_DICTS = config.use_frozen_dicts
206206

207207
ss = AdminCmdServer(
208-
config.server_name,
208+
config.server.server_name,
209209
config=config,
210210
version_string="Synapse/" + get_version_string(synapse),
211211
)

synapse/app/generic_worker.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ def start(config_options):
416416
sys.exit(1)
417417

418418
# For backwards compatibility let any of the old app names.
419-
assert config.worker_app in (
419+
assert config.worker.worker_app in (
420420
"synapse.app.appservice",
421421
"synapse.app.client_reader",
422422
"synapse.app.event_creator",
@@ -430,7 +430,7 @@ def start(config_options):
430430
"synapse.app.user_dir",
431431
)
432432

433-
if config.worker_app == "synapse.app.appservice":
433+
if config.worker.worker_app == "synapse.app.appservice":
434434
if config.appservice.notify_appservices:
435435
sys.stderr.write(
436436
"\nThe appservices must be disabled in the main synapse process"
@@ -446,7 +446,7 @@ def start(config_options):
446446
# For other worker types we force this to off.
447447
config.appservice.notify_appservices = False
448448

449-
if config.worker_app == "synapse.app.user_dir":
449+
if config.worker.worker_app == "synapse.app.user_dir":
450450
if config.server.update_user_directory:
451451
sys.stderr.write(
452452
"\nThe update_user_directory must be disabled in the main synapse process"
@@ -469,7 +469,7 @@ def start(config_options):
469469
synapse.metrics.MIN_TIME_BETWEEN_GCS = config.server.gc_seconds
470470

471471
hs = GenericWorkerServer(
472-
config.server_name,
472+
config.server.server_name,
473473
config=config,
474474
version_string="Synapse/" + get_version_string(synapse),
475475
)

synapse/app/homeserver.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ def setup(config_options):
350350
synapse.metrics.MIN_TIME_BETWEEN_GCS = config.server.gc_seconds
351351

352352
hs = SynapseHomeServer(
353-
config.server_name,
353+
config.server.server_name,
354354
config=config,
355355
version_string="Synapse/" + get_version_string(synapse),
356356
)

synapse/app/phone_stats_home.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ async def phone_stats_home(hs, stats, stats_process=_stats_process):
7373

7474
store = hs.get_datastore()
7575

76-
stats["homeserver"] = hs.config.server_name
76+
stats["homeserver"] = hs.config.server.server_name
7777
stats["server_context"] = hs.config.server_context
7878
stats["timestamp"] = now
7979
stats["uptime_seconds"] = uptime

synapse/config/logger.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ def _setup_stdlib_logging(config, log_config_path, logBeginner: LogBeginner) ->
223223
# writes.
224224

225225
log_context_filter = LoggingContextFilter()
226-
log_metadata_filter = MetadataFilter({"server_name": config.server_name})
226+
log_metadata_filter = MetadataFilter({"server_name": config.server.server_name})
227227
old_factory = logging.getLogRecordFactory()
228228

229229
def factory(*args, **kwargs):
@@ -335,5 +335,5 @@ def setup_logging(
335335
# Log immediately so we can grep backwards.
336336
logging.warning("***** STARTING SERVER *****")
337337
logging.warning("Server %s version %s", sys.argv[0], get_version_string(synapse))
338-
logging.info("Server hostname: %s", config.server_name)
338+
logging.info("Server hostname: %s", config.server.server_name)
339339
logging.info("Instance name: %s", hs.get_instance_name())

synapse/events/validator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def validate_new(self, event: EventBase, config: HomeServerConfig):
8888
self._validate_retention(event)
8989

9090
if event.type == EventTypes.ServerACL:
91-
if not server_matches_acl_event(config.server_name, event):
91+
if not server_matches_acl_event(config.server.server_name, event):
9292
raise SynapseError(
9393
400, "Can't create an ACL event that denies the local server"
9494
)

synapse/federation/sender/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ def __init__(self, hs: "HomeServer"):
281281
self._queues_awaiting_rr_flush_by_room: Dict[str, Set[PerDestinationQueue]] = {}
282282

283283
self._rr_txn_interval_per_room_ms = (
284-
1000.0 / hs.config.federation_rr_transactions_per_room_per_second
284+
1000.0
285+
/ hs.config.ratelimiting.federation_rr_transactions_per_room_per_second
285286
)
286287

287288
# wake up destinations that have outstanding PDUs to be caught up

synapse/groups/attestations.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def __init__(self, hs: "HomeServer"):
144144
self.is_mine_id = hs.is_mine_id
145145
self.attestations = hs.get_groups_attestation_signing()
146146

147-
if not hs.config.worker_app:
147+
if not hs.config.worker.worker_app:
148148
self._renew_attestations_loop = self.clock.looping_call(
149149
self._start_renew_attestations, 30 * 60 * 1000
150150
)

synapse/handlers/_base.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ def __init__(self, hs: "HomeServer"):
4545
self.request_ratelimiter = Ratelimiter(
4646
store=self.store, clock=self.clock, rate_hz=0, burst_count=0
4747
)
48-
self._rc_message = self.hs.config.rc_message
48+
self._rc_message = self.hs.config.ratelimiting.rc_message
4949

5050
# Check whether ratelimiting room admin message redaction is enabled
5151
# by the presence of rate limits in the config
52-
if self.hs.config.rc_admin_redaction:
52+
if self.hs.config.ratelimiting.rc_admin_redaction:
5353
self.admin_redaction_ratelimiter: Optional[Ratelimiter] = Ratelimiter(
5454
store=self.store,
5555
clock=self.clock,
56-
rate_hz=self.hs.config.rc_admin_redaction.per_second,
57-
burst_count=self.hs.config.rc_admin_redaction.burst_count,
56+
rate_hz=self.hs.config.ratelimiting.rc_admin_redaction.per_second,
57+
burst_count=self.hs.config.ratelimiting.rc_admin_redaction.burst_count,
5858
)
5959
else:
6060
self.admin_redaction_ratelimiter = None

synapse/handlers/account_validity.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def __init__(self, hs: "HomeServer"):
7878
)
7979

8080
# Check the renewal emails to send and send them every 30min.
81-
if hs.config.run_background_tasks:
81+
if hs.config.worker.run_background_tasks:
8282
self.clock.looping_call(self._send_renewal_emails, 30 * 60 * 1000)
8383

8484
self._is_user_expired_callbacks: List[IS_USER_EXPIRED_CALLBACK] = []
@@ -249,7 +249,7 @@ async def _send_renewal_email(self, user_id: str, expiration_ts: int) -> None:
249249

250250
renewal_token = await self._get_renewal_token(user_id)
251251
url = "%s_matrix/client/unstable/account_validity/renew?token=%s" % (
252-
self.hs.config.public_baseurl,
252+
self.hs.config.server.public_baseurl,
253253
renewal_token,
254254
)
255255

synapse/handlers/auth.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,8 @@ def __init__(self, hs: "HomeServer"):
244244
self._failed_uia_attempts_ratelimiter = Ratelimiter(
245245
store=self.store,
246246
clock=self.clock,
247-
rate_hz=self.hs.config.rc_login_failed_attempts.per_second,
248-
burst_count=self.hs.config.rc_login_failed_attempts.burst_count,
247+
rate_hz=self.hs.config.ratelimiting.rc_login_failed_attempts.per_second,
248+
burst_count=self.hs.config.ratelimiting.rc_login_failed_attempts.burst_count,
249249
)
250250

251251
# The number of seconds to keep a UI auth session active.
@@ -255,14 +255,14 @@ def __init__(self, hs: "HomeServer"):
255255
self._failed_login_attempts_ratelimiter = Ratelimiter(
256256
store=self.store,
257257
clock=hs.get_clock(),
258-
rate_hz=self.hs.config.rc_login_failed_attempts.per_second,
259-
burst_count=self.hs.config.rc_login_failed_attempts.burst_count,
258+
rate_hz=self.hs.config.ratelimiting.rc_login_failed_attempts.per_second,
259+
burst_count=self.hs.config.ratelimiting.rc_login_failed_attempts.burst_count,
260260
)
261261

262262
self._clock = self.hs.get_clock()
263263

264264
# Expire old UI auth sessions after a period of time.
265-
if hs.config.run_background_tasks:
265+
if hs.config.worker.run_background_tasks:
266266
self._clock.looping_call(
267267
run_as_background_process,
268268
5 * 60 * 1000,
@@ -289,7 +289,7 @@ def __init__(self, hs: "HomeServer"):
289289
hs.config.sso_account_deactivated_template
290290
)
291291

292-
self._server_name = hs.config.server_name
292+
self._server_name = hs.config.server.server_name
293293

294294
# cast to tuple for use with str.startswith
295295
self._whitelisted_sso_clients = tuple(hs.config.sso_client_whitelist)
@@ -749,7 +749,7 @@ def _get_params_terms(self) -> dict:
749749
"name": self.hs.config.user_consent_policy_name,
750750
"url": "%s_matrix/consent?v=%s"
751751
% (
752-
self.hs.config.public_baseurl,
752+
self.hs.config.server.public_baseurl,
753753
self.hs.config.user_consent_version,
754754
),
755755
},
@@ -1799,7 +1799,7 @@ def generate_delete_pusher_token(self, user_id: str) -> str:
17991799

18001800
def _generate_base_macaroon(self, user_id: str) -> pymacaroons.Macaroon:
18011801
macaroon = pymacaroons.Macaroon(
1802-
location=self.hs.config.server_name,
1802+
location=self.hs.config.server.server_name,
18031803
identifier="key",
18041804
key=self.hs.config.macaroon_secret_key,
18051805
)

synapse/handlers/deactivate_account.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __init__(self, hs: "HomeServer"):
4646

4747
# Start the user parter loop so it can resume parting users from rooms where
4848
# it left off (if it has work left to do).
49-
if hs.config.run_background_tasks:
49+
if hs.config.worker.run_background_tasks:
5050
hs.get_reactor().callWhenRunning(self._start_user_parting)
5151

5252
self._account_validity_enabled = (

synapse/handlers/devicemessage.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ def __init__(self, hs: "HomeServer"):
8484
self._ratelimiter = Ratelimiter(
8585
store=self.store,
8686
clock=hs.get_clock(),
87-
rate_hz=hs.config.rc_key_requests.per_second,
88-
burst_count=hs.config.rc_key_requests.burst_count,
87+
rate_hz=hs.config.ratelimiting.rc_key_requests.per_second,
88+
burst_count=hs.config.ratelimiting.rc_key_requests.burst_count,
8989
)
9090

9191
async def on_direct_to_device_edu(self, origin: str, content: JsonDict) -> None:

synapse/handlers/e2e_keys.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def __init__(self, hs: "HomeServer"):
5757

5858
federation_registry = hs.get_federation_registry()
5959

60-
self._is_master = hs.config.worker_app is None
60+
self._is_master = hs.config.worker.worker_app is None
6161
if not self._is_master:
6262
self._user_device_resync_client = (
6363
ReplicationUserDevicesResyncRestServlet.make_client(hs)

synapse/handlers/federation.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def __init__(self, hs: "HomeServer"):
101101
hs
102102
)
103103

104-
if hs.config.worker_app:
104+
if hs.config.worker.worker_app:
105105
self._maybe_store_room_on_outlier_membership = (
106106
ReplicationStoreRoomOnOutlierMembershipRestServlet.make_client(hs)
107107
)
@@ -1614,7 +1614,7 @@ async def _clean_room_for_join(self, room_id: str) -> None:
16141614
Args:
16151615
room_id
16161616
"""
1617-
if self.config.worker_app:
1617+
if self.config.worker.worker_app:
16181618
await self._clean_room_for_join_client(room_id)
16191619
else:
16201620
await self.store.clean_room_for_join(room_id)

synapse/handlers/federation_event.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def __init__(self, hs: "HomeServer"):
149149
self._ephemeral_messages_enabled = hs.config.server.enable_ephemeral_messages
150150

151151
self._send_events = ReplicationFederationSendEventsRestServlet.make_client(hs)
152-
if hs.config.worker_app:
152+
if hs.config.worker.worker_app:
153153
self._user_device_resync = (
154154
ReplicationUserDevicesResyncRestServlet.make_client(hs)
155155
)
@@ -1009,7 +1009,7 @@ async def _resync_device(self, sender: str) -> None:
10091009
await self._store.mark_remote_user_device_cache_as_stale(sender)
10101010

10111011
# Immediately attempt a resync in the background
1012-
if self._config.worker_app:
1012+
if self._config.worker.worker_app:
10131013
await self._user_device_resync(user_id=sender)
10141014
else:
10151015
await self._device_list_updater.user_device_resync(sender)

synapse/handlers/identity.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -540,13 +540,13 @@ async def requestMsisdnToken(
540540

541541
# It is already checked that public_baseurl is configured since this code
542542
# should only be used if account_threepid_delegate_msisdn is true.
543-
assert self.hs.config.public_baseurl
543+
assert self.hs.config.server.public_baseurl
544544

545545
# we need to tell the client to send the token back to us, since it doesn't
546546
# otherwise know where to send it, so add submit_url response parameter
547547
# (see also MSC2078)
548548
data["submit_url"] = (
549-
self.hs.config.public_baseurl
549+
self.hs.config.server.public_baseurl
550550
+ "_matrix/client/unstable/add_threepid/msisdn/submit_token"
551551
)
552552
return data

synapse/handlers/message.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def __init__(self, hs: "HomeServer"):
8484
# scheduled.
8585
self._scheduled_expiry: Optional[IDelayedCall] = None
8686

87-
if not hs.config.worker_app:
87+
if not hs.config.worker.worker_app:
8888
run_as_background_process(
8989
"_schedule_next_expiry", self._schedule_next_expiry
9090
)
@@ -461,7 +461,7 @@ def __init__(self, hs: "HomeServer"):
461461
self._dummy_events_threshold = hs.config.dummy_events_threshold
462462

463463
if (
464-
self.config.run_background_tasks
464+
self.config.worker.run_background_tasks
465465
and self.config.cleanup_extremities_with_dummy_events
466466
):
467467
self.clock.looping_call(

synapse/handlers/oidc.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ def __init__(
324324
self._allow_existing_users = provider.allow_existing_users
325325

326326
self._http_client = hs.get_proxied_http_client()
327-
self._server_name: str = hs.config.server_name
327+
self._server_name: str = hs.config.server.server_name
328328

329329
# identifier for the external_ids table
330330
self.idp_id = provider.idp_id

synapse/handlers/pagination.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def __init__(self, hs: "HomeServer"):
9191
self._retention_allowed_lifetime_min = hs.config.retention_allowed_lifetime_min
9292
self._retention_allowed_lifetime_max = hs.config.retention_allowed_lifetime_max
9393

94-
if hs.config.run_background_tasks and hs.config.retention_enabled:
94+
if hs.config.worker.run_background_tasks and hs.config.retention_enabled:
9595
# Run the purge jobs described in the configuration file.
9696
for job in hs.config.retention_purge_jobs:
9797
logger.info("Setting up purge job with config: %s", job)

0 commit comments

Comments
 (0)