From ce45b3f71fe991a094c82234a6821a56d0310cf9 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Wed, 14 Oct 2026 16:30:22 +0000 Subject: [PATCH] Pass RUST_SYNC through to Complement homeservers Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_0194eNQP5weBtVMg8NKtc6VU --- docker/complement/conf/start_for_complement.sh | 8 +++++++- scripts-dev/complement.sh | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docker/complement/conf/start_for_complement.sh b/docker/complement/conf/start_for_complement.sh index 0c6ac6e264..e6a50da305 100755 --- a/docker/complement/conf/start_for_complement.sh +++ b/docker/complement/conf/start_for_complement.sh @@ -6,7 +6,7 @@ set -e echo "Complement Synapse launcher" echo " Args: $*" -echo " Env: SYNAPSE_COMPLEMENT_DATABASE=$SYNAPSE_COMPLEMENT_DATABASE SYNAPSE_COMPLEMENT_USE_WORKERS=$SYNAPSE_COMPLEMENT_USE_WORKERS SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR=$SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR SYNAPSE_USE_RUST_DRIVER=$SYNAPSE_USE_RUST_DRIVER SYNAPSE_RUST_STATE_RES=$SYNAPSE_RUST_STATE_RES" +echo " Env: SYNAPSE_COMPLEMENT_DATABASE=$SYNAPSE_COMPLEMENT_DATABASE SYNAPSE_COMPLEMENT_USE_WORKERS=$SYNAPSE_COMPLEMENT_USE_WORKERS SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR=$SYNAPSE_COMPLEMENT_USE_ASYNCIO_REACTOR SYNAPSE_USE_RUST_DRIVER=$SYNAPSE_USE_RUST_DRIVER SYNAPSE_RUST_STATE_RES=$SYNAPSE_RUST_STATE_RES SYNAPSE_RUST_SYNC=$SYNAPSE_RUST_SYNC" function log { d=$(printf '%(%Y-%m-%d %H:%M:%S)T,%.3s\n' ${EPOCHREALTIME/./ }) @@ -135,6 +135,12 @@ if [[ -n "$SYNAPSE_RUST_STATE_RES" ]]; then sed -i "s/^experimental_features:$/experimental_features:\n rust_state_res: \"$SYNAPSE_RUST_STATE_RES\"/" /conf/shared.yaml.j2 fi +# Compute sync rooms in Rust (`experimental_features.rust_sync`), allowing the +# two event caches a test homeserver can afford. +if [[ -n "$SYNAPSE_RUST_SYNC" ]]; then + sed -i "s/^experimental_features:$/experimental_features:\n rust_sync: \"$SYNAPSE_RUST_SYNC\"\n rust_sync_allow_unshared_event_cache: true/" /conf/shared.yaml.j2 +fi + # Add a directory for tests to add config overrides if they want mkdir --parents /conf/homeserver.d export _SYNAPSE_COMPLEMENT_EXTRA_CONFIG_DIR=/conf/homeserver.d diff --git a/scripts-dev/complement.sh b/scripts-dev/complement.sh index 6e2bf37e42..a13f480f22 100755 --- a/scripts-dev/complement.sh +++ b/scripts-dev/complement.sh @@ -370,6 +370,12 @@ main() { export PASS_SYNAPSE_RUST_STATE_RES="$RUST_STATE_RES" fi + if [[ -n "$RUST_SYNC" ]]; then + # Set `experimental_features.rust_sync` (off, shadow or on). The Rust sync + # handler needs RUST_DRIVER=1. + export PASS_SYNAPSE_RUST_SYNC="$RUST_SYNC" + fi + if [[ -n "$UNIX_SOCKETS" ]]; then # Enable full on Unix socket mode for Synapse, Redis and Postgresql export PASS_SYNAPSE_USE_UNIX_SOCKET=1