11a8ae0632
* complement: enable dirty runs * Add changelog * Set a low connpool limit when running in Complement Dirty runs can cause many containers to be running concurrently, which seems to easily exhaust resources on the host. The increased speedup from dirty runs also seems to use more db connections on workers, which are misconfigured currently to have `SUM(workers * cp_max) > max_connections`, causing ``` FATAL: sorry, too many clients already ``` which results in tests failing. * Try p=2 concurrency to restrict slowness of servers which causes partial state join tests to flake * Debug logging * Only run flakey tests * Only adjust connection pool limits in worker mode * Move cp vars to somewhere where they get executed in CI * Move cp values back to where they actually work * Debug logging * Try p=1 to see if this makes worker mode happier * Remove debug logging |
||
---|---|---|
.. | ||
conf | ||
Dockerfile | ||
README.md |
README.md
Unified Complement image for Synapse
This is an image for testing Synapse with the Complement integration test suite. It contains some insecure defaults that are only suitable for testing purposes, so please don't use this image for a production server.
This multi-purpose image is built on top of Dockerfile-workers
in the parent directory
and can be switched using environment variables between the following configurations:
- Monolithic Synapse with SQLite (default, or
SYNAPSE_COMPLEMENT_DATABASE=sqlite
) - Monolithic Synapse with Postgres (
SYNAPSE_COMPLEMENT_DATABASE=postgres
) - Workerised Synapse with Postgres (
SYNAPSE_COMPLEMENT_DATABASE=postgres
andSYNAPSE_COMPLEMENT_USE_WORKERS=true
)
The image is self-contained; it contains an integrated Postgres, Redis and Nginx.
How to get Complement to pass the environment variables through
To pass these environment variables, use Complement's COMPLEMENT_SHARE_ENV_PREFIX
variable to configure an environment prefix to pass through, then prefix the above options
with that prefix.
Example:
COMPLEMENT_SHARE_ENV_PREFIX=PASS_ PASS_SYNAPSE_COMPLEMENT_DATABASE=postgres
Consult scripts-dev/complement.sh
in the repository root for a real example.