summary refs log tree commit diff
path: root/synapse/app/federation_sender.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Correctly mention previous copyright (#16820)Erik Johnston2024-01-231-0/+1
| | | | | During the migration the automated script to update the copyright headers accidentally got rid of some of the existing copyright lines. Reinstate them.
* Update license headersPatrick Cloke2023-11-211-10/+16
|
* Refactor entry points so that they all have a `main` function. (#13052)reivilibre2022-06-141-1/+6
|
* Remove shebang line from module files (#10415)V024602021-07-291-1/+0
| | | Signed-off-by: Kai A. Hiller <V02460@gmail.com>
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Merge worker apps into one. (#6964)Erik Johnston2020-02-251-300/+3
|
* Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957)Patrick Cloke2020-02-211-2/+2
| | | | Ensure good comprehension hygiene using flake8-comprehensions.
* Fix race in federation sender that delayed device updates. (#6799)Erik Johnston2020-01-291-1/+19
| | | | | | | | | | | | We were sending device updates down both the federation stream and device streams. This mean there was a race if the federation sender worker processed the federation stream first, as when the sender checked if there were new device updates the slaved ID generator hadn't been updated with the new stream IDs and so returned nothing. This situation is correctly handled by events/receipts/etc by not sending updates down the federation stream and instead having the federation sender worker listen on the other streams and poke the transaction queues as appropriate.
* Wake up transaction queue when remote server comes back online (#6706)Erik Johnston2020-01-171-1/+11
| | | | | This will be used to retry outbound transactions to a remote server if we think it might have come back up.
* Port synapse.replication.tcp to async/await (#6666)Erik Johnston2020-01-161-3/+2
| | | | | | | | | | * Port synapse.replication.tcp to async/await * Newsfile * Correctly document type of on_<FOO> functions as async * Don't be overenthusiastic with the asyncing....
* Remove database config parsing from apps.Erik Johnston2019-12-101-5/+0
|
* Change DataStores to accept 'database' param.Erik Johnston2019-12-061-2/+3
|
* Clean up newline quote marks around the codebase (#6362)Andrew Morgan2019-11-211-1/+1
|
* Remove usage of deprecated logger.warn method from codebase (#6271)Andrew Morgan2019-10-311-2/+2
| | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated.
* Implement a structured logging output system. (#5680)Amber Brown2019-08-281-2/+2
|
* Call startup commands as system triggers.Erik Johnston2019-07-221-1/+3
| | | | | This helps ensures that we only consider ourselves "up" once all the startup functions have completed.
* Support Prometheus_client 0.4.0+ (#5636)Amber Brown2019-07-181-2/+1
|
* Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-1/+1
|
* Run Black. (#5482)Amber Brown2019-06-201-19/+27
|
* Move replication.tcp.streams into a packageRichard van der Hoff2019-03-271-1/+1
|
* Move client receipt processing to federation sender worker.Richard van der Hoff2019-03-131-0/+30
| | | | | This is mostly a prerequisite for #4730, but also fits with the general theme of "move everything off the master that we possibly can".
* Deduplicate some code in synapse.app (#4567)Amber Brown2019-02-081-11/+1
|
* Fix worker TLS (#4492)Amber Brown2019-01-281-9/+9
| | | | | | | | * load cert * changelog * fix
* Replaced all occurences of e.message with str(e)Schnuffle2018-09-271-1/+1
| | | | Signed-off-by: Schnuffle <schnuffle@github.com>
* Fix some instances of ExpiringCache not expiring cache itemsErik Johnston2018-09-211-1/+0
| | | | | | | | ExpiringCache required that `start()` be called before it would actually start expiring entries. A number of places didn't do that. This PR removes `start` from ExpiringCache, and automatically starts backround reaping process on creation instead.
* Make sure that we close db connections opened during initRichard van der Hoff2018-08-281-4/+1
| | | | | | | | | We should explicitly close any db connections we open, because failing to do so can block other transactions as per https://github.com/matrix-org/synapse/issues/3682. Let's also try to factor out some of the boilerplate by having server classes define their datastore class rather than duplicating the whole of `setup`.
* Logcontexts for replication command handlersRichard van der Hoff2018-08-171-1/+2
| | | | | | | | | | Run the handlers for replication commands as background processes. This should improve the visibility in our metrics, and reduce the number of "running db transaction from sentinel context" warnings. Ideally it means converting the things that fire off deferreds into the night into things that actually return a Deferred when they are done. I've made a bit of a stab at this, but it will probably be leaky.
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-08-151-1/+3
|\ | | | | | | erikj/split_federation
| * Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678)Amber Brown2018-08-101-1/+1
| |
| * Merge remote-tracking branch 'upstream/develop' into ↵Jeroen2018-07-141-2/+3
| |\ | | | | | | | | | | | | | | | | | | send_sni_for_federation_requests # Conflicts: # synapse/crypto/context_factory.py
| * | send SNI for federation requestsJeroen2018-06-241-0/+2
| | |
* | | Rename slave TransactionStore to SlaveTransactionStoreErik Johnston2018-08-151-2/+2
| |/ |/|
* | run isortAmber Brown2018-07-091-2/+3
|/
* The flag is named enable_metrics, not collect_metricsTravis Ralston2018-06-121-1/+1
| | | Signed-off-by: Travis Ralston <travpc@gmail.com>
* Run Prometheus on a different port, optionally. (#3274)Amber Brown2018-05-311-1/+9
|
* Set Server header in SynapseRequestRichard van der Hoff2018-05-101-0/+1
| | | | | | | | | | | | (instead of everywhere that writes a response. Or rather, the subset of places which write responses where we haven't forgotten it). This also means that we don't have to have the mysterious version_string attribute in anything with a request handler. Unfortunately it does mean that we have to pass the version string wherever we instantiate a SynapseSite, which has been c&ped 150 times, but that is code that ought to be cleaned up anyway really.
* Merge remote-tracking branch 'origin/develop' into rav/use_run_in_backgroundRichard van der Hoff2018-04-271-12/+15
|\
| * Improve exception handling for background processesRichard van der Hoff2018-04-271-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a bunch of places where we fire off a process to happen in the background, but don't have any exception handling on it - instead relying on the unhandled error being logged when the relevent deferred gets garbage-collected. This is unsatisfactory for a number of reasons: - logging on garbage collection is best-effort and may happen some time after the error, if at all - it can be hard to figure out where the error actually happened. - it is logged as a scary CRITICAL error which (a) I always forget to grep for and (b) it's not really CRITICAL if a background process we don't care about fails. So this is an attempt to add exception handling to everything we fire off into the background.
* | Use run_in_background in preference to preserve_fnRichard van der Hoff2018-04-271-2/+2
|/ | | | | | While I was going through uses of preserve_fn for other PRs, I converted places which only use the wrapped function once to use run_in_background, to avoid creating the function object.
* 404 correctly on missing paths via NoResourceMatthew Hodgson2018-03-231-2/+2
| | | | fixes https://github.com/matrix-org/synapse/issues/2043 and https://github.com/matrix-org/synapse/issues/2029
* Factor out get_db_conn to HomeServer base classRichard van der Hoff2018-01-261-13/+0
| | | | | This function is identical to all subclasses, so we may as well push it up to the base class to reduce duplication (and make use of it in the tests)
* Implement listen_tcp method in remaining workersSilke2017-12-181-21/+17
| | | | Signed-off-by: Silke <silke@slxh.eu>
* Factor out common application startRichard van der Hoff2017-08-151-44/+13
| | | | | We have 10 copies of this code, and I don't really want to update each one separately.
* Initial worker implErik Johnston2017-06-161-1/+1
|
* Move get_presence_list_* to SlaveStoreErik Johnston2017-04-111-13/+2
|
* Reduce federation presence replication trafficErik Johnston2017-04-101-0/+12
| | | | | | | | This is mainly done by moving the calculation of where to send presence updates from the presence handler to the transaction queue, so we only need to send the presence event (and not the destinations) across the replication connection. Before we were duplicating by sending the full state across once per destination.
* Fix up federation SendQueue and document typesErik Johnston2017-04-071-65/+1
|
* Don't double json encode federation replication dataErik Johnston2017-04-051-3/+1
|
* Add commentErik Johnston2017-04-041-0/+5
|
* Add the appropriate amount of preserve_fnErik Johnston2017-04-041-2/+2
|
* Move where we ack federationErik Johnston2017-04-041-7/+16
|
* Update all the workers and master to use TCP replicationErik Johnston2017-04-031-48/+62
|
* Run the reactor with the sentinel logcontextRichard van der Hoff2017-03-181-2/+6
| | | | | | This fixes a class of 'Unexpected logcontext' messages, which were happening because the logcontext was somewhat arbitrarily swapping between the sentinel and the `run` logcontext.
* Refactor logger config for workersRichard van der Hoff2017-03-101-1/+1
| | | | - to make it easier to add more config options.
* Hook device list updates to replicationErik Johnston2017-01-271-1/+2
|
* Restore default bind addressErik Johnston2017-01-101-10/+2
|
* Fix check for bind_addressJohannes Löthberg2016-12-201-2/+2
| | | | | | | The empty string is a valid setting for the bind_address option, so explicitly check for None here instead. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* Add support for specifying multiple bind addressesJohannes Löthberg2016-12-181-20/+34
| | | | Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
* CommentErik Johnston2016-11-231-0/+3
|
* Explicit federation ackErik Johnston2016-11-231-1/+4
|
* CommentsErik Johnston2016-11-211-0/+12
|
* Store federation stream positions in the databaseErik Johnston2016-11-211-16/+22
|
* Handle sending events and device messages over federationErik Johnston2016-11-171-13/+18
|
* Hook up the send queue and create a federation sender workerErik Johnston2016-11-161-0/+302