Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rename and move the classes | Richard van der Hoff | 2019-03-13 | 1 | -801/+0 |
| | |||||
* | Factor per-destination stuff out of TransactionQueue | Richard van der Hoff | 2019-03-13 | 1 | -132/+182 |
| | | | | This is easier than having to have a million fields keyed on destination. | ||||
* | Move client receipt processing to federation sender worker. | Richard van der Hoff | 2019-03-13 | 1 | -0/+35 |
| | | | | | This is mostly a prerequisite for #4730, but also fits with the general theme of "move everything off the master that we possibly can". | ||||
* | Avoid rebuilding Edu objects in worker mode (#4770) | Richard van der Hoff | 2019-03-04 | 1 | -7/+24 |
| | | | | | In worker mode, on the federation sender, when we receive an edu for sending over the replication socket, it is parsed into an Edu object. There is no point extracting the contents of it so that we can then immediately build another Edu. | ||||
* | Add metrics for number of outgoing EDUs, by type (#4695) | Richard van der Hoff | 2019-02-20 | 1 | -4/+18 |
| | |||||
* | Use snder and not event ID domain to check if ours | Erik Johnston | 2019-01-29 | 1 | -1/+1 |
| | | | | | | The transaction queue only sends out events that we generate. This was done by checking domain of event ID, but that can no longer be used. Instead, we may as well use the sender field. | ||||
* | Don't log stack traces for HTTP error responses | Erik Johnston | 2019-01-08 | 1 | -1/+6 |
| | |||||
* | Refactor request sending to have better excpetions (#4358) | Erik Johnston | 2019-01-08 | 1 | -5/+14 |
| | | | | | | | | | | | | | | * Correctly retry and back off if we get a HTTPerror response * Refactor request sending to have better excpetions MatrixFederationHttpClient blindly reraised exceptions to the caller without differentiating "expected" failures (e.g. connection timeouts etc) versus more severe problems (e.g. programming errors). This commit adds a RequestSendFailed exception that is raised when "expected" failures happen, allowing the TransactionQueue to log them as warnings while allowing us to log other exceptions as actual exceptions. | ||||
* | Add helpers for getting prev and auth events (#4139) | Erik Johnston | 2018-11-06 | 1 | -3/+1 |
| | | | | | | | * Add helpers for getting prev and auth events This is in preparation for allowing the event format to change between room versions. | ||||
* | Various cleanups in the federation client code (#4031) | Richard van der Hoff | 2018-10-16 | 1 | -15/+12 |
| | | | | | | | | | | | | | | - Improve logging: log things in the right order, include destination and txids in all log lines, don't log successful responses twice - Fix the docstring on TransportLayerClient.send_transaction - Don't use treq.request, which is overcomplicated for our purposes: just use a twisted.web.client.Agent. - simplify the logic for setting up the bodyProducer - fix bytes/str confusions | ||||
* | Fix complete fail to do the right thing | Richard van der Hoff | 2018-09-28 | 1 | -1/+2 |
| | |||||
* | remove spurious federation checks on localhost | Richard van der Hoff | 2018-09-26 | 1 | -31/+6 |
| | | | | | | | | | | | There's really no point in checking for destinations called "localhost" because there is nothing stopping people creating other DNS entries which point to 127.0.0.1. The right fix for this is https://github.com/matrix-org/synapse/issues/3953. Blocking localhost, on the other hand, means that you get a surprise when trying to connect a test server on localhost to an existing server (with a 'normal' server_name). | ||||
* | Limit the number of PDUs/EDUs per fedreation transaction | Erik Johnston | 2018-09-06 | 1 | -0/+12 |
| | |||||
* | Integrate presence from hotfixes (#3694) | Amber Brown | 2018-08-18 | 1 | -0/+4 |
| | |||||
* | more metrics for the federation and appservice senders | Richard van der Hoff | 2018-08-07 | 1 | -1/+9 |
| | |||||
* | Remove pdu_failures from transactions | Travis Ralston | 2018-07-30 | 1 | -27/+5 |
| | | | The field is never read from, and all the opportunities given to populate it are not utilized. It should be very safe to remove this. | ||||
* | Run things as background processes | Richard van der Hoff | 2018-07-18 | 1 | -9/+6 |
| | | | | | | | | This fixes #3518, and ensures that we get useful logs and metrics for lots of things that happen in the background. (There are certainly more things that happen in the background; these are just the common ones I've found running a single-process synapse locally). | ||||
* | Resource tracking for background processes | Richard van der Hoff | 2018-07-18 | 1 | -5/+7 |
| | | | | | | | | | | | | | | | | This introduces a mechanism for tracking resource usage by background processes, along with an example of how it will be used. This will help address #3518, but more importantly will give us better insights into things which are happening but not being shown up by the request metrics. We *could* do this with Measure blocks, but: - I think having them pulled out as a completely separate metric class will make it easier to distinguish top-level processes from those which are nested. - I want to be able to report on in-flight background processes, and I don't think we want to do this for *all* Measure blocks. | ||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -16/+14 |
| | |||||
* | Populate synapse_federation_client_sent_pdu_destinations:count again (#3386) | Amber Brown | 2018-06-21 | 1 | -3/+7 |
| | |||||
* | Remove run_on_reactor (#3395) | Amber Brown | 2018-06-14 | 1 | -4/+0 |
| | |||||
* | Consistently use six's iteritems and wrap lazy keys/values in list() if ↵ | Amber Brown | 2018-05-31 | 1 | -2/+4 |
| | | | | they're not meant to be lazy (#3307) | ||||
* | fixes | Amber Brown | 2018-05-23 | 1 | -4/+4 |
| | |||||
* | cleanup pep8 errors | Amber Brown | 2018-05-22 | 1 | -5/+17 |
| | |||||
* | fixes | Amber Brown | 2018-05-22 | 1 | -3/+3 |
| | |||||
* | replacing portions | Amber Brown | 2018-05-21 | 1 | -28/+19 |
| | |||||
* | Improve exception handling for background processes | Richard van der Hoff | 2018-04-27 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | Set all metrics at the same time | Erik Johnston | 2018-04-12 | 1 | -6/+6 |
| | |||||
* | Track last processed event received_ts | Erik Johnston | 2018-04-11 | 1 | -0/+11 |
| | |||||
* | Track where event stream processing have gotten up to | Erik Johnston | 2018-04-11 | 1 | -0/+4 |
| | |||||
* | Use run_in_background instead | Erik Johnston | 2018-04-10 | 1 | -1/+1 |
| | |||||
* | Preserve log contexts correctly | Erik Johnston | 2018-04-10 | 1 | -1/+4 |
| | |||||
* | Log event ID on exception | Erik Johnston | 2018-04-10 | 1 | -1/+4 |
| | |||||
* | Handle all events in a room correctly | Erik Johnston | 2018-04-09 | 1 | -1/+2 |
| | |||||
* | Send federation events concurrently | Erik Johnston | 2018-04-09 | 1 | -4/+18 |
| | |||||
* | Handle exceptions in get_hosts_for_room when sending events over federation | Erik Johnston | 2018-04-09 | 1 | -11/+16 |
| | |||||
* | Add federation_domain_whitelist option (#2820) | Matthew Hodgson | 2018-01-22 | 1 | -1/+3 |
| | | | | | | Add federation_domain_whitelist gives a way to restrict which domains your HS is allowed to federate with. useful mainly for gracefully preventing a private but internet-connected HS from trying to federate to the wider public Matrix network | ||||
* | Metrics for events processed in appservice and fed sender | Richard van der Hoff | 2018-01-15 | 1 | -0/+4 |
| | | | | More metrics I wished I'd had | ||||
* | Clear logcontext before starting fed txn queue runner | Richard van der Hoff | 2017-11-28 | 1 | -2/+8 |
| | | | | | These processes take a long time compared to the request, so there is lots of "Entering|Restoring dead context" in the logs. Let's try to shut it up a bit. | ||||
* | Fix up logcontext handling in (federation) TransactionQueue | Richard van der Hoff | 2017-10-06 | 1 | -16/+32 |
| | | | | | Avoid using preserve_context_over_function, which has problems with respect to logcontexts. | ||||
* | Remove spurious log lines | Erik Johnston | 2017-06-07 | 1 | -1/+0 |
| | |||||
* | Faster cache for get_joined_hosts | Erik Johnston | 2017-05-25 | 1 | -0/+2 |
| | |||||
* | Make presence use cached users/hosts in room | Erik Johnston | 2017-05-16 | 1 | -1/+1 |
| | |||||
* | Add cache for get_current_hosts_in_room | Erik Johnston | 2017-05-02 | 1 | -5/+1 |
| | |||||
* | Merge pull request #2115 from matrix-org/erikj/dedupe_federation_repl | Erik Johnston | 2017-04-12 | 1 | -10/+76 |
|\ | | | | | Reduce federation replication traffic | ||||
| * | Comment | Erik Johnston | 2017-04-12 | 1 | -2/+1 |
| | | |||||
| * | Reuse get_interested_parties | Erik Johnston | 2017-04-12 | 1 | -3/+3 |
| | | |||||
| * | Comment | Erik Johnston | 2017-04-11 | 1 | -0/+2 |
| | | |||||
| * | Move get_interested_remotes back to presence handler | Erik Johnston | 2017-04-11 | 1 | -35/+6 |
| | | |||||
| * | Comments | Erik Johnston | 2017-04-11 | 1 | -1/+14 |
| | | |||||
| * | Reduce federation presence replication traffic | Erik Johnston | 2017-04-10 | 1 | -9/+90 |
| | | | | | | | | | | | | | | | | 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. | ||||
* | | Add a counter metric for successfully-sent transactions | Paul "LeoNerd" Evans | 2017-04-11 | 1 | -0/+3 |
|/ | |||||
* | Bail early if remote wouldn't be retried (#2064) | Erik Johnston | 2017-03-29 | 1 | -2/+8 |
| | | | | | | | | | | * Bail early if remote wouldn't be retried * Don't always return true * Just use get_retry_limiter * Spelling | ||||
* | Batch sending of device list pokes | Erik Johnston | 2017-03-24 | 1 | -0/+1 |
| | |||||
* | push federation retry limiter down to matrixfederationclient | Richard van der Hoff | 2017-03-23 | 1 | -121/+95 |
| | | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter. | ||||
* | Fix assertion to stop transaction queue getting wedged | Richard van der Hoff | 2017-03-15 | 1 | -0/+5 |
| | | | | | | | | ... and update some docstrings to correctly reflect the types being used. get_new_device_msgs_for_remote can return a long under some circumstances, which was being stored in last_device_list_stream_id_by_dest, and was then upsetting things on the next loop. | ||||
* | Fix a race in transaction queue | Richard van der Hoff | 2017-02-20 | 1 | -9/+21 |
| | | | | | | It was theoretically possible for a PDU to get queued and not sent for ages. On closer inspection I think there were bigger problems elsewhere, but we might as well fix this since it's easy. | ||||
* | Correctly raise exceptions for ratelimitng. Ratelimit on 401 | Erik Johnston | 2017-02-01 | 1 | -1/+1 |
| | |||||
* | Better handle 404 response for federation /send/ | Erik Johnston | 2017-01-31 | 1 | -0/+1 |
| | |||||
* | Fix up sending of m.device_list_update edus | Erik Johnston | 2017-01-25 | 1 | -60/+61 |
| | |||||
* | Add basic implementation of local device list changes | Erik Johnston | 2017-01-25 | 1 | -3/+21 |
| | |||||
* | Lower the not retrying host log line to debug | Erik Johnston | 2017-01-17 | 1 | -1/+1 |
| | |||||
* | Only send events that originate on this server. | Mark Haines | 2017-01-05 | 1 | -0/+12 |
| | | | | | | Or events that are sent via the federation "send_join" API. This should match the behaviour from before v0.18.5 and #1635 landed. | ||||
* | Get the destinations from the state from before the event | Mark Haines | 2017-01-04 | 1 | -8/+9 |
| | | | | Rather than the state after then event. | ||||
* | Send ALL membership events to the server that was affected. | Mark Haines | 2017-01-04 | 1 | -3/+5 |
| | | | | | | Send all membership changes to the server that was affected. This ensures that if the last member of a room on a server was kicked or banned they get told about it. | ||||
* | Correctly handle 500's and 429 on federation | Erik Johnston | 2016-11-24 | 1 | -0/+7 |
| | |||||
* | Comments | Erik Johnston | 2016-11-21 | 1 | -0/+3 |
| | |||||
* | Remove explicit calls to send_pdu | Erik Johnston | 2016-11-21 | 1 | -4/+9 |
| | |||||
* | Fix tests | Erik Johnston | 2016-11-21 | 1 | -0/+3 |
| | |||||
* | Store federation stream positions in the database | Erik Johnston | 2016-11-21 | 1 | -4/+17 |
| | |||||
* | Handle sending events and device messages over federation | Erik Johnston | 2016-11-17 | 1 | -0/+32 |
| | |||||
* | Use new federation_sender DI | Erik Johnston | 2016-11-16 | 1 | -0/+10 |
| | |||||
* | Add transaction queue and transport layer to DI | Erik Johnston | 2016-11-16 | 1 | -2/+2 |
| | |||||
* | Move logic into transaction_queue | Erik Johnston | 2016-11-16 | 1 | -3/+16 |
| | |||||
* | Rename transaction queue functions to send_* | Erik Johnston | 2016-11-16 | 1 | -5/+5 |
| | |||||
* | Fix incorrect attribute name | Erik Johnston | 2016-09-09 | 1 | -1/+1 |
| | |||||
* | Comment | Erik Johnston | 2016-09-09 | 1 | -0/+1 |
| | |||||
* | Add edu.type as part of key. Remove debug logging | Erik Johnston | 2016-09-09 | 1 | -2/+3 |
| | |||||
* | Clobber EDUs in send queue | Erik Johnston | 2016-09-09 | 1 | -3/+45 |
| | |||||
* | Drop replication log levels | Erik Johnston | 2016-09-09 | 1 | -1/+0 |
| | |||||
* | Check if destination is ready for retry earlier | Erik Johnston | 2016-09-09 | 1 | -15/+16 |
| | |||||
* | Fix tightloop on sending transaction | Erik Johnston | 2016-09-09 | 1 | -122/+134 |
| | |||||
* | Correctly guard against multiple concurrent transactions | Erik Johnston | 2016-09-09 | 1 | -38/+41 |
| | |||||
* | Update last_device_stream_id_by_dest if there is nothing to send | Erik Johnston | 2016-09-09 | 1 | -0/+1 |
| | |||||
* | Add a new method to enqueue the device messages rather than sending a dummy EDU | Mark Haines | 2016-09-07 | 1 | -0/+11 |
| | |||||
* | Move the check for federated device_messages. | Mark Haines | 2016-09-07 | 1 | -11/+15 |
| | | | | | Move the check into _attempt_new_transaction. Only delete messages if there were messages to delete. | ||||
* | Add stream change caches for device messages | Mark Haines | 2016-09-07 | 1 | -1/+4 |
| | |||||
* | Send device messages over federation | Mark Haines | 2016-09-06 | 1 | -7/+36 |
| | |||||
* | PEP8 | Erik Johnston | 2016-08-10 | 1 | -1/+3 |
| | |||||
* | Clean up TransactionQueue | Erik Johnston | 2016-08-10 | 1 | -215/+160 |
| | |||||
* | Measure federation send transaction resources | Erik Johnston | 2016-08-10 | 1 | -5/+7 |
| | |||||
* | Run transaction queue on reactor | Erik Johnston | 2016-05-09 | 1 | -0/+3 |
| | | | | | This ensures that any CPU work that happens doesn't block message sending. | ||||
* | Fix up logcontexts | Erik Johnston | 2016-02-08 | 1 | -3/+0 |
| | |||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Don't rearrange transaction_queue | Erik Johnston | 2015-11-03 | 1 | -12/+11 |
| | |||||
* | Fix broken cache for getting retry times. This meant we retried remote ↵ | Erik Johnston | 2015-11-03 | 1 | -23/+24 |
| | | | | destinations way more frequently than we should | ||||
* | Add txn_id to some log lines | Erik Johnston | 2015-05-22 | 1 | -6/+11 |
| | |||||
* | Log less lines at INFO level, but include more helpful information | Erik Johnston | 2015-05-22 | 1 | -6/+10 |
| | |||||
* | Don't log enqueue_ | Erik Johnston | 2015-05-01 | 1 | -1/+0 |
| | |||||
* | Appease pep8 | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+6 |
| | |||||
* | Neater metrics from TransactionQueue | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -9/+11 |
| | |||||
* | Use _ instead of . as a metric namespacing separator, for Prometheus | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -2/+2 |
| | |||||
* | Rename Metrics' "keys" to "labels" | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -2/+2 |
| | |||||
* | Put vector gauges on transaction queue pending PDU and EDU dicts | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -2/+14 |
| | |||||
* | Fix bug in logging. | Erik Johnston | 2015-03-10 | 1 | -5/+5 |
| | |||||
* | Fix bug in logging. | Erik Johnston | 2015-03-10 | 1 | -1/+1 |
| | |||||
* | Must update pending_transactions map before yield'ing | Erik Johnston | 2015-02-26 | 1 | -2/+2 |
| | |||||
* | Implement and use new batched get missing pdu | Erik Johnston | 2015-02-23 | 1 | -1/+1 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.7.1 | Erik Johnston | 2015-02-18 | 1 | -3/+27 |
|\ | |||||
| * | Restrict the destinations that synapse can talk to | Mark Haines | 2015-02-18 | 1 | -3/+27 |
| | | |||||
* | | Add errback to all deferreds in transaction_queue | Erik Johnston | 2015-02-18 | 1 | -14/+23 |
| | | |||||
* | | Discard destination 'localhost' | Erik Johnston | 2015-02-18 | 1 | -2/+2 |
| | | |||||
* | | Don't send failure to self | Erik Johnston | 2015-02-18 | 1 | -0/+3 |
|/ | |||||
* | Fix pyflakes | Erik Johnston | 2015-02-18 | 1 | -1/+0 |
| | |||||
* | Merge branch 'keyclient_retry_scheme' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-18 | 1 | -92/+63 |
|\ | | | | | | | develop | ||||
| * | Try to only back off if we think we failed to connect to the remote | Erik Johnston | 2015-02-17 | 1 | -33/+33 |
| | | |||||
| * | Add per server retry limiting. | Erik Johnston | 2015-02-17 | 1 | -95/+66 |
| | | | | | | | | | | Factor out the pre destination retry logic from TransactionQueue so it can be reused in both get_pdu and crypto.keyring | ||||
* | | Format the response of transaction request in a nicer way | Erik Johnston | 2015-02-17 | 1 | -2/+20 |
|/ | |||||
* | Use consumeErrors=True on all DeferredLists. | Erik Johnston | 2015-02-17 | 1 | -1/+1 |
| | | | | | | This is so that the DeferredLists actually consume the error instead of propogating down the non-existent errback chain. This should reduce the number of unhandled errors we are seeing. | ||||
* | Log all the exits from _attempt_new_transaction | Erik Johnston | 2015-02-10 | 1 | -2/+7 |
| | |||||
* | Apply sanity to the transport client interface. Convert 'make_join' and ↵ | Erik Johnston | 2015-02-04 | 1 | -5/+18 |
| | | | | 'send_join' to accept iterables of destinations | ||||
* | Split up replication_layer module into client, server and transaction queue | Erik Johnston | 2015-01-26 | 1 | -3/+6 |
| | |||||
* | Split out TransactionQueue from replication layer | Erik Johnston | 2015-01-22 | 1 | -0/+314 |